@autocode-cli/autocode 0.1.14 → 0.1.17

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 (211) hide show
  1. package/README.md +38 -38
  2. package/dist/cli/commands/comment.d.ts +1 -1
  3. package/dist/cli/commands/comment.js +11 -11
  4. package/dist/cli/commands/comment.js.map +1 -1
  5. package/dist/cli/commands/init.js +1 -1
  6. package/dist/cli/commands/init.js.map +1 -1
  7. package/dist/cli/commands/list.d.ts +1 -1
  8. package/dist/cli/commands/list.d.ts.map +1 -1
  9. package/dist/cli/commands/list.js +65 -22
  10. package/dist/cli/commands/list.js.map +1 -1
  11. package/dist/cli/commands/move.d.ts +1 -1
  12. package/dist/cli/commands/move.js +12 -12
  13. package/dist/cli/commands/move.js.map +1 -1
  14. package/dist/cli/commands/new.d.ts +1 -1
  15. package/dist/cli/commands/new.d.ts.map +1 -1
  16. package/dist/cli/commands/new.js +26 -13
  17. package/dist/cli/commands/new.js.map +1 -1
  18. package/dist/cli/commands/next.d.ts +1 -1
  19. package/dist/cli/commands/next.js +15 -15
  20. package/dist/cli/commands/next.js.map +1 -1
  21. package/dist/cli/commands/parent.d.ts +9 -0
  22. package/dist/cli/commands/parent.d.ts.map +1 -0
  23. package/dist/cli/commands/parent.js +94 -0
  24. package/dist/cli/commands/parent.js.map +1 -0
  25. package/dist/cli/commands/serve.js +8 -8
  26. package/dist/cli/commands/serve.js.map +1 -1
  27. package/dist/cli/commands/show.d.ts +1 -1
  28. package/dist/cli/commands/show.d.ts.map +1 -1
  29. package/dist/cli/commands/show.js +51 -31
  30. package/dist/cli/commands/show.js.map +1 -1
  31. package/dist/cli/commands/stats.js +2 -2
  32. package/dist/cli/commands/stats.js.map +1 -1
  33. package/dist/cli/commands/sync.js +3 -3
  34. package/dist/cli/commands/sync.js.map +1 -1
  35. package/dist/cli/parser.d.ts.map +1 -1
  36. package/dist/cli/parser.js +5 -3
  37. package/dist/cli/parser.js.map +1 -1
  38. package/dist/core/column.js +2 -2
  39. package/dist/core/column.js.map +1 -1
  40. package/dist/core/hierarchy.d.ts +97 -0
  41. package/dist/core/hierarchy.d.ts.map +1 -0
  42. package/dist/core/hierarchy.js +274 -0
  43. package/dist/core/hierarchy.js.map +1 -0
  44. package/dist/core/issue.d.ts +62 -0
  45. package/dist/core/issue.d.ts.map +1 -0
  46. package/dist/core/issue.js +247 -0
  47. package/dist/core/issue.js.map +1 -0
  48. package/dist/core/sync.d.ts +9 -9
  49. package/dist/core/sync.d.ts.map +1 -1
  50. package/dist/core/sync.js +61 -58
  51. package/dist/core/sync.js.map +1 -1
  52. package/dist/core/workflow.d.ts +22 -20
  53. package/dist/core/workflow.d.ts.map +1 -1
  54. package/dist/core/workflow.js +68 -51
  55. package/dist/core/workflow.js.map +1 -1
  56. package/dist/index.d.ts +1 -1
  57. package/dist/index.js +1 -1
  58. package/dist/server/api-autocomplete.test.d.ts +6 -0
  59. package/dist/server/api-autocomplete.test.d.ts.map +1 -0
  60. package/dist/server/api-autocomplete.test.js +249 -0
  61. package/dist/server/api-autocomplete.test.js.map +1 -0
  62. package/dist/server/api.d.ts.map +1 -1
  63. package/dist/server/api.js +216 -106
  64. package/dist/server/api.js.map +1 -1
  65. package/dist/server/dashboard/pages/column-prompt.d.ts +1 -1
  66. package/dist/server/dashboard/pages/column-prompt.d.ts.map +1 -1
  67. package/dist/server/dashboard/pages/column-prompt.js +11 -11
  68. package/dist/server/dashboard/pages/column-prompt.js.map +1 -1
  69. package/dist/server/dashboard/pages/column-terminal.d.ts +1 -1
  70. package/dist/server/dashboard/pages/column-terminal.d.ts.map +1 -1
  71. package/dist/server/dashboard/pages/column-terminal.js +14 -14
  72. package/dist/server/dashboard/pages/column-terminal.js.map +1 -1
  73. package/dist/server/dashboard/pages/index.d.ts +3 -1
  74. package/dist/server/dashboard/pages/index.d.ts.map +1 -1
  75. package/dist/server/dashboard/pages/index.js +3 -1
  76. package/dist/server/dashboard/pages/index.js.map +1 -1
  77. package/dist/server/dashboard/pages/issue-graph.d.ts +9 -0
  78. package/dist/server/dashboard/pages/issue-graph.d.ts.map +1 -0
  79. package/dist/server/dashboard/pages/issue-graph.js +581 -0
  80. package/dist/server/dashboard/pages/issue-graph.js.map +1 -0
  81. package/dist/server/dashboard/pages/issue-view.d.ts +8 -0
  82. package/dist/server/dashboard/pages/issue-view.d.ts.map +1 -0
  83. package/dist/server/dashboard/pages/{ticket-view.js → issue-view.js} +128 -128
  84. package/dist/server/dashboard/pages/issue-view.js.map +1 -0
  85. package/dist/server/dashboard/pages/main-dashboard.js +21 -21
  86. package/dist/server/dashboard/pages/main-dashboard.js.map +1 -1
  87. package/dist/server/dashboard/pages/new-issue.d.ts +8 -0
  88. package/dist/server/dashboard/pages/new-issue.d.ts.map +1 -0
  89. package/dist/server/dashboard/pages/new-issue.js +648 -0
  90. package/dist/server/dashboard/pages/new-issue.js.map +1 -0
  91. package/dist/server/dashboard/pages/new-issue.test.d.ts +6 -0
  92. package/dist/server/dashboard/pages/new-issue.test.d.ts.map +1 -0
  93. package/dist/server/dashboard/pages/new-issue.test.js +349 -0
  94. package/dist/server/dashboard/pages/new-issue.test.js.map +1 -0
  95. package/dist/server/dashboard/pages/pipeline-configurator.js +1 -1
  96. package/dist/server/dashboard/pages/shared.d.ts +2 -2
  97. package/dist/server/dashboard/pages/shared.d.ts.map +1 -1
  98. package/dist/server/dashboard/pages/shared.js +5 -5
  99. package/dist/server/dashboard/pages/shared.js.map +1 -1
  100. package/dist/server/dashboard/pages/stats-page.js +11 -11
  101. package/dist/server/dashboard/scripts/index.js +134 -134
  102. package/dist/server/dashboard/styles/board.d.ts +1 -1
  103. package/dist/server/dashboard/styles/board.js +10 -10
  104. package/dist/server/dashboard.d.ts +1 -1
  105. package/dist/server/dashboard.d.ts.map +1 -1
  106. package/dist/server/dashboard.js +1 -1
  107. package/dist/server/dashboard.js.map +1 -1
  108. package/dist/server/index.d.ts.map +1 -1
  109. package/dist/server/index.js +40 -24
  110. package/dist/server/index.js.map +1 -1
  111. package/dist/server/websocket.d.ts +6 -6
  112. package/dist/server/websocket.d.ts.map +1 -1
  113. package/dist/server/websocket.js +10 -10
  114. package/dist/server/websocket.js.map +1 -1
  115. package/dist/services/claude.d.ts +13 -13
  116. package/dist/services/claude.d.ts.map +1 -1
  117. package/dist/services/claude.js +98 -98
  118. package/dist/services/claude.js.map +1 -1
  119. package/dist/services/issue-io.d.ts +81 -0
  120. package/dist/services/issue-io.d.ts.map +1 -0
  121. package/dist/services/{ticket-io.js → issue-io.js} +54 -53
  122. package/dist/services/issue-io.js.map +1 -0
  123. package/dist/services/stats.d.ts +2 -0
  124. package/dist/services/stats.d.ts.map +1 -1
  125. package/dist/services/stats.js.map +1 -1
  126. package/dist/types/index.d.ts +6 -4
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/utils/fs.d.ts +2 -2
  129. package/dist/utils/fs.d.ts.map +1 -1
  130. package/dist/utils/fs.js +2 -2
  131. package/dist/utils/fs.js.map +1 -1
  132. package/package.json +3 -3
  133. package/templates/catalog.yaml +2 -2
  134. package/templates/prompts/api-endpoints-test.en.md +2 -2
  135. package/templates/prompts/api-endpoints-test.fr.md +2 -2
  136. package/templates/prompts/backlog.en.md +6 -6
  137. package/templates/prompts/backlog.fr.md +1 -1
  138. package/templates/prompts/changelog.en.md +6 -6
  139. package/templates/prompts/changelog.fr.md +3 -3
  140. package/templates/prompts/dashboard-responsive.en.md +1 -1
  141. package/templates/prompts/deploy-prod.en.md +3 -3
  142. package/templates/prompts/deploy-prod.fr.md +3 -3
  143. package/templates/prompts/deploy-staging.en.md +3 -3
  144. package/templates/prompts/deploy-staging.fr.md +3 -3
  145. package/templates/prompts/design.en.md +5 -5
  146. package/templates/prompts/design.fr.md +3 -3
  147. package/templates/prompts/dev.en.md +4 -4
  148. package/templates/prompts/dev.fr.md +3 -3
  149. package/templates/prompts/done.en.md +5 -5
  150. package/templates/prompts/done.fr.md +2 -2
  151. package/templates/prompts/error-handling-review.en.md +1 -1
  152. package/templates/prompts/error-handling-review.fr.md +1 -1
  153. package/templates/prompts/file-watcher-test.en.md +4 -4
  154. package/templates/prompts/file-watcher-test.fr.md +1 -1
  155. package/templates/prompts/git-commit.en.md +5 -5
  156. package/templates/prompts/git-commit.fr.md +3 -3
  157. package/templates/prompts/git-push.en.md +3 -3
  158. package/templates/prompts/git-push.fr.md +3 -3
  159. package/templates/prompts/git-tag.en.md +3 -3
  160. package/templates/prompts/git-tag.fr.md +3 -3
  161. package/templates/prompts/in-progress.en.md +6 -6
  162. package/templates/prompts/in-progress.fr.md +3 -3
  163. package/templates/prompts/qualification.en.md +8 -8
  164. package/templates/prompts/qualification.fr.md +3 -3
  165. package/templates/prompts/retest-cypress.en.md +3 -3
  166. package/templates/prompts/retest-cypress.fr.md +3 -3
  167. package/templates/prompts/retest-playwright.en.md +4 -4
  168. package/templates/prompts/retest-playwright.fr.md +3 -3
  169. package/templates/prompts/retest.en.md +4 -4
  170. package/templates/prompts/retest.fr.md +3 -3
  171. package/templates/prompts/review-best-practices.en.md +3 -3
  172. package/templates/prompts/review-best-practices.fr.md +3 -3
  173. package/templates/prompts/review-code.en.md +4 -4
  174. package/templates/prompts/review-code.fr.md +3 -3
  175. package/templates/prompts/review-consistency.en.md +3 -3
  176. package/templates/prompts/review-consistency.fr.md +3 -3
  177. package/templates/prompts/review-no-duplication.en.md +3 -3
  178. package/templates/prompts/review-no-duplication.fr.md +3 -3
  179. package/templates/prompts/review-security.en.md +4 -4
  180. package/templates/prompts/review-security.fr.md +3 -3
  181. package/templates/prompts/specification.en.md +5 -5
  182. package/templates/prompts/specification.fr.md +3 -3
  183. package/templates/prompts/splitter.en.md +13 -13
  184. package/templates/prompts/splitter.fr.md +3 -3
  185. package/templates/prompts/template-validation.en.md +1 -1
  186. package/templates/prompts/template-validation.fr.md +1 -1
  187. package/templates/prompts/testing-coverage.en.md +1 -1
  188. package/templates/prompts/testing-coverage.fr.md +1 -1
  189. package/templates/prompts/testing-cypress.en.md +4 -4
  190. package/templates/prompts/testing-cypress.fr.md +3 -3
  191. package/templates/prompts/testing-integration.en.md +4 -4
  192. package/templates/prompts/testing-integration.fr.md +3 -3
  193. package/templates/prompts/testing-playwright.en.md +4 -4
  194. package/templates/prompts/testing-playwright.fr.md +3 -3
  195. package/templates/prompts/testing-unit.en.md +4 -4
  196. package/templates/prompts/testing-unit.fr.md +3 -3
  197. package/templates/prompts/update-docs.en.md +3 -3
  198. package/templates/prompts/update-docs.fr.md +3 -3
  199. package/templates/prompts/validate-staging.en.md +3 -3
  200. package/templates/prompts/validate-staging.fr.md +3 -3
  201. package/templates/prompts/websocket-test.en.md +1 -1
  202. package/dist/core/ticket.d.ts +0 -50
  203. package/dist/core/ticket.d.ts.map +0 -1
  204. package/dist/core/ticket.js +0 -224
  205. package/dist/core/ticket.js.map +0 -1
  206. package/dist/server/dashboard/pages/ticket-view.d.ts +0 -8
  207. package/dist/server/dashboard/pages/ticket-view.d.ts.map +0 -1
  208. package/dist/server/dashboard/pages/ticket-view.js.map +0 -1
  209. package/dist/services/ticket-io.d.ts +0 -80
  210. package/dist/services/ticket-io.d.ts.map +0 -1
  211. package/dist/services/ticket-io.js.map +0 -1
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Issue CRUD operations - Multi-file structure
3
+ */
4
+ import { join, dirname, basename } from 'node:path';
5
+ import { ensureDir, listDirs, pathExists, generateIssueKey, slugify, getTimestamp, moveDir, } from '../utils/fs.js';
6
+ import { loadIssue, updateMetadata, updateDescription, addCommentFile, addHistoryEntry, createIssueStructure, } from '../services/issue-io.js';
7
+ import { getColumns, getColumnBySlug } from './column.js';
8
+ import { findActionableIssueWithHierarchy, canDeleteIssue } from './hierarchy.js';
9
+ import { removeDir } from '../utils/fs.js';
10
+ /**
11
+ * Find an issue directory by its key
12
+ */
13
+ export function findIssueDir(rootDir, key) {
14
+ const columns = getColumns();
15
+ for (const column of columns) {
16
+ // Issues are stored in column/issues/ subfolder
17
+ const issuesDir = join(rootDir, column.slug, 'issues');
18
+ if (!pathExists(issuesDir))
19
+ continue;
20
+ const issueDirs = listDirs(issuesDir);
21
+ for (const issueDir of issueDirs) {
22
+ if (issueDir.startsWith(`${key}__`)) {
23
+ return join(issuesDir, issueDir);
24
+ }
25
+ }
26
+ }
27
+ return null;
28
+ }
29
+ /**
30
+ * Find an issue path by its key (for backwards compatibility)
31
+ * @deprecated Use findIssueDir instead
32
+ */
33
+ export function findIssuePath(rootDir, key) {
34
+ const issueDir = findIssueDir(rootDir, key);
35
+ if (!issueDir)
36
+ return null;
37
+ return join(issueDir, 'metadata.json');
38
+ }
39
+ /**
40
+ * Get an issue by its key
41
+ */
42
+ export function getIssue(rootDir, key) {
43
+ const issueDir = findIssueDir(rootDir, key);
44
+ if (!issueDir)
45
+ return null;
46
+ return loadIssue(issueDir);
47
+ }
48
+ /**
49
+ * Create a new issue
50
+ */
51
+ export function createIssue(rootDir, input) {
52
+ // Validate parent if provided
53
+ if (input.parent_key) {
54
+ const parent = getIssue(rootDir, input.parent_key);
55
+ if (!parent) {
56
+ throw new Error(`Parent issue '${input.parent_key}' not found`);
57
+ }
58
+ }
59
+ const key = generateIssueKey(rootDir);
60
+ const timestamp = getTimestamp();
61
+ const titleSlug = slugify(input.title);
62
+ // Default to backlog
63
+ const column = getColumnBySlug('00_backlog');
64
+ // Issues are stored in column/issues/ subfolder
65
+ const issueDir = join(rootDir, column.slug, 'issues', `${key}__${titleSlug}`);
66
+ const metadata = {
67
+ key,
68
+ title: input.title,
69
+ priority: input.priority || 'P2',
70
+ labels: input.labels || [],
71
+ acceptance_criteria: input.acceptance_criteria || [],
72
+ semver: input.semver || 'patch',
73
+ history: [
74
+ {
75
+ at: timestamp,
76
+ action: 'created',
77
+ from: null,
78
+ to: column.slug,
79
+ },
80
+ ],
81
+ created_at: timestamp,
82
+ updated_at: timestamp,
83
+ parent_key: input.parent_key || null,
84
+ };
85
+ const description = input.description || '';
86
+ createIssueStructure(issueDir, metadata, description);
87
+ return loadIssue(issueDir);
88
+ }
89
+ /**
90
+ * Update an issue
91
+ */
92
+ export function updateIssue(rootDir, key, updates) {
93
+ const issueDir = findIssueDir(rootDir, key);
94
+ if (!issueDir)
95
+ return null;
96
+ const issue = loadIssue(issueDir);
97
+ if (!issue)
98
+ return null;
99
+ // Build metadata updates
100
+ const metadataUpdates = {};
101
+ if (updates.title !== undefined)
102
+ metadataUpdates.title = updates.title;
103
+ if (updates.priority !== undefined)
104
+ metadataUpdates.priority = updates.priority;
105
+ if (updates.labels !== undefined)
106
+ metadataUpdates.labels = updates.labels;
107
+ if (updates.acceptance_criteria !== undefined)
108
+ metadataUpdates.acceptance_criteria = updates.acceptance_criteria;
109
+ if (updates.semver !== undefined)
110
+ metadataUpdates.semver = updates.semver;
111
+ // Update metadata if any changes
112
+ if (Object.keys(metadataUpdates).length > 0) {
113
+ updateMetadata(issueDir, metadataUpdates);
114
+ }
115
+ // Update description if changed
116
+ if (updates.description !== undefined) {
117
+ updateDescription(issueDir, updates.description);
118
+ }
119
+ return loadIssue(issueDir);
120
+ }
121
+ /**
122
+ * Add a comment to an issue
123
+ */
124
+ export function addComment(rootDir, key, text, column, source = 'user') {
125
+ const issueDir = findIssueDir(rootDir, key);
126
+ if (!issueDir)
127
+ return null;
128
+ const issue = loadIssue(issueDir);
129
+ if (!issue)
130
+ return null;
131
+ const commentColumn = column || issue.status || 'N/A';
132
+ addCommentFile(issueDir, text, commentColumn, source);
133
+ return loadIssue(issueDir);
134
+ }
135
+ /**
136
+ * Move an issue to a new column
137
+ */
138
+ export function moveIssue(rootDir, key, toColumnSlug, force = false) {
139
+ const issueDir = findIssueDir(rootDir, key);
140
+ if (!issueDir)
141
+ return null;
142
+ const issue = loadIssue(issueDir);
143
+ if (!issue)
144
+ return null;
145
+ const toColumn = getColumnBySlug(toColumnSlug);
146
+ if (!toColumn)
147
+ return null;
148
+ const fromColumn = getColumnBySlug(issue.column_slug);
149
+ if (!fromColumn)
150
+ return null;
151
+ // Determine action
152
+ const action = force ? 'forced' : 'moved';
153
+ // Add history entry
154
+ addHistoryEntry(issueDir, action, fromColumn.slug, toColumn.slug);
155
+ // Move directory
156
+ const issueDirName = basename(issueDir);
157
+ // Issues are stored in column/issues/ subfolder
158
+ const newIssueDir = join(rootDir, toColumn.slug, 'issues', issueDirName);
159
+ if (issueDir !== newIssueDir) {
160
+ ensureDir(dirname(newIssueDir));
161
+ moveDir(issueDir, newIssueDir);
162
+ }
163
+ return loadIssue(newIssueDir);
164
+ }
165
+ /**
166
+ * Move an issue to the next column
167
+ */
168
+ export function nextIssue(rootDir, key) {
169
+ const issue = getIssue(rootDir, key);
170
+ if (!issue)
171
+ return null;
172
+ const currentColumn = getColumnBySlug(issue.column_slug);
173
+ if (!currentColumn)
174
+ return null;
175
+ const nextColumn = getColumns().find(c => c.index === currentColumn.index + 1);
176
+ if (!nextColumn)
177
+ return null;
178
+ return moveIssue(rootDir, key, nextColumn.slug);
179
+ }
180
+ /**
181
+ * List all issues
182
+ */
183
+ export function listIssues(rootDir) {
184
+ const issues = [];
185
+ const columns = getColumns();
186
+ for (const column of columns) {
187
+ // Issues are stored in column/issues/ subfolder
188
+ const issuesDir = join(rootDir, column.slug, 'issues');
189
+ if (!pathExists(issuesDir))
190
+ continue;
191
+ const issueDirs = listDirs(issuesDir);
192
+ for (const issueDirName of issueDirs) {
193
+ const issueDir = join(issuesDir, issueDirName);
194
+ const issue = loadIssue(issueDir);
195
+ if (issue) {
196
+ issues.push(issue);
197
+ }
198
+ }
199
+ }
200
+ return issues;
201
+ }
202
+ /**
203
+ * List issues in a specific column
204
+ */
205
+ export function listIssuesInColumn(rootDir, columnSlug) {
206
+ // Issues are stored in column/issues/ subfolder
207
+ const issuesDir = join(rootDir, columnSlug, 'issues');
208
+ if (!pathExists(issuesDir))
209
+ return [];
210
+ const issues = [];
211
+ const issueDirs = listDirs(issuesDir);
212
+ for (const issueDirName of issueDirs) {
213
+ const issueDir = join(issuesDir, issueDirName);
214
+ const issue = loadIssue(issueDir);
215
+ if (issue) {
216
+ issues.push(issue);
217
+ }
218
+ }
219
+ return issues;
220
+ }
221
+ /**
222
+ * Find the first actionable issue (for Claude processing)
223
+ *
224
+ * Uses hierarchical depth-first selection:
225
+ * 1. P0 in backlog can preempt active scope
226
+ * 2. If active scope exists, select deepest eligible issue
227
+ * 3. If no active scope, select from backlog roots by priority
228
+ */
229
+ export function findActionableIssue(rootDir) {
230
+ return findActionableIssueWithHierarchy(rootDir);
231
+ }
232
+ /**
233
+ * Delete an issue (blocked if has children)
234
+ */
235
+ export function deleteIssue(rootDir, key) {
236
+ const { canDelete, reason } = canDeleteIssue(rootDir, key);
237
+ if (!canDelete) {
238
+ return { success: false, error: reason };
239
+ }
240
+ const issueDir = findIssueDir(rootDir, key);
241
+ if (!issueDir) {
242
+ return { success: false, error: `Issue '${key}' not found` };
243
+ }
244
+ removeDir(issueDir);
245
+ return { success: true };
246
+ }
247
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../src/core/issue.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,SAAS,EAET,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,oBAAoB,GAErB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QAErC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,GAAW;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,GAAW;IACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAuB;IAClE,8BAA8B;IAC9B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,UAAU,aAAa,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEvC,qBAAqB;IACrB,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAE,CAAC;IAC9C,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,KAAK,SAAS,EAAE,CAAC,CAAC;IAE9E,MAAM,QAAQ,GAAkB;QAC9B,GAAG;QACH,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC1B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,EAAE;QACpD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,OAAO;QAC/B,OAAO,EAAE;YACP;gBACE,EAAE,EAAE,SAAS;gBACb,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,MAAM,CAAC,IAAI;aAChB;SACF;QACD,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;KACrC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAE5C,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAEtD,OAAO,SAAS,CAAC,QAAQ,CAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,GAAW,EAAE,OAAyB;IACjF,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,yBAAyB;IACzB,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAChF,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1E,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS;QAAE,eAAe,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IACjH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,eAAe,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1E,iCAAiC;IACjC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED,gCAAgC;IAChC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY,EAAE,MAAe,EAAE,SAA4B,MAAM;IACxH,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,aAAa,GAAG,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;IACtD,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAEtD,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,OAAe,EACf,GAAW,EACX,YAAoB,EACpB,KAAK,GAAG,KAAK;IAEb,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,mBAAmB;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAE1C,oBAAoB;IACpB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAElE,iBAAiB;IACjB,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,gDAAgD;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAEzE,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,GAAW;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,UAAU,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,OAAO,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QAErC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,UAAkB;IACpE,gDAAgD;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEtC,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,OAAO,gCAAgC,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,GAAW;IACtD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,aAAa,EAAE,CAAC;IAC/D,CAAC;IAED,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Pipeline synchronization
3
3
  * Handles syncing pipeline configuration with folder structure
