@autocode-cli/autocode 0.1.15 → 0.1.18
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 +38 -38
- package/dist/cli/commands/comment.d.ts +1 -1
- package/dist/cli/commands/comment.js +11 -11
- package/dist/cli/commands/comment.js.map +1 -1
- package/dist/cli/commands/init.js +1 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/list.d.ts +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +65 -22
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/move.d.ts +1 -1
- package/dist/cli/commands/move.js +12 -12
- package/dist/cli/commands/move.js.map +1 -1
- package/dist/cli/commands/new.d.ts +1 -1
- package/dist/cli/commands/new.d.ts.map +1 -1
- package/dist/cli/commands/new.js +26 -13
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/next.d.ts +1 -1
- package/dist/cli/commands/next.js +15 -15
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/parent.d.ts +9 -0
- package/dist/cli/commands/parent.d.ts.map +1 -0
- package/dist/cli/commands/parent.js +94 -0
- package/dist/cli/commands/parent.js.map +1 -0
- package/dist/cli/commands/serve.js +8 -8
- package/dist/cli/commands/serve.js.map +1 -1
- package/dist/cli/commands/show.d.ts +1 -1
- package/dist/cli/commands/show.d.ts.map +1 -1
- package/dist/cli/commands/show.js +51 -31
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/stats.js +2 -2
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/sync.js +3 -3
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +5 -3
- package/dist/cli/parser.js.map +1 -1
- package/dist/core/column.js +2 -2
- package/dist/core/column.js.map +1 -1
- package/dist/core/hierarchy.d.ts +97 -0
- package/dist/core/hierarchy.d.ts.map +1 -0
- package/dist/core/hierarchy.js +274 -0
- package/dist/core/hierarchy.js.map +1 -0
- package/dist/core/issue.d.ts +62 -0
- package/dist/core/issue.d.ts.map +1 -0
- package/dist/core/issue.js +247 -0
- package/dist/core/issue.js.map +1 -0
- package/dist/core/sync.d.ts +9 -9
- package/dist/core/sync.d.ts.map +1 -1
- package/dist/core/sync.js +61 -58
- package/dist/core/sync.js.map +1 -1
- package/dist/core/workflow.d.ts +22 -20
- package/dist/core/workflow.d.ts.map +1 -1
- package/dist/core/workflow.js +68 -51
- package/dist/core/workflow.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/server/api-autocomplete.test.d.ts +6 -0
- package/dist/server/api-autocomplete.test.d.ts.map +1 -0
- package/dist/server/api-autocomplete.test.js +249 -0
- package/dist/server/api-autocomplete.test.js.map +1 -0
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +216 -106
- package/dist/server/api.js.map +1 -1
- package/dist/server/dashboard/pages/column-prompt.d.ts +1 -1
- package/dist/server/dashboard/pages/column-prompt.d.ts.map +1 -1
- package/dist/server/dashboard/pages/column-prompt.js +11 -11
- package/dist/server/dashboard/pages/column-prompt.js.map +1 -1
- package/dist/server/dashboard/pages/column-terminal.d.ts +1 -1
- package/dist/server/dashboard/pages/column-terminal.d.ts.map +1 -1
- package/dist/server/dashboard/pages/column-terminal.js +14 -14
- package/dist/server/dashboard/pages/column-terminal.js.map +1 -1
- package/dist/server/dashboard/pages/index.d.ts +3 -1
- package/dist/server/dashboard/pages/index.d.ts.map +1 -1
- package/dist/server/dashboard/pages/index.js +3 -1
- package/dist/server/dashboard/pages/index.js.map +1 -1
- package/dist/server/dashboard/pages/issue-graph.d.ts +9 -0
- package/dist/server/dashboard/pages/issue-graph.d.ts.map +1 -0
- package/dist/server/dashboard/pages/issue-graph.js +581 -0
- package/dist/server/dashboard/pages/issue-graph.js.map +1 -0
- package/dist/server/dashboard/pages/issue-view.d.ts +8 -0
- package/dist/server/dashboard/pages/issue-view.d.ts.map +1 -0
- package/dist/server/dashboard/pages/{ticket-view.js → issue-view.js} +128 -128
- package/dist/server/dashboard/pages/issue-view.js.map +1 -0
- package/dist/server/dashboard/pages/main-dashboard.d.ts.map +1 -1
- package/dist/server/dashboard/pages/main-dashboard.js +23 -22
- package/dist/server/dashboard/pages/main-dashboard.js.map +1 -1
- package/dist/server/dashboard/pages/new-issue.d.ts +8 -0
- package/dist/server/dashboard/pages/new-issue.d.ts.map +1 -0
- package/dist/server/dashboard/pages/new-issue.js +648 -0
- package/dist/server/dashboard/pages/new-issue.js.map +1 -0
- package/dist/server/dashboard/pages/new-issue.test.d.ts +6 -0
- package/dist/server/dashboard/pages/new-issue.test.d.ts.map +1 -0
- package/dist/server/dashboard/pages/new-issue.test.js +349 -0
- package/dist/server/dashboard/pages/new-issue.test.js.map +1 -0
- package/dist/server/dashboard/pages/pipeline-configurator.js +1 -1
- package/dist/server/dashboard/pages/shared.d.ts +2 -2
- package/dist/server/dashboard/pages/shared.d.ts.map +1 -1
- package/dist/server/dashboard/pages/shared.js +5 -5
- package/dist/server/dashboard/pages/shared.js.map +1 -1
- package/dist/server/dashboard/pages/stats-page.js +11 -11
- package/dist/server/dashboard/scripts/index.js +134 -134
- package/dist/server/dashboard/styles/base.js +2 -2
- package/dist/server/dashboard/styles/board.d.ts +1 -1
- package/dist/server/dashboard/styles/board.js +10 -10
- package/dist/server/dashboard.d.ts +1 -1
- package/dist/server/dashboard.d.ts.map +1 -1
- package/dist/server/dashboard.js +1 -1
- package/dist/server/dashboard.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +40 -24
- package/dist/server/index.js.map +1 -1
- package/dist/server/websocket.d.ts +6 -6
- package/dist/server/websocket.d.ts.map +1 -1
- package/dist/server/websocket.js +10 -10
- package/dist/server/websocket.js.map +1 -1
- package/dist/services/claude.d.ts +13 -13
- package/dist/services/claude.d.ts.map +1 -1
- package/dist/services/claude.js +98 -98
- package/dist/services/claude.js.map +1 -1
- package/dist/services/issue-io.d.ts +81 -0
- package/dist/services/issue-io.d.ts.map +1 -0
- package/dist/services/{ticket-io.js → issue-io.js} +54 -53
- package/dist/services/issue-io.js.map +1 -0
- package/dist/services/stats.d.ts +1 -1
- package/dist/services/stats.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/fs.d.ts +2 -2
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +2 -2
- package/dist/utils/fs.js.map +1 -1
- package/package.json +3 -3
- package/templates/catalog.yaml +2 -2
- package/templates/prompts/api-endpoints-test.en.md +2 -2
- package/templates/prompts/api-endpoints-test.fr.md +2 -2
- package/templates/prompts/backlog.en.md +6 -6
- package/templates/prompts/backlog.fr.md +1 -1
- package/templates/prompts/changelog.en.md +6 -6
- package/templates/prompts/changelog.fr.md +3 -3
- package/templates/prompts/dashboard-responsive.en.md +1 -1
- package/templates/prompts/deploy-prod.en.md +3 -3
- package/templates/prompts/deploy-prod.fr.md +3 -3
- package/templates/prompts/deploy-staging.en.md +3 -3
- package/templates/prompts/deploy-staging.fr.md +3 -3
- package/templates/prompts/design.en.md +5 -5
- package/templates/prompts/design.fr.md +3 -3
- package/templates/prompts/dev.en.md +4 -4
- package/templates/prompts/dev.fr.md +3 -3
- package/templates/prompts/done.en.md +5 -5
- package/templates/prompts/done.fr.md +2 -2
- package/templates/prompts/error-handling-review.en.md +1 -1
- package/templates/prompts/error-handling-review.fr.md +1 -1
- package/templates/prompts/file-watcher-test.en.md +4 -4
- package/templates/prompts/file-watcher-test.fr.md +1 -1
- package/templates/prompts/git-commit.en.md +5 -5
- package/templates/prompts/git-commit.fr.md +3 -3
- package/templates/prompts/git-push.en.md +3 -3
- package/templates/prompts/git-push.fr.md +3 -3
- package/templates/prompts/git-tag.en.md +3 -3
- package/templates/prompts/git-tag.fr.md +3 -3
- package/templates/prompts/in-progress.en.md +6 -6
- package/templates/prompts/in-progress.fr.md +3 -3
- package/templates/prompts/qualification.en.md +8 -8
- package/templates/prompts/qualification.fr.md +3 -3
- package/templates/prompts/retest-cypress.en.md +3 -3
- package/templates/prompts/retest-cypress.fr.md +3 -3
- package/templates/prompts/retest-playwright.en.md +4 -4
- package/templates/prompts/retest-playwright.fr.md +3 -3
- package/templates/prompts/retest.en.md +4 -4
- package/templates/prompts/retest.fr.md +3 -3
- package/templates/prompts/review-best-practices.en.md +3 -3
- package/templates/prompts/review-best-practices.fr.md +3 -3
- package/templates/prompts/review-code.en.md +4 -4
- package/templates/prompts/review-code.fr.md +3 -3
- package/templates/prompts/review-consistency.en.md +3 -3
- package/templates/prompts/review-consistency.fr.md +3 -3
- package/templates/prompts/review-no-duplication.en.md +3 -3
- package/templates/prompts/review-no-duplication.fr.md +3 -3
- package/templates/prompts/review-security.en.md +4 -4
- package/templates/prompts/review-security.fr.md +3 -3
- package/templates/prompts/specification.en.md +5 -5
- package/templates/prompts/specification.fr.md +3 -3
- package/templates/prompts/splitter.en.md +13 -13
- package/templates/prompts/splitter.fr.md +3 -3
- package/templates/prompts/template-validation.en.md +1 -1
- package/templates/prompts/template-validation.fr.md +1 -1
- package/templates/prompts/testing-coverage.en.md +1 -1
- package/templates/prompts/testing-coverage.fr.md +1 -1
- package/templates/prompts/testing-cypress.en.md +4 -4
- package/templates/prompts/testing-cypress.fr.md +3 -3
- package/templates/prompts/testing-integration.en.md +4 -4
- package/templates/prompts/testing-integration.fr.md +3 -3
- package/templates/prompts/testing-playwright.en.md +4 -4
- package/templates/prompts/testing-playwright.fr.md +3 -3
- package/templates/prompts/testing-unit.en.md +4 -4
- package/templates/prompts/testing-unit.fr.md +3 -3
- package/templates/prompts/update-docs.en.md +3 -3
- package/templates/prompts/update-docs.fr.md +3 -3
- package/templates/prompts/validate-staging.en.md +3 -3
- package/templates/prompts/validate-staging.fr.md +3 -3
- package/templates/prompts/websocket-test.en.md +1 -1
- package/dist/core/ticket.d.ts +0 -50
- package/dist/core/ticket.d.ts.map +0 -1
- package/dist/core/ticket.js +0 -224
- package/dist/core/ticket.js.map +0 -1
- package/dist/server/dashboard/pages/ticket-view.d.ts +0 -8
- package/dist/server/dashboard/pages/ticket-view.d.ts.map +0 -1
- package/dist/server/dashboard/pages/ticket-view.js.map +0 -1
- package/dist/services/ticket-io.d.ts +0 -80
- package/dist/services/ticket-io.d.ts.map +0 -1
- package/dist/services/ticket-io.js.map +0 -1
package/dist/services/claude.js
CHANGED
|
@@ -6,9 +6,9 @@ import { appendFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
|
6
6
|
import { join, dirname } from 'node:path';
|
|
7
7
|
import { readFileSafe, writeFileSafe, pathExists, listFiles } from '../utils/fs.js';
|
|
8
8
|
/**
|
|
9
|
-
* Safely append to log file, following
|
|
9
|
+
* Safely append to log file, following issue if it was moved to another column
|
|
10
10
|
*/
|
|
11
|
-
function safeAppendLog(logPathRef, content,
|
|
11
|
+
function safeAppendLog(logPathRef, content, issueKey, rootDir) {
|
|
12
12
|
if (!logPathRef.path)
|
|
13
13
|
return;
|
|
14
14
|
try {
|
|
@@ -18,10 +18,10 @@ function safeAppendLog(logPathRef, content, ticketKey, rootDir) {
|
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
// Directory moved - find new location
|
|
21
|
-
if (
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
24
|
-
logPathRef.path = join(
|
|
21
|
+
if (issueKey) {
|
|
22
|
+
const newIssueDir = findIssueDir(rootDir, issueKey);
|
|
23
|
+
if (newIssueDir) {
|
|
24
|
+
logPathRef.path = join(newIssueDir, logPathRef.fileName);
|
|
25
25
|
appendFileSync(logPathRef.path, content);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -31,7 +31,7 @@ function safeAppendLog(logPathRef, content, ticketKey, rootDir) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
import { getConfig } from '../utils/config.js';
|
|
34
|
-
import {
|
|
34
|
+
import { getIssue, findIssueDir, moveIssue } from '../core/issue.js';
|
|
35
35
|
import { getColumnBySlug, getColumns } from '../core/column.js';
|
|
36
36
|
import { getPromptContent } from '../core/catalog.js';
|
|
37
37
|
import { broadcast, markProcessing, markProcessingComplete } from '../server/websocket.js';
|
|
@@ -52,40 +52,40 @@ export function getActionContent(columnSlug, lang = 'fr') {
|
|
|
52
52
|
return getPromptContent(columnSlug, lang);
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
* Get attachments from
|
|
55
|
+
* Get attachments from issue directory
|
|
56
56
|
*/
|
|
57
|
-
function getAttachments(
|
|
58
|
-
const attachmentsDir = join(
|
|
57
|
+
function getAttachments(issueDir) {
|
|
58
|
+
const attachmentsDir = join(issueDir, 'attachments');
|
|
59
59
|
if (!pathExists(attachmentsDir))
|
|
60
60
|
return [];
|
|
61
61
|
return listFiles(attachmentsDir).map(f => join(attachmentsDir, f));
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
* Build prompt for Claude based on
|
|
64
|
+
* Build prompt for Claude based on issue and column
|
|
65
65
|
*/
|
|
66
|
-
export function buildPrompt(
|
|
67
|
-
// Get attachments if
|
|
68
|
-
const attachments =
|
|
66
|
+
export function buildPrompt(issue, actionContent, issueDir, lang = 'fr') {
|
|
67
|
+
// Get attachments if issueDir is provided
|
|
68
|
+
const attachments = issueDir ? getAttachments(issueDir) : [];
|
|
69
69
|
const attachmentsSection = attachments.length > 0
|
|
70
70
|
? `\n## Attached Files\n\nAnalyze the following attached files:\n${attachments.map(f => `- ${f}`).join('\n')}\n`
|
|
71
71
|
: '';
|
|
72
|
-
const prompt = `# Task: Process
|
|
72
|
+
const prompt = `# Task: Process Issue ${issue.key}
|
|
73
73
|
|
|
74
|
-
##
|
|
74
|
+
## Issue Information
|
|
75
75
|
|
|
76
|
-
- **Key**: ${
|
|
77
|
-
- **Title**: ${
|
|
78
|
-
- **Priority**: ${
|
|
79
|
-
- **Status**: ${
|
|
80
|
-
- **Labels**: ${
|
|
76
|
+
- **Key**: ${issue.key}
|
|
77
|
+
- **Title**: ${issue.title}
|
|
78
|
+
- **Priority**: ${issue.priority}
|
|
79
|
+
- **Status**: ${issue.status}
|
|
80
|
+
- **Labels**: ${issue.labels.join(', ') || 'None'}
|
|
81
81
|
|
|
82
82
|
## Description
|
|
83
83
|
|
|
84
|
-
${
|
|
84
|
+
${issue.description}
|
|
85
85
|
|
|
86
86
|
## Acceptance Criteria
|
|
87
87
|
|
|
88
|
-
${
|
|
88
|
+
${issue.acceptance_criteria.map(c => `- ${c}`).join('\n')}
|
|
89
89
|
${attachmentsSection}
|
|
90
90
|
## Column Instructions
|
|
91
91
|
|
|
@@ -95,20 +95,20 @@ ${actionContent}
|
|
|
95
95
|
|
|
96
96
|
## Previous Comments
|
|
97
97
|
|
|
98
|
-
${
|
|
99
|
-
?
|
|
98
|
+
${issue.comments.length > 0
|
|
99
|
+
? issue.comments.map(c => `### [${c.column}]\n\n\`\`\`markdown\n${c.text}\n\`\`\``).join('\n\n')
|
|
100
100
|
: 'No previous comments.'}
|
|
101
101
|
|
|
102
102
|
## Your Task
|
|
103
103
|
|
|
104
|
-
Follow the column instructions above to process this
|
|
104
|
+
Follow the column instructions above to process this issue.
|
|
105
105
|
|
|
106
106
|
## IMPORTANT - Mandatory Comment
|
|
107
107
|
|
|
108
108
|
**Tu DOIS OBLIGATOIREMENT laisser un commentaire à la fin de ton travail avec la commande :**
|
|
109
109
|
|
|
110
110
|
\`\`\`bash
|
|
111
|
-
autocode comment ${
|
|
111
|
+
autocode comment ${issue.key} "Ton résumé détaillé du travail effectué"
|
|
112
112
|
\`\`\`
|
|
113
113
|
|
|
114
114
|
Ce commentaire doit résumer ce que tu as fait, les fichiers modifiés, les problèmes rencontrés, etc. Ne JAMAIS sauter cette étape !
|
|
@@ -120,34 +120,34 @@ Répond moi dans la langue : ${lang} (même si tu dois travailler en anglais)
|
|
|
120
120
|
/**
|
|
121
121
|
* Write prompt to file for Claude
|
|
122
122
|
*/
|
|
123
|
-
export function writePromptFile(
|
|
123
|
+
export function writePromptFile(issue, prompt) {
|
|
124
124
|
const config = getConfig();
|
|
125
|
-
const column = getColumnBySlug(
|
|
125
|
+
const column = getColumnBySlug(issue.column_slug);
|
|
126
126
|
if (!column) {
|
|
127
|
-
throw new Error(`Column not found: ${
|
|
127
|
+
throw new Error(`Column not found: ${issue.column_slug}`);
|
|
128
128
|
}
|
|
129
|
-
const promptFile = join(config.root, column.slug, `.claude_prompt_${
|
|
129
|
+
const promptFile = join(config.root, column.slug, `.claude_prompt_${issue.key}.md`);
|
|
130
130
|
writeFileSafe(promptFile, prompt);
|
|
131
131
|
return promptFile;
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
134
|
* Execute Claude CLI with a prompt (with live logging to file)
|
|
135
135
|
*/
|
|
136
|
-
export async function executeClaudeCLI(promptFile,
|
|
136
|
+
export async function executeClaudeCLI(promptFile, issueKey, columnSlug) {
|
|
137
137
|
const config = getConfig();
|
|
138
138
|
const startTime = Date.now();
|
|
139
|
-
// Find
|
|
139
|
+
// Find issue directory for log file (use object ref to track moves)
|
|
140
140
|
const logFileName = columnSlug ? `claude-${columnSlug}.log` : 'claude-code.log';
|
|
141
141
|
const logPathRef = { path: null, fileName: logFileName };
|
|
142
|
-
if (
|
|
143
|
-
const
|
|
144
|
-
if (
|
|
145
|
-
logPathRef.path = join(
|
|
142
|
+
if (issueKey) {
|
|
143
|
+
const issueDir = findIssueDir(config.root, issueKey);
|
|
144
|
+
if (issueDir) {
|
|
145
|
+
logPathRef.path = join(issueDir, logFileName);
|
|
146
146
|
// Reset log file
|
|
147
147
|
writeFileSync(logPathRef.path, `[${new Date().toISOString()}] Starting Claude processing in ${columnSlug || 'unknown'}...\n`);
|
|
148
148
|
}
|
|
149
|
-
markProcessing(
|
|
150
|
-
broadcast({ type: 'claude_start',
|
|
149
|
+
markProcessing(issueKey);
|
|
150
|
+
broadcast({ type: 'claude_start', issue: issueKey });
|
|
151
151
|
}
|
|
152
152
|
// Read prompt file content for stdin
|
|
153
153
|
const promptContent = readFileSafe(promptFile) || '';
|
|
@@ -180,7 +180,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
180
180
|
const initMsg = `🚀 Claude initialized (${event.mcp_servers?.length || 0} MCP servers)\n`;
|
|
181
181
|
process.stdout.write(initMsg);
|
|
182
182
|
if (logPathRef.path) {
|
|
183
|
-
safeAppendLog(logPathRef, initMsg,
|
|
183
|
+
safeAppendLog(logPathRef, initMsg, issueKey, config.root);
|
|
184
184
|
}
|
|
185
185
|
// Capture model from init event
|
|
186
186
|
if (event.model) {
|
|
@@ -225,7 +225,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
225
225
|
stdout += text;
|
|
226
226
|
process.stdout.write(text);
|
|
227
227
|
if (logPathRef.path) {
|
|
228
|
-
safeAppendLog(logPathRef, text,
|
|
228
|
+
safeAppendLog(logPathRef, text, issueKey, config.root);
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
}
|
|
@@ -236,7 +236,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
236
236
|
stdout += text;
|
|
237
237
|
process.stdout.write(text);
|
|
238
238
|
if (logPathRef.path) {
|
|
239
|
-
safeAppendLog(logPathRef, text,
|
|
239
|
+
safeAppendLog(logPathRef, text, issueKey, config.root);
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
242
|
// Mark tool calls
|
|
@@ -246,7 +246,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
246
246
|
stdout += marker;
|
|
247
247
|
process.stdout.write(marker);
|
|
248
248
|
if (logPathRef.path) {
|
|
249
|
-
safeAppendLog(logPathRef, marker,
|
|
249
|
+
safeAppendLog(logPathRef, marker, issueKey, config.root);
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
252
|
// Log tool results
|
|
@@ -254,20 +254,20 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
254
254
|
const resultText = typeof event.result === 'string' ? event.result : JSON.stringify(event.result, null, 2);
|
|
255
255
|
const resultMarker = `\n📋 Result:\n${resultText}\n`;
|
|
256
256
|
if (logPathRef.path) {
|
|
257
|
-
safeAppendLog(logPathRef, resultMarker,
|
|
257
|
+
safeAppendLog(logPathRef, resultMarker, issueKey, config.root);
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
261
|
catch {
|
|
262
262
|
// Log raw line for debugging if JSON parse fails
|
|
263
263
|
if (logPathRef.path && line.trim()) {
|
|
264
|
-
safeAppendLog(logPathRef, `[RAW] ${line}\n`,
|
|
264
|
+
safeAppendLog(logPathRef, `[RAW] ${line}\n`, issueKey, config.root);
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
268
|
// Notify dashboard to refresh (without data)
|
|
269
|
-
if (
|
|
270
|
-
broadcast({ type: 'claude_stream',
|
|
269
|
+
if (issueKey) {
|
|
270
|
+
broadcast({ type: 'claude_stream', issue: issueKey });
|
|
271
271
|
}
|
|
272
272
|
});
|
|
273
273
|
child.stderr.on('data', (data) => {
|
|
@@ -275,10 +275,10 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
275
275
|
stderr += chunk;
|
|
276
276
|
// Write errors to log file
|
|
277
277
|
if (logPathRef.path) {
|
|
278
|
-
safeAppendLog(logPathRef, `[ERROR] ${chunk}`,
|
|
278
|
+
safeAppendLog(logPathRef, `[ERROR] ${chunk}`, issueKey, config.root);
|
|
279
279
|
}
|
|
280
|
-
if (
|
|
281
|
-
broadcast({ type: 'claude_stream',
|
|
280
|
+
if (issueKey) {
|
|
281
|
+
broadcast({ type: 'claude_stream', issue: issueKey });
|
|
282
282
|
}
|
|
283
283
|
});
|
|
284
284
|
child.on('close', (code) => {
|
|
@@ -286,7 +286,7 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
286
286
|
// Record stats
|
|
287
287
|
recordCall({
|
|
288
288
|
timestamp: new Date().toISOString(),
|
|
289
|
-
|
|
289
|
+
issue: issueKey,
|
|
290
290
|
column: columnSlug,
|
|
291
291
|
tokensInput,
|
|
292
292
|
tokensOutput,
|
|
@@ -298,13 +298,13 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
298
298
|
if (logPathRef.path) {
|
|
299
299
|
const status = code === 0 ? 'SUCCESS' : 'FAILED';
|
|
300
300
|
const costStr = costUsd ? `, $${costUsd.toFixed(4)}` : '';
|
|
301
|
-
safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ${status} (${duration}ms, tokens: ${tokensInput}/${tokensOutput}${costStr})\n`,
|
|
301
|
+
safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ${status} (${duration}ms, tokens: ${tokensInput}/${tokensOutput}${costStr})\n`, issueKey, config.root);
|
|
302
302
|
}
|
|
303
|
-
if (
|
|
304
|
-
markProcessingComplete(
|
|
303
|
+
if (issueKey) {
|
|
304
|
+
markProcessingComplete(issueKey);
|
|
305
305
|
broadcast({
|
|
306
306
|
type: 'claude_end',
|
|
307
|
-
|
|
307
|
+
issue: issueKey,
|
|
308
308
|
success: code === 0,
|
|
309
309
|
duration,
|
|
310
310
|
tokensInput,
|
|
@@ -328,13 +328,13 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
328
328
|
});
|
|
329
329
|
child.on('error', (error) => {
|
|
330
330
|
if (logPathRef.path) {
|
|
331
|
-
safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ERROR: ${error.message}\n`,
|
|
331
|
+
safeAppendLog(logPathRef, `\n[${new Date().toISOString()}] ERROR: ${error.message}\n`, issueKey, config.root);
|
|
332
332
|
}
|
|
333
|
-
if (
|
|
334
|
-
markProcessingComplete(
|
|
333
|
+
if (issueKey) {
|
|
334
|
+
markProcessingComplete(issueKey);
|
|
335
335
|
broadcast({
|
|
336
336
|
type: 'claude_end',
|
|
337
|
-
|
|
337
|
+
issue: issueKey,
|
|
338
338
|
success: false,
|
|
339
339
|
error: error.message,
|
|
340
340
|
});
|
|
@@ -348,16 +348,16 @@ export async function executeClaudeCLI(promptFile, ticketKey, columnSlug) {
|
|
|
348
348
|
});
|
|
349
349
|
}
|
|
350
350
|
/**
|
|
351
|
-
* Move
|
|
351
|
+
* Move an issue to a column and execute its action
|
|
352
352
|
* This is the unified flow: move first, then execute
|
|
353
353
|
*/
|
|
354
|
-
export async function
|
|
354
|
+
export async function moveAndProcessIssue(key, targetColumnSlug, options = {}) {
|
|
355
355
|
const config = getConfig();
|
|
356
356
|
const lang = options.lang || config.lang;
|
|
357
|
-
// 1. Get current
|
|
358
|
-
const
|
|
359
|
-
if (!
|
|
360
|
-
return { success: false, error: `
|
|
357
|
+
// 1. Get current issue
|
|
358
|
+
const issue = getIssue(config.root, key);
|
|
359
|
+
if (!issue) {
|
|
360
|
+
return { success: false, error: `Issue '${key}' not found` };
|
|
361
361
|
}
|
|
362
362
|
// 2. Get target column
|
|
363
363
|
const targetColumn = getColumnBySlug(targetColumnSlug);
|
|
@@ -365,54 +365,54 @@ export async function moveAndProcessTicket(key, targetColumnSlug, options = {})
|
|
|
365
365
|
return { success: false, error: `Column '${targetColumnSlug}' not found` };
|
|
366
366
|
}
|
|
367
367
|
// 3. Check if already in target column
|
|
368
|
-
if (
|
|
369
|
-
return { success: true,
|
|
368
|
+
if (issue.column_slug === targetColumnSlug) {
|
|
369
|
+
return { success: true, issue, actionExecuted: false };
|
|
370
370
|
}
|
|
371
|
-
// 4. Move the
|
|
372
|
-
const
|
|
373
|
-
if (!
|
|
374
|
-
return { success: false, error: 'Failed to move
|
|
371
|
+
// 4. Move the issue FIRST
|
|
372
|
+
const movedIssue = moveIssue(config.root, key, targetColumn.slug, options.force);
|
|
373
|
+
if (!movedIssue) {
|
|
374
|
+
return { success: false, error: 'Failed to move issue' };
|
|
375
375
|
}
|
|
376
376
|
// 5. Check if column is actionable (not backlog or done)
|
|
377
377
|
const isActionableColumn = targetColumn.index > 0 && targetColumn.index < 12;
|
|
378
378
|
if (!isActionableColumn) {
|
|
379
|
-
return { success: true,
|
|
379
|
+
return { success: true, issue: movedIssue, actionExecuted: false };
|
|
380
380
|
}
|
|
381
381
|
// 6. Get action content for target column
|
|
382
382
|
const actionContent = getActionContent(targetColumnSlug, lang);
|
|
383
383
|
if (!actionContent) {
|
|
384
384
|
// No action file, just move
|
|
385
|
-
return { success: true,
|
|
385
|
+
return { success: true, issue: movedIssue, actionExecuted: false };
|
|
386
386
|
}
|
|
387
|
-
// 7. Execute action on the moved
|
|
387
|
+
// 7. Execute action on the moved issue
|
|
388
388
|
logger.info(`Processing ${key} with Claude in ${targetColumn.name}...`);
|
|
389
|
-
const
|
|
390
|
-
const prompt = buildPrompt(
|
|
391
|
-
const promptFile = writePromptFile(
|
|
389
|
+
const issueDir = findIssueDir(config.root, key);
|
|
390
|
+
const prompt = buildPrompt(movedIssue, actionContent, issueDir || undefined, lang);
|
|
391
|
+
const promptFile = writePromptFile(movedIssue, prompt);
|
|
392
392
|
const result = await executeClaudeCLI(promptFile, key, targetColumnSlug);
|
|
393
393
|
if (!result.success) {
|
|
394
394
|
logger.error(`Claude failed: ${result.error}`);
|
|
395
|
-
//
|
|
396
|
-
return { success: true,
|
|
395
|
+
// Issue stays in the column, return with error
|
|
396
|
+
return { success: true, issue: movedIssue, actionExecuted: false, error: result.error };
|
|
397
397
|
}
|
|
398
398
|
logger.success(`Claude processed ${key} in ${result.duration}ms`);
|
|
399
|
-
// Reload
|
|
400
|
-
const
|
|
401
|
-
return { success: true,
|
|
399
|
+
// Reload issue to get any comments added by Claude
|
|
400
|
+
const updatedIssue = getIssue(config.root, key);
|
|
401
|
+
return { success: true, issue: updatedIssue || movedIssue, actionExecuted: true };
|
|
402
402
|
}
|
|
403
403
|
/**
|
|
404
|
-
* Process
|
|
404
|
+
* Process an issue with Claude - moves to next column and executes its action
|
|
405
405
|
* Uses the new unified flow: move first, then execute
|
|
406
406
|
*/
|
|
407
|
-
export async function
|
|
407
|
+
export async function processIssueWithClaude(key, _options = {}) {
|
|
408
408
|
const config = getConfig();
|
|
409
|
-
// Get current
|
|
410
|
-
const
|
|
411
|
-
if (!
|
|
412
|
-
return { success: false, error: `
|
|
409
|
+
// Get current issue to find next column
|
|
410
|
+
const issue = getIssue(config.root, key);
|
|
411
|
+
if (!issue) {
|
|
412
|
+
return { success: false, error: `Issue '${key}' not found` };
|
|
413
413
|
}
|
|
414
414
|
// Find current column
|
|
415
|
-
const currentColumn = getColumnBySlug(
|
|
415
|
+
const currentColumn = getColumnBySlug(issue.column_slug);
|
|
416
416
|
if (!currentColumn) {
|
|
417
417
|
return { success: false, error: `Current column not found` };
|
|
418
418
|
}
|
|
@@ -423,30 +423,30 @@ export async function processTicketWithClaude(key, _options = {}) {
|
|
|
423
423
|
return { success: false, error: `No next column available` };
|
|
424
424
|
}
|
|
425
425
|
// Use new unified flow: move to next column and execute its action
|
|
426
|
-
return
|
|
426
|
+
return moveAndProcessIssue(key, nextColumn.slug);
|
|
427
427
|
}
|
|
428
428
|
/**
|
|
429
|
-
* Process all actionable
|
|
429
|
+
* Process all actionable issues with Claude
|
|
430
430
|
*/
|
|
431
|
-
export async function
|
|
431
|
+
export async function processAllIssues(options = {}) {
|
|
432
432
|
const config = getConfig();
|
|
433
|
-
const {
|
|
433
|
+
const { findActionableIssue } = await import('../core/issue.js');
|
|
434
434
|
let processed = 0;
|
|
435
435
|
let errors = 0;
|
|
436
436
|
const limit = options.limit || Infinity;
|
|
437
437
|
while (processed + errors < limit) {
|
|
438
|
-
const
|
|
439
|
-
if (!
|
|
440
|
-
logger.info('No more actionable
|
|
438
|
+
const issue = findActionableIssue(config.root);
|
|
439
|
+
if (!issue) {
|
|
440
|
+
logger.info('No more actionable issues');
|
|
441
441
|
break;
|
|
442
442
|
}
|
|
443
|
-
const result = await
|
|
443
|
+
const result = await processIssueWithClaude(issue.key, options);
|
|
444
444
|
if (result.success) {
|
|
445
445
|
processed++;
|
|
446
446
|
}
|
|
447
447
|
else {
|
|
448
448
|
errors++;
|
|
449
|
-
logger.error(`Failed to process ${
|
|
449
|
+
logger.error(`Failed to process ${issue.key}: ${result.error}`);
|
|
450
450
|
}
|
|
451
451
|
}
|
|
452
452
|
logger.info(`Processed: ${processed}, Errors: ${errors}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/services/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Issue I/O Service - Multi-file issue storage
|
|
3
|
+
*
|
|
4
|
+
* Structure:
|
|
5
|
+
* issues/AC-000001__titre/
|
|
6
|
+
* ├── metadata.json # JSON metadata
|
|
7
|
+
* ├── description.md # Pure markdown description
|
|
8
|
+
* └── comments/
|
|
9
|
+
* ├── 001.md # YAML frontmatter + markdown
|
|
10
|
+
* └── 002.md
|
|
11
|
+
*/
|
|
12
|
+
import type { Issue, Comment, HistoryEntry, Priority, SemverType } from '../types/index.js';
|
|
13
|
+
/**
|
|
14
|
+
* Metadata stored in metadata.json (without status/column_slug - derived from path)
|
|
15
|
+
*/
|
|
16
|
+
export interface IssueMetadata {
|
|
17
|
+
key: string;
|
|
18
|
+
title: string;
|
|
19
|
+
priority: Priority;
|
|
20
|
+
labels: string[];
|
|
21
|
+
acceptance_criteria: string[];
|
|
22
|
+
semver: SemverType;
|
|
23
|
+
history: HistoryEntry[];
|
|
24
|
+
created_at: string;
|
|
25
|
+
updated_at: string;
|
|
26
|
+
parent_key: string | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Parse metadata.json from issue directory
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseMetadata(issueDir: string): IssueMetadata | null;
|
|
32
|
+
/**
|
|
33
|
+
* Read description.md from issue directory
|
|
34
|
+
*/
|
|
35
|
+
export declare function readDescription(issueDir: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Read all attachments from attachments/ directory
|
|
38
|
+
*/
|
|
39
|
+
export declare function readAttachments(issueDir: string): string[];
|
|
40
|
+
/**
|
|
41
|
+
* Read all comments from comments/ directory
|
|
42
|
+
*/
|
|
43
|
+
export declare function readComments(issueDir: string): Comment[];
|
|
44
|
+
/**
|
|
45
|
+
* Extract column_slug from issue directory path
|
|
46
|
+
* e.g., /path/autodoc/02_in-progress/issues/AC-000001__titre -> 02_in-progress
|
|
47
|
+
*/
|
|
48
|
+
export declare function extractColumnSlug(issueDir: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Load a complete Issue from an issue directory
|
|
51
|
+
*/
|
|
52
|
+
export declare function loadIssue(issueDir: string): Issue | null;
|
|
53
|
+
/**
|
|
54
|
+
* Write metadata.json to issue directory
|
|
55
|
+
*/
|
|
56
|
+
export declare function writeMetadata(issueDir: string, metadata: IssueMetadata): void;
|
|
57
|
+
/**
|
|
58
|
+
* Write description.md to issue directory
|
|
59
|
+
*/
|
|
60
|
+
export declare function writeDescription(issueDir: string, description: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* Add a new comment file to comments/ directory
|
|
63
|
+
*/
|
|
64
|
+
export declare function addCommentFile(issueDir: string, text: string, column: string, source?: 'user' | 'claude'): void;
|
|
65
|
+
/**
|
|
66
|
+
* Update specific fields in metadata.json
|
|
67
|
+
*/
|
|
68
|
+
export declare function updateMetadata(issueDir: string, updates: Partial<IssueMetadata>): void;
|
|
69
|
+
/**
|
|
70
|
+
* Add a history entry to metadata.json
|
|
71
|
+
*/
|
|
72
|
+
export declare function addHistoryEntry(issueDir: string, action: HistoryEntry['action'], from: string | null, to: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* Update description in description.md
|
|
75
|
+
*/
|
|
76
|
+
export declare function updateDescription(issueDir: string, newDescription: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* Create a new issue with full structure
|
|
79
|
+
*/
|
|
80
|
+
export declare function createIssueStructure(issueDir: string, metadata: IssueMetadata, description: string): void;
|
|
81
|
+
//# sourceMappingURL=issue-io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue-io.d.ts","sourceRoot":"","sources":["../../src/services/issue-io.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAUpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGxD;AAkCD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAI1D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CAexD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK1D;AAWD;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CA2BxD;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAI7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAG5E;AAgBD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,QAAiB,GAAG,IAAI,CAkBvH;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAWtF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GACT,IAAI,CAeN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAEhF;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI,CAON"}
|