@autocode-cli/autocode 0.0.44 → 0.1.5

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 (143) hide show
  1. package/LICENSE +5 -5
  2. package/LICENSE.fr.md +203 -0
  3. package/README.md +57 -20
  4. package/dist/cli/commands/init.js +1 -1
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/parser.d.ts +1 -1
  7. package/dist/cli/parser.d.ts.map +1 -1
  8. package/dist/cli/parser.js +5 -4
  9. package/dist/cli/parser.js.map +1 -1
  10. package/dist/index.js +4 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/server/api.d.ts.map +1 -1
  13. package/dist/server/api.js +47 -7
  14. package/dist/server/api.js.map +1 -1
  15. package/dist/server/dashboard/index.d.ts +10 -0
  16. package/dist/server/dashboard/index.d.ts.map +1 -0
  17. package/dist/server/dashboard/index.js +16 -0
  18. package/dist/server/dashboard/index.js.map +1 -0
  19. package/dist/server/dashboard/pages/column-edit.d.ts +8 -0
  20. package/dist/server/dashboard/pages/column-edit.d.ts.map +1 -0
  21. package/dist/server/dashboard/pages/column-edit.js +303 -0
  22. package/dist/server/dashboard/pages/column-edit.js.map +1 -0
  23. package/dist/server/dashboard/pages/column-prompt.d.ts +8 -0
  24. package/dist/server/dashboard/pages/column-prompt.d.ts.map +1 -0
  25. package/dist/server/dashboard/pages/column-prompt.js +228 -0
  26. package/dist/server/dashboard/pages/column-prompt.js.map +1 -0
  27. package/dist/server/dashboard/pages/column-terminal.d.ts +8 -0
  28. package/dist/server/dashboard/pages/column-terminal.d.ts.map +1 -0
  29. package/dist/server/dashboard/pages/column-terminal.js +529 -0
  30. package/dist/server/dashboard/pages/column-terminal.js.map +1 -0
  31. package/dist/server/dashboard/pages/index.d.ts +12 -0
  32. package/dist/server/dashboard/pages/index.d.ts.map +1 -0
  33. package/dist/server/dashboard/pages/index.js +12 -0
  34. package/dist/server/dashboard/pages/index.js.map +1 -0
  35. package/dist/server/dashboard/pages/main-dashboard.d.ts +11 -0
  36. package/dist/server/dashboard/pages/main-dashboard.d.ts.map +1 -0
  37. package/dist/server/dashboard/pages/main-dashboard.js +209 -0
  38. package/dist/server/dashboard/pages/main-dashboard.js.map +1 -0
  39. package/dist/server/dashboard/pages/shared.d.ts +8 -0
  40. package/dist/server/dashboard/pages/shared.d.ts.map +1 -0
  41. package/dist/server/dashboard/pages/shared.js +58 -0
  42. package/dist/server/dashboard/pages/shared.js.map +1 -0
  43. package/dist/server/dashboard/pages/ticket-view.d.ts +8 -0
  44. package/dist/server/dashboard/pages/ticket-view.d.ts.map +1 -0
  45. package/dist/server/dashboard/pages/ticket-view.js +1364 -0
  46. package/dist/server/dashboard/pages/ticket-view.js.map +1 -0
  47. package/dist/server/dashboard/scripts/index.d.ts +11 -0
  48. package/dist/server/dashboard/scripts/index.d.ts.map +1 -0
  49. package/dist/server/dashboard/scripts/index.js +1325 -0
  50. package/dist/server/dashboard/scripts/index.js.map +1 -0
  51. package/dist/server/dashboard/styles/base.d.ts +5 -0
  52. package/dist/server/dashboard/styles/base.d.ts.map +1 -0
  53. package/dist/server/dashboard/styles/base.js +110 -0
  54. package/dist/server/dashboard/styles/base.js.map +1 -0
  55. package/dist/server/dashboard/styles/board.d.ts +5 -0
  56. package/dist/server/dashboard/styles/board.d.ts.map +1 -0
  57. package/dist/server/dashboard/styles/board.js +168 -0
  58. package/dist/server/dashboard/styles/board.js.map +1 -0
  59. package/dist/server/dashboard/styles/comments.d.ts +5 -0
  60. package/dist/server/dashboard/styles/comments.d.ts.map +1 -0
  61. package/dist/server/dashboard/styles/comments.js +249 -0
  62. package/dist/server/dashboard/styles/comments.js.map +1 -0
  63. package/dist/server/dashboard/styles/components.d.ts +5 -0
  64. package/dist/server/dashboard/styles/components.d.ts.map +1 -0
  65. package/dist/server/dashboard/styles/components.js +190 -0
  66. package/dist/server/dashboard/styles/components.js.map +1 -0
  67. package/dist/server/dashboard/styles/footer.d.ts +5 -0
  68. package/dist/server/dashboard/styles/footer.d.ts.map +1 -0
  69. package/dist/server/dashboard/styles/footer.js +32 -0
  70. package/dist/server/dashboard/styles/footer.js.map +1 -0
  71. package/dist/server/dashboard/styles/index.d.ts +8 -0
  72. package/dist/server/dashboard/styles/index.d.ts.map +1 -0
  73. package/dist/server/dashboard/styles/index.js +27 -0
  74. package/dist/server/dashboard/styles/index.js.map +1 -0
  75. package/dist/server/dashboard/styles/logs.d.ts +5 -0
  76. package/dist/server/dashboard/styles/logs.d.ts.map +1 -0
  77. package/dist/server/dashboard/styles/logs.js +89 -0
  78. package/dist/server/dashboard/styles/logs.js.map +1 -0
  79. package/dist/server/dashboard/styles/notifications.d.ts +5 -0
  80. package/dist/server/dashboard/styles/notifications.d.ts.map +1 -0
  81. package/dist/server/dashboard/styles/notifications.js +51 -0
  82. package/dist/server/dashboard/styles/notifications.js.map +1 -0
  83. package/dist/server/dashboard/styles/variables.d.ts +5 -0
  84. package/dist/server/dashboard/styles/variables.d.ts.map +1 -0
  85. package/dist/server/dashboard/styles/variables.js +29 -0
  86. package/dist/server/dashboard/styles/variables.js.map +1 -0
  87. package/dist/server/dashboard/utils.d.ts +8 -0
  88. package/dist/server/dashboard/utils.d.ts.map +1 -0
  89. package/dist/server/dashboard/utils.js +14 -0
  90. package/dist/server/dashboard/utils.js.map +1 -0
  91. package/dist/server/dashboard.d.ts +5 -21
  92. package/dist/server/dashboard.d.ts.map +1 -1
  93. package/dist/server/dashboard.js +5 -4945
  94. package/dist/server/dashboard.js.map +1 -1
  95. package/dist/server/index.d.ts.map +1 -1
  96. package/dist/server/index.js +51 -0
  97. package/dist/server/index.js.map +1 -1
  98. package/dist/server/websocket.d.ts +12 -0
  99. package/dist/server/websocket.d.ts.map +1 -1
  100. package/dist/server/websocket.js +19 -0
  101. package/dist/server/websocket.js.map +1 -1
  102. package/dist/services/claude.d.ts.map +1 -1
  103. package/dist/services/claude.js +4 -1
  104. package/dist/services/claude.js.map +1 -1
  105. package/dist/utils/config.d.ts +29 -21
  106. package/dist/utils/config.d.ts.map +1 -1
  107. package/dist/utils/config.js +13 -11
  108. package/dist/utils/config.js.map +1 -1
  109. package/dist/utils/version-check.d.ts +26 -0
  110. package/dist/utils/version-check.d.ts.map +1 -0
  111. package/dist/utils/version-check.js +234 -0
  112. package/dist/utils/version-check.js.map +1 -0
  113. package/package.json +2 -2
  114. package/templates/columns/00_backlog.en.md +1 -1
  115. package/templates/columns/00_backlog.fr.md +1 -1
  116. package/templates/columns/01_ready.en.md +1 -1
  117. package/templates/columns/01_ready.fr.md +1 -1
  118. package/templates/columns/02_in-progress.en.md +1 -1
  119. package/templates/columns/02_in-progress.fr.md +1 -1
  120. package/templates/columns/{07_testing-playwright.en.md → 03_testing-playwright.en.md} +1 -1
  121. package/templates/columns/{07_testing-playwright.fr.md → 03_testing-playwright.fr.md} +1 -1
  122. package/templates/columns/{08_testing-cypress.en.md → 04_testing-cypress.en.md} +1 -1
  123. package/templates/columns/{08_testing-cypress.fr.md → 04_testing-cypress.fr.md} +1 -1
  124. package/templates/columns/{03_review-best-practices.en.md → 05_review-best-practices.en.md} +1 -1
  125. package/templates/columns/{03_review-best-practices.fr.md → 05_review-best-practices.fr.md} +1 -1
  126. package/templates/columns/{04_review-no-duplication.en.md → 06_review-no-duplication.en.md} +1 -1
  127. package/templates/columns/{04_review-no-duplication.fr.md → 06_review-no-duplication.fr.md} +1 -1
  128. package/templates/columns/{05_review-consistency.en.md → 07_review-consistency.en.md} +1 -1
  129. package/templates/columns/{05_review-consistency.fr.md → 07_review-consistency.fr.md} +1 -1
  130. package/templates/columns/{06_review-security.en.md → 08_review-security.en.md} +1 -1
  131. package/templates/columns/{06_review-security.fr.md → 08_review-security.fr.md} +1 -1
  132. package/templates/columns/09_retest-playwright.en.md +30 -0
  133. package/templates/columns/09_retest-playwright.fr.md +30 -0
  134. package/templates/columns/10_retest-cypress.en.md +29 -0
  135. package/templates/columns/10_retest-cypress.fr.md +29 -0
  136. package/templates/columns/{09_update-docs.en.md → 11_update-docs.en.md} +1 -1
  137. package/templates/columns/{09_update-docs.fr.md → 11_update-docs.fr.md} +1 -1
  138. package/templates/columns/{10_deploy-staging.en.md → 12_deploy-staging.en.md} +1 -1
  139. package/templates/columns/{10_deploy-staging.fr.md → 12_deploy-staging.fr.md} +1 -1
  140. package/templates/columns/{11_validate-staging.en.md → 13_validate-staging.en.md} +1 -1
  141. package/templates/columns/{11_validate-staging.fr.md → 13_validate-staging.fr.md} +1 -1
  142. package/templates/columns/{12_done.en.md → 14_done.en.md} +1 -1
  143. package/templates/columns/{12_done.fr.md → 14_done.fr.md} +1 -1
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Column prompt page generator
3
+ */
4
+ import { getConfig } from '../../../utils/config.js';
5
+ import { getTicket } from '../../../core/ticket.js';
6
+ import { escapeHtml } from '../utils.js';
7
+ import { generate404Page } from './shared.js';
8
+ /**
9
+ * Generate the column prompt page
10
+ */
11
+ export function generateColumnPromptPage(ticketKey, columnSlug, lang) {
12
+ const config = getConfig();
13
+ const ticket = getTicket(config.root, ticketKey);
14
+ if (!ticket) {
15
+ return generate404Page(ticketKey, lang);
16
+ }
17
+ return `<!DOCTYPE html>
18
+ <html lang="${lang}">
19
+ <head>
20
+ <meta charset="UTF-8">
21
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
22
+ <title>Prompt → ${escapeHtml(columnSlug)} | ${ticketKey} - AutoCode</title>
23
+ <style>
24
+ :root {
25
+ --bg: #0a0a0f;
26
+ --bg-secondary: #12121a;
27
+ --bg-tertiary: #1a1a24;
28
+ --text: #f1f5f9;
29
+ --muted: #94a3b8;
30
+ --border: #2a2a3a;
31
+ --accent: #6366f1;
32
+ --blue: #4dabf7;
33
+ --green: #4ade80;
34
+ --yellow: #facc15;
35
+ --orange: #fb923c;
36
+ --red: #f87171;
37
+ --purple: #a78bfa;
38
+ }
39
+ * { margin: 0; padding: 0; box-sizing: border-box; }
40
+ body {
41
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
42
+ background: var(--bg);
43
+ color: var(--text);
44
+ min-height: 100vh;
45
+ display: flex;
46
+ flex-direction: column;
47
+ }
48
+ .header {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: 24px;
52
+ padding: 16px 24px;
53
+ background: var(--bg-secondary);
54
+ border-bottom: 1px solid var(--border);
55
+ position: sticky;
56
+ top: 0;
57
+ z-index: 100;
58
+ }
59
+ .back-btn {
60
+ color: var(--muted);
61
+ text-decoration: none;
62
+ font-size: 14px;
63
+ display: flex;
64
+ align-items: center;
65
+ gap: 8px;
66
+ padding: 8px 16px;
67
+ background: var(--bg-tertiary);
68
+ border-radius: 6px;
69
+ transition: all 0.2s;
70
+ }
71
+ .back-btn:hover { color: var(--text); background: var(--border); }
72
+ .ticket-key {
73
+ font-family: 'SF Mono', Monaco, monospace;
74
+ font-size: 12px;
75
+ color: var(--accent);
76
+ background: rgba(99, 102, 241, 0.15);
77
+ padding: 4px 10px;
78
+ border-radius: 4px;
79
+ font-weight: 600;
80
+ }
81
+ .column-slug {
82
+ font-family: 'SF Mono', Monaco, monospace;
83
+ font-size: 14px;
84
+ color: var(--yellow);
85
+ background: rgba(250, 204, 21, 0.15);
86
+ padding: 6px 12px;
87
+ border-radius: 4px;
88
+ font-weight: 500;
89
+ }
90
+ .page-title {
91
+ flex: 1;
92
+ font-size: 18px;
93
+ font-weight: 600;
94
+ display: flex;
95
+ align-items: center;
96
+ gap: 12px;
97
+ }
98
+ .main {
99
+ flex: 1;
100
+ padding: 24px;
101
+ display: flex;
102
+ flex-direction: column;
103
+ }
104
+ .prompt-container {
105
+ flex: 1;
106
+ background: var(--bg-secondary);
107
+ border: 1px solid var(--border);
108
+ border-radius: 12px;
109
+ display: flex;
110
+ flex-direction: column;
111
+ overflow: hidden;
112
+ }
113
+ .prompt-header {
114
+ display: flex;
115
+ align-items: center;
116
+ gap: 12px;
117
+ padding: 12px 16px;
118
+ background: var(--bg-tertiary);
119
+ border-bottom: 1px solid var(--border);
120
+ }
121
+ .prompt-status {
122
+ font-size: 12px;
123
+ padding: 4px 12px;
124
+ border-radius: 12px;
125
+ font-weight: 500;
126
+ }
127
+ .prompt-status.loaded { background: rgba(74, 222, 128, 0.15); color: var(--green); }
128
+ .prompt-status.loading { background: rgba(251, 146, 60, 0.15); color: var(--orange); }
129
+ .prompt-status.error { background: rgba(248, 113, 113, 0.15); color: var(--red); }
130
+ .prompt-content {
131
+ flex: 1;
132
+ padding: 24px;
133
+ overflow-y: auto;
134
+ font-size: 14px;
135
+ line-height: 1.6;
136
+ word-break: break-word;
137
+ }
138
+ .no-prompt {
139
+ color: var(--muted);
140
+ text-align: center;
141
+ padding: 48px;
142
+ font-size: 14px;
143
+ }
144
+ /* Markdown styles */
145
+ .prompt-content h1 { font-size: 1.8em; font-weight: 600; margin: 1em 0 0.5em 0; color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
146
+ .prompt-content h2 { font-size: 1.5em; font-weight: 600; margin: 1em 0 0.5em 0; color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
147
+ .prompt-content h3 { font-size: 1.25em; font-weight: 600; margin: 1em 0 0.5em 0; color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
148
+ .prompt-content h4, .prompt-content h5, .prompt-content h6 { font-size: 1.1em; font-weight: 600; margin: 1em 0 0.5em 0; color: var(--text); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
149
+ .prompt-content p { margin: 0.8em 0; }
150
+ .prompt-content ul, .prompt-content ol { margin: 0.8em 0; padding-left: 2em; }
151
+ .prompt-content li { margin: 0.3em 0; }
152
+ .prompt-content code { background: var(--bg-tertiary); padding: 2px 6px; border-radius: 4px; font-size: 0.9em; }
153
+ .prompt-content pre { background: var(--bg-tertiary); padding: 16px; border-radius: 8px; overflow-x: auto; margin: 1em 0; }
154
+ .prompt-content pre code { background: none; padding: 0; }
155
+ .prompt-content blockquote { border-left: 3px solid var(--accent); padding-left: 16px; margin: 1em 0; color: var(--muted); font-style: italic; }
156
+ .prompt-content a { color: var(--blue); text-decoration: none; }
157
+ .prompt-content a:hover { text-decoration: underline; }
158
+ .prompt-content hr { border: none; border-top: 1px solid var(--border); margin: 1.5em 0; }
159
+ .prompt-content table { border-collapse: collapse; width: 100%; margin: 1em 0; }
160
+ .prompt-content th, .prompt-content td { border: 1px solid var(--border); padding: 8px 12px; text-align: left; }
161
+ .prompt-content th { background: var(--bg-tertiary); }
162
+ .prompt-content strong { font-weight: 600; }
163
+ .prompt-content em { font-style: italic; }
164
+ </style>
165
+ <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
166
+ </head>
167
+ <body>
168
+ <header class="header">
169
+ <a href="/ticket/${ticketKey}" class="back-btn">← Retour</a>
170
+ <span class="ticket-key">${ticketKey}</span>
171
+ <div class="page-title">
172
+ <span>Prompt →</span>
173
+ <span class="column-slug">${escapeHtml(columnSlug)}</span>
174
+ </div>
175
+ </header>
176
+
177
+ <main class="main">
178
+ <div class="prompt-container">
179
+ <div class="prompt-header">
180
+ <span class="prompt-status loading" id="prompt-status">Chargement...</span>
181
+ </div>
182
+ <div class="prompt-content" id="prompt-content">
183
+ <div class="no-prompt">Chargement du prompt...</div>
184
+ </div>
185
+ </div>
186
+ </main>
187
+
188
+ <script>
189
+ const TICKET_KEY = '${ticketKey}';
190
+ const COLUMN_SLUG = '${escapeHtml(columnSlug)}';
191
+
192
+ function escapeHtml(str) {
193
+ if (typeof str !== 'string') return '';
194
+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
195
+ }
196
+
197
+ async function fetchPrompt() {
198
+ const content = document.getElementById('prompt-content');
199
+ const status = document.getElementById('prompt-status');
200
+
201
+ try {
202
+ const res = await fetch('/api/tickets/' + TICKET_KEY + '/prompt/' + COLUMN_SLUG);
203
+ const json = await res.json();
204
+
205
+ if (json.success && json.data && json.data.prompt) {
206
+ content.innerHTML = marked.parse(json.data.prompt);
207
+ status.className = 'prompt-status loaded';
208
+ status.textContent = 'Chargé';
209
+ } else {
210
+ content.innerHTML = '<div class="no-prompt">Aucun prompt disponible pour cette colonne.</div>';
211
+ status.className = 'prompt-status error';
212
+ status.textContent = 'Non disponible';
213
+ }
214
+ } catch (e) {
215
+ console.error('Prompt fetch error:', e);
216
+ content.innerHTML = '<div class="no-prompt">Erreur de chargement.</div>';
217
+ status.className = 'prompt-status error';
218
+ status.textContent = 'Erreur';
219
+ }
220
+ }
221
+
222
+ // Init
223
+ fetchPrompt();
224
+ </script>
225
+ </body>
226
+ </html>`;
227
+ }
228
+ //# sourceMappingURL=column-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-prompt.js","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/column-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAiB,EAAE,UAAkB,EAAE,IAAY;IAC1F,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;cACK,IAAI;;;;oBAIE,UAAU,CAAC,UAAU,CAAC,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAmJlC,SAAS;+BACD,SAAS;;;kCAGN,UAAU,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;0BAgB9B,SAAS;2BACR,UAAU,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoCzC,CAAC;AACT,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Column terminal page generator
3
+ */
4
+ /**
5
+ * Generate the column terminal page
6
+ */
7
+ export declare function generateColumnTerminalPage(ticketKey: string, columnSlug: string, lang: string): string;
8
+ //# sourceMappingURL=column-terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-terminal.d.ts","sourceRoot":"","sources":["../../../../src/server/dashboard/pages/column-terminal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAugBtG"}