4
4
  */
5
- import type { SyncResult, Ticket } from '../types/index.js';
5
+ import type { SyncResult, Issue } from '../types/index.js';
6
6
  /**
7
7
  * Detect changes between pipeline and folder structure
8
8
  */
@@ -16,21 +16,21 @@ export declare function previewSync(rootDir: string): SyncResult;
16
16
  */
17
17
  export declare function applySync(rootDir: string): SyncResult;
18
18
  /**
19
- * Check if there are tickets in transition
19
+ * Check if there are issues in transition
20
20
  */
21
- export declare function hasTransitionTickets(rootDir: string): boolean;
21
+ export declare function hasTransitionIssues(rootDir: string): boolean;
22
22
  /**
23
- * Get tickets in transition
23
+ * Get issues in transition
24
24
  */
25
- export declare function getTransitionTickets(rootDir: string): Ticket[];
25
+ export declare function getTransitionIssues(rootDir: string): Issue[];
26
26
  /**
27
- * Resolve a transition ticket by moving it to a target column
27
+ * Resolve a transition issue by moving it to a target column
28
28
  */
29
- export declare function resolveTransitionTicket(rootDir: string, ticketKey: string, targetSlug: string): boolean;
29
+ export declare function resolveTransitionIssue(rootDir: string, issueKey: string, targetSlug: string): boolean;
30
30
  /**
31
- * Resolve multiple transition tickets
31
+ * Resolve multiple transition issues
32
32
  */
33
- export declare function resolveTransitionTickets(rootDir: string, actions: Record<string, string>): {
33
+ export declare function resolveTransitionIssues(rootDir: string, actions: Record<string, string>): {
34
34
  success: string[];
35
35
  failed: string[];
36
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoB5D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAuDzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAEvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CA6DrD;AA+DD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAoCvG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAYlI;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAoB3D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAuDzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAEvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CA6DrD;AAgED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,EAAE,CAE5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAqCrG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAYjI;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
package/dist/core/sync.js CHANGED
@@ -5,7 +5,7 @@
5
5
  import { join } from 'node:path';
6
6
  import { existsSync, renameSync, readFileSync, writeFileSync } from 'node:fs';
7
7
  import { getActiveColumns } from './pipeline.js';
8
- import { listTicketsInColumn } from './ticket.js';
8
+ import { listIssuesInColumn } from './issue.js';
9
9
  import { ensureDir, listDirs, moveDir } from '../utils/fs.js';
10
10
  const TRANSITION_SLUG = '_transition';
11
11
  /**
@@ -61,10 +61,10 @@ export function detectChanges(rootDir) {
61
61
  for (const dir of existingDirs) {
62
62
  if (!matchedDirs.has(dir) && !expectedSlugs.has(dir)) {
63
63
  result.removed.push(dir);
64
- // Find tickets that will be orphaned
65
- const tickets = listTicketsInColumn(rootDir, dir);
66
- for (const ticket of tickets) {
67
- result.transitioned.push(ticket.key);
64
+ // Find issues that will be orphaned
65
+ const issues = listIssuesInColumn(rootDir, dir);
66
+ for (const issue of issues) {
67
+ result.transitioned.push(issue.key);
68
68
  }
69
69
  }
70
70
  }
@@ -84,17 +84,17 @@ export function applySync(rootDir) {
84
84
  // 1. Create _transition folder if needed
85
85
  if (changes.transitioned.length > 0) {
86
86
  const transitionDir = join(rootDir, TRANSITION_SLUG);
87
- const transitionTicketsDir = join(transitionDir, 'tickets');
87
+ const transitionIssuesDir = join(transitionDir, 'issues');
88
88
  ensureDir(transitionDir);
89
- ensureDir(transitionTicketsDir);
89
+ ensureDir(transitionIssuesDir);
90
90
  }
91
- // 2. Move orphan tickets to _transition
92
- for (const ticketKey of changes.transitioned) {
91
+ // 2. Move orphan issues to _transition
92
+ for (const issueKey of changes.transitioned) {
93
93
  try {
94
- moveTicketToTransition(rootDir, ticketKey);
94
+ moveIssueToTransition(rootDir, issueKey);
95
95
  }
96
96
  catch (error) {
97
- changes.errors.push(`Failed to move ${ticketKey}: ${error}`);
97
+ changes.errors.push(`Failed to move ${issueKey}: ${error}`);
98
98
  }
99
99
  }
100
100
  // 3. Rename folders
@@ -104,7 +104,7 @@ export function applySync(rootDir) {
104
104
  const toPath = join(rootDir, rename.to);
105
105
  if (existsSync(fromPath)) {
106
106
  renameSync(fromPath, toPath);
107
- updateTicketsColumnSlug(rootDir, rename.from, rename.to);
107
+ updateIssuesColumnSlug(rootDir, rename.from, rename.to);
108
108
  }
109
109
  }
110
110
  catch (error) {
@@ -115,15 +115,15 @@ export function applySync(rootDir) {
115
115
  for (const slug of changes.added) {
116
116
  try {
117
117
  const columnDir = join(rootDir, slug);
118
- const ticketsDir = join(columnDir, 'tickets');
118
+ const issuesDir = join(columnDir, 'issues');
119
119
  ensureDir(columnDir);
120
- ensureDir(ticketsDir);
120
+ ensureDir(issuesDir);
121
121
  }
122
122
  catch (error) {
123
123
  changes.errors.push(`Failed to create ${slug}: ${error}`);
124
124
  }
125
125
  }
126
- // 5. Archive removed folders (after moving tickets)
126
+ // 5. Archive removed folders (after moving issues)
127
127
  for (const slug of changes.removed) {
128
128
  try {
129
129
  const columnDir = join(rootDir, slug);
@@ -140,21 +140,21 @@ export function applySync(rootDir) {
140
140
  return changes;
141
141
  }
142
142
  /**
143
- * Move a ticket to _transition
143
+ * Move an issue to _transition
144
144
  */
145
- function moveTicketToTransition(rootDir, ticketKey) {
146
- // Find the ticket directory
145
+ function moveIssueToTransition(rootDir, issueKey) {
146
+ // Find the issue directory (filesystem uses 'issues' folder)
147
147
  const columns = listColumnDirs(rootDir);
148
148
  for (const columnSlug of columns) {
149
- const ticketsDir = join(rootDir, columnSlug, 'tickets');
150
- if (!existsSync(ticketsDir))
149
+ const issuesDir = join(rootDir, columnSlug, 'issues');
150
+ if (!existsSync(issuesDir))
151
151
  continue;
152
- const ticketDirs = listDirs(ticketsDir);
153
- for (const ticketDirName of ticketDirs) {
154
- if (ticketDirName.startsWith(`${ticketKey}__`)) {
155
- const oldPath = join(ticketsDir, ticketDirName);
156
- const newPath = join(rootDir, TRANSITION_SLUG, 'tickets', ticketDirName);
157
- ensureDir(join(rootDir, TRANSITION_SLUG, 'tickets'));
152
+ const issueDirs = listDirs(issuesDir);
153
+ for (const issueDirName of issueDirs) {
154
+ if (issueDirName.startsWith(`${issueKey}__`)) {
155
+ const oldPath = join(issuesDir, issueDirName);
156
+ const newPath = join(rootDir, TRANSITION_SLUG, 'issues', issueDirName);
157
+ ensureDir(join(rootDir, TRANSITION_SLUG, 'issues'));
158
158
  moveDir(oldPath, newPath);
159
159
  // Update metadata
160
160
  const metadataPath = join(newPath, 'metadata.json');
@@ -177,15 +177,16 @@ function moveTicketToTransition(rootDir, ticketKey) {
177
177
  }
178
178
  }
179
179
  /**
180
- * Update column_slug for all tickets in a renamed column
180
+ * Update column_slug for all issues in a renamed column
181
181
  */
182
- function updateTicketsColumnSlug(rootDir, oldSlug, newSlug) {
183
- const ticketsDir = join(rootDir, newSlug, 'tickets');
184
- if (!existsSync(ticketsDir))
182
+ function updateIssuesColumnSlug(rootDir, oldSlug, newSlug) {
183
+ // Issues are stored in the 'issues' subfolder
184
+ const issuesDir = join(rootDir, newSlug, 'issues');
185
+ if (!existsSync(issuesDir))
185
186
  return;
186
- const ticketDirs = listDirs(ticketsDir);
187
- for (const ticketDirName of ticketDirs) {
188
- const metadataPath = join(ticketsDir, ticketDirName, 'metadata.json');
187
+ const issueDirs = listDirs(issuesDir);
188
+ for (const issueDirName of issueDirs) {
189
+ const metadataPath = join(issuesDir, issueDirName, 'metadata.json');
189
190
  if (existsSync(metadataPath)) {
190
191
  const metadata = JSON.parse(readFileSync(metadataPath, 'utf-8'));
191
192
  metadata.column_slug = newSlug;
@@ -195,35 +196,37 @@ function updateTicketsColumnSlug(rootDir, oldSlug, newSlug) {
195
196
  }
196
197
  }
197
198
  /**
198
- * Check if there are tickets in transition
199
+ * Check if there are issues in transition
199
200
  */
200
- export function hasTransitionTickets(rootDir) {
201
- const transitionDir = join(rootDir, TRANSITION_SLUG, 'tickets');
201
+ export function hasTransitionIssues(rootDir) {
202
+ // Issues are stored in the 'issues' subfolder
203
+ const transitionDir = join(rootDir, TRANSITION_SLUG, 'issues');
202
204
  if (!existsSync(transitionDir))
203
205
  return false;
204
- const ticketDirs = listDirs(transitionDir);
205
- return ticketDirs.length > 0;
206
+ const issueDirs = listDirs(transitionDir);
207
+ return issueDirs.length > 0;
206
208
  }
207
209
  /**
208
- * Get tickets in transition
210
+ * Get issues in transition
209
211
  */
210
- export function getTransitionTickets(rootDir) {
211
- return listTicketsInColumn(rootDir, TRANSITION_SLUG);
212
+ export function getTransitionIssues(rootDir) {
213
+ return listIssuesInColumn(rootDir, TRANSITION_SLUG);
212
214
  }
213
215
  /**
214
- * Resolve a transition ticket by moving it to a target column
216
+ * Resolve a transition issue by moving it to a target column
215
217
  */
216
- export function resolveTransitionTicket(rootDir, ticketKey, targetSlug) {
217
- const transitionTicketsDir = join(rootDir, TRANSITION_SLUG, 'tickets');
218
- if (!existsSync(transitionTicketsDir))
218
+ export function resolveTransitionIssue(rootDir, issueKey, targetSlug) {
219
+ // Issues are stored in the 'issues' subfolder
220
+ const transitionIssuesDir = join(rootDir, TRANSITION_SLUG, 'issues');
221
+ if (!existsSync(transitionIssuesDir))
219
222
  return false;
220
- const ticketDirs = listDirs(transitionTicketsDir);
221
- for (const ticketDirName of ticketDirs) {
222
- if (ticketDirName.startsWith(`${ticketKey}__`)) {
223
- const oldPath = join(transitionTicketsDir, ticketDirName);
224
- const targetTicketsDir = join(rootDir, targetSlug, 'tickets');
225
- ensureDir(targetTicketsDir);
226
- const newPath = join(targetTicketsDir, ticketDirName);
223
+ const issueDirs = listDirs(transitionIssuesDir);
224
+ for (const issueDirName of issueDirs) {
225
+ if (issueDirName.startsWith(`${issueKey}__`)) {
226
+ const oldPath = join(transitionIssuesDir, issueDirName);
227
+ const targetIssuesDir = join(rootDir, targetSlug, 'issues');
228
+ ensureDir(targetIssuesDir);
229
+ const newPath = join(targetIssuesDir, issueDirName);
227
230
  moveDir(oldPath, newPath);
228
231
  // Update metadata
229
232
  const metadataPath = join(newPath, 'metadata.json');
@@ -246,16 +249,16 @@ export function resolveTransitionTicket(rootDir, ticketKey, targetSlug) {
246
249
  return false;
247
250
  }
248
251
  /**
249
- * Resolve multiple transition tickets
252
+ * Resolve multiple transition issues
250
253
  */
251
- export function resolveTransitionTickets(rootDir, actions) {
254
+ export function resolveTransitionIssues(rootDir, actions) {
252
255
  const results = { success: [], failed: [] };
253
- for (const [ticketKey, targetSlug] of Object.entries(actions)) {
254
- if (resolveTransitionTicket(rootDir, ticketKey, targetSlug)) {
255
- results.success.push(ticketKey);
256
+ for (const [issueKey, targetSlug] of Object.entries(actions)) {
257
+ if (resolveTransitionIssue(rootDir, issueKey, targetSlug)) {
258
+ results.success.push(issueKey);
256
259
  }
257
260
  else {
258
- results.failed.push(ticketKey);
261
+ results.failed.push(issueKey);
259
262
  }
260
263
  }
261
264
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"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"}
@@ -1,43 +1,45 @@
1
1
  /**
2
2
  * Workflow transitions logic
3
3
  */
4
- import type { Ticket, Column, WorkflowValidation } from '../types/index.js';
4
+ import type { Issue, Column, WorkflowValidation } from '../types/index.js';
5
5
  /**
6
6
  * Validate a workflow transition
7
7
  */
8
- export declare function validateTransition(fromSlug: string, toSlug: string, force?: boolean): WorkflowValidation;
8
+ export declare function validateTransition(fromSlug: string, toSlug: string, force?: boolean, issue?: Issue): WorkflowValidation;
9
9
  /**
10
- * Get available transitions for a ticket
10
+ * Get available transitions for an issue
11
11
  */
12
- export declare function getAvailableTransitions(ticket: Ticket): Column[];
12
+ export declare function getAvailableTransitions(issue: Issue): Column[];
13
13
  /**
14
14
  * Get all possible transitions (including forced)
15
15
  */
16
- export declare function getAllPossibleTransitions(ticket: Ticket): Column[];
16
+ export declare function getAllPossibleTransitions(issue: Issue): Column[];
17
17
  /**
18
- * Check if ticket can advance to next column
18
+ * Check if issue can advance to next column
19
19
  */
20
- export declare function canAdvance(ticket: Ticket): boolean;
20
+ export declare function canAdvance(issue: Issue): boolean;
21
21
  /**
22
- * Check if ticket is in final column (done)
22
+ * Check if issue is in final column (done)
23
+ * Uses name-based detection: column name is exactly "done"
23
24
  */
24
- export declare function isComplete(ticket: Ticket): boolean;
25
+ export declare function isComplete(issue: Issue): boolean;
25
26
  /**
26
- * Check if ticket is in backlog
27
+ * Check if issue is in backlog
28
+ * Uses name-based detection: column name contains "backlog"
27
29
  */
28
- export declare function isInBacklog(ticket: Ticket): boolean;
30
+ export declare function isInBacklog(issue: Issue): boolean;
29
31
  /**
30
32
  * Get workflow progress percentage
31
33
  */
32
- export declare function getProgress(ticket: Ticket): number;
34
+ export declare function getProgress(issue: Issue): number;
33
35
  /**
34
36
  * Get column statistics
35
37
  */
36
- export declare function getColumnStats(tickets: Ticket[]): Map<string, number>;
38
+ export declare function getColumnStats(issues: Issue[]): Map<string, number>;
37
39
  /**
38
40
  * Get workflow summary
39
41
  */
40
- export declare function getWorkflowSummary(tickets: Ticket[]): {
42
+ export declare function getWorkflowSummary(issues: Issue[]): {
41
43
  total: number;
42
44
  byColumn: {
43
45
  column: Column;
@@ -48,19 +50,19 @@ export declare function getWorkflowSummary(tickets: Ticket[]): {
48
50
  backlog: number;
49
51
  };
50
52
  /**
51
- * Transition a ticket to the next column
53
+ * Transition an issue to the next column
52
54
  */
53
- export declare function advanceTicket(rootDir: string, key: string): {
55
+ export declare function advanceIssue(rootDir: string, key: string): {
54
56
  success: boolean;
55
- ticket?: Ticket;
57
+ issue?: Issue;
56
58
  error?: string;
57
59
  };
58
60
  /**
59
- * Force transition a ticket to any column
61
+ * Force transition an issue to any column
60
62
  */
61
- export declare function forceTransition(rootDir: string, key: string, toColumnSlug: string): {
63
+ export declare function forceTransitionIssue(rootDir: string, key: string, toColumnSlug: string): {
62
64
  success: boolean;
63
- ticket?: Ticket;
65
+ issue?: Issue;
64
66
  error?: string;
65
67
  };
66
68
  //# sourceMappingURL=workflow.d.ts.map