@cluesmith/codev 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/dashboard/dist/assets/{index-b38SaXk5.js → index-UsH9ixz1.js} +20 -20
  2. package/dashboard/dist/assets/index-UsH9ixz1.js.map +1 -0
  3. package/dashboard/dist/index.html +1 -1
  4. package/dist/agent-farm/cli.js +1 -1
  5. package/dist/agent-farm/cli.js.map +1 -1
  6. package/dist/agent-farm/commands/architect.d.ts +1 -1
  7. package/dist/agent-farm/commands/architect.js +3 -3
  8. package/dist/agent-farm/commands/architect.js.map +1 -1
  9. package/dist/agent-farm/commands/attach.js +1 -1
  10. package/dist/agent-farm/commands/attach.js.map +1 -1
  11. package/dist/agent-farm/commands/cleanup.js +6 -6
  12. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  13. package/dist/agent-farm/commands/open.js +5 -5
  14. package/dist/agent-farm/commands/open.js.map +1 -1
  15. package/dist/agent-farm/commands/send.js +5 -5
  16. package/dist/agent-farm/commands/send.js.map +1 -1
  17. package/dist/agent-farm/commands/shell.js +5 -5
  18. package/dist/agent-farm/commands/shell.js.map +1 -1
  19. package/dist/agent-farm/commands/spawn-worktree.d.ts +1 -1
  20. package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
  21. package/dist/agent-farm/commands/spawn-worktree.js +8 -8
  22. package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
  23. package/dist/agent-farm/commands/spawn.js +3 -3
  24. package/dist/agent-farm/commands/spawn.js.map +1 -1
  25. package/dist/agent-farm/commands/start.d.ts +4 -4
  26. package/dist/agent-farm/commands/start.js +16 -16
  27. package/dist/agent-farm/commands/start.js.map +1 -1
  28. package/dist/agent-farm/commands/status.d.ts +1 -1
  29. package/dist/agent-farm/commands/status.js +16 -16
  30. package/dist/agent-farm/commands/status.js.map +1 -1
  31. package/dist/agent-farm/commands/stop.d.ts +4 -4
  32. package/dist/agent-farm/commands/stop.js +9 -9
  33. package/dist/agent-farm/commands/stop.js.map +1 -1
  34. package/dist/agent-farm/db/index.d.ts.map +1 -1
  35. package/dist/agent-farm/db/index.js +82 -7
  36. package/dist/agent-farm/db/index.js.map +1 -1
  37. package/dist/agent-farm/db/schema.d.ts +2 -2
  38. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  39. package/dist/agent-farm/db/schema.js +21 -4
  40. package/dist/agent-farm/db/schema.js.map +1 -1
  41. package/dist/agent-farm/lib/tower-client.d.ts +20 -20
  42. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
  43. package/dist/agent-farm/lib/tower-client.js +25 -25
  44. package/dist/agent-farm/lib/tower-client.js.map +1 -1
  45. package/dist/agent-farm/lib/tunnel-client.d.ts +12 -2
  46. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
  47. package/dist/agent-farm/lib/tunnel-client.js +59 -1
  48. package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
  49. package/dist/agent-farm/servers/tower-instances.d.ts +18 -18
  50. package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
  51. package/dist/agent-farm/servers/tower-instances.js +89 -89
  52. package/dist/agent-farm/servers/tower-instances.js.map +1 -1
  53. package/dist/agent-farm/servers/tower-routes.d.ts +1 -1
  54. package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
  55. package/dist/agent-farm/servers/tower-routes.js +184 -162
  56. package/dist/agent-farm/servers/tower-routes.js.map +1 -1
  57. package/dist/agent-farm/servers/tower-server.js +23 -19
  58. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  59. package/dist/agent-farm/servers/tower-terminals.d.ts +27 -29
  60. package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
  61. package/dist/agent-farm/servers/tower-terminals.js +95 -116
  62. package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
  63. package/dist/agent-farm/servers/tower-tunnel.d.ts +2 -2
  64. package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
  65. package/dist/agent-farm/servers/tower-tunnel.js +12 -12
  66. package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
  67. package/dist/agent-farm/servers/tower-types.d.ts +8 -10
  68. package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
  69. package/dist/agent-farm/servers/tower-utils.d.ts +9 -9
  70. package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
  71. package/dist/agent-farm/servers/tower-utils.js +18 -18
  72. package/dist/agent-farm/servers/tower-utils.js.map +1 -1
  73. package/dist/agent-farm/servers/tower-websocket.d.ts +2 -2
  74. package/dist/agent-farm/servers/tower-websocket.js +14 -14
  75. package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
  76. package/dist/agent-farm/types.d.ts +2 -2
  77. package/dist/agent-farm/types.d.ts.map +1 -1
  78. package/dist/agent-farm/utils/config.d.ts +1 -1
  79. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  80. package/dist/agent-farm/utils/config.js +16 -16
  81. package/dist/agent-farm/utils/config.js.map +1 -1
  82. package/dist/agent-farm/utils/file-tabs.d.ts +3 -3
  83. package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -1
  84. package/dist/agent-farm/utils/file-tabs.js +9 -9
  85. package/dist/agent-farm/utils/file-tabs.js.map +1 -1
  86. package/dist/agent-farm/utils/gate-status.d.ts +2 -2
  87. package/dist/agent-farm/utils/gate-status.d.ts.map +1 -1
  88. package/dist/agent-farm/utils/gate-status.js +3 -3
  89. package/dist/agent-farm/utils/gate-status.js.map +1 -1
  90. package/dist/agent-farm/utils/index.d.ts +0 -1
  91. package/dist/agent-farm/utils/index.d.ts.map +1 -1
  92. package/dist/agent-farm/utils/index.js +0 -1
  93. package/dist/agent-farm/utils/index.js.map +1 -1
  94. package/dist/agent-farm/utils/notifications.d.ts +4 -4
  95. package/dist/agent-farm/utils/notifications.d.ts.map +1 -1
  96. package/dist/agent-farm/utils/notifications.js +18 -18
  97. package/dist/agent-farm/utils/notifications.js.map +1 -1
  98. package/dist/commands/adopt.d.ts +2 -2
  99. package/dist/commands/adopt.d.ts.map +1 -1
  100. package/dist/commands/adopt.js +13 -3
  101. package/dist/commands/adopt.js.map +1 -1
  102. package/dist/commands/consult/index.d.ts +1 -1
  103. package/dist/commands/consult/index.d.ts.map +1 -1
  104. package/dist/commands/consult/index.js +52 -51
  105. package/dist/commands/consult/index.js.map +1 -1
  106. package/dist/commands/doctor.js +6 -6
  107. package/dist/commands/doctor.js.map +1 -1
  108. package/dist/commands/import.js +4 -4
  109. package/dist/commands/import.js.map +1 -1
  110. package/dist/commands/init.d.ts +2 -2
  111. package/dist/commands/init.d.ts.map +1 -1
  112. package/dist/commands/init.js +13 -3
  113. package/dist/commands/init.js.map +1 -1
  114. package/dist/commands/porch/index.d.ts +6 -6
  115. package/dist/commands/porch/index.d.ts.map +1 -1
  116. package/dist/commands/porch/index.js +37 -37
  117. package/dist/commands/porch/index.js.map +1 -1
  118. package/dist/commands/porch/next.d.ts +1 -1
  119. package/dist/commands/porch/next.d.ts.map +1 -1
  120. package/dist/commands/porch/next.js +43 -40
  121. package/dist/commands/porch/next.js.map +1 -1
  122. package/dist/commands/porch/notify.d.ts +11 -0
  123. package/dist/commands/porch/notify.d.ts.map +1 -0
  124. package/dist/commands/porch/notify.js +30 -0
  125. package/dist/commands/porch/notify.js.map +1 -0
  126. package/dist/commands/porch/plan.d.ts +1 -1
  127. package/dist/commands/porch/plan.d.ts.map +1 -1
  128. package/dist/commands/porch/plan.js +3 -3
  129. package/dist/commands/porch/plan.js.map +1 -1
  130. package/dist/commands/porch/prompts.d.ts +1 -1
  131. package/dist/commands/porch/prompts.d.ts.map +1 -1
  132. package/dist/commands/porch/prompts.js +13 -13
  133. package/dist/commands/porch/prompts.js.map +1 -1
  134. package/dist/commands/porch/protocol.d.ts +1 -1
  135. package/dist/commands/porch/protocol.d.ts.map +1 -1
  136. package/dist/commands/porch/protocol.js +6 -6
  137. package/dist/commands/porch/protocol.js.map +1 -1
  138. package/dist/commands/porch/state.d.ts +6 -6
  139. package/dist/commands/porch/state.d.ts.map +1 -1
  140. package/dist/commands/porch/state.js +11 -11
  141. package/dist/commands/porch/state.js.map +1 -1
  142. package/dist/commands/update.d.ts.map +1 -1
  143. package/dist/commands/update.js +10 -1
  144. package/dist/commands/update.js.map +1 -1
  145. package/dist/lib/scaffold.d.ts +13 -0
  146. package/dist/lib/scaffold.d.ts.map +1 -1
  147. package/dist/lib/scaffold.js +34 -0
  148. package/dist/lib/scaffold.js.map +1 -1
  149. package/dist/lib/skeleton.d.ts +7 -7
  150. package/dist/lib/skeleton.d.ts.map +1 -1
  151. package/dist/lib/skeleton.js +10 -10
  152. package/dist/lib/skeleton.js.map +1 -1
  153. package/dist/terminal/pty-manager.d.ts +1 -1
  154. package/dist/terminal/pty-manager.d.ts.map +1 -1
  155. package/dist/terminal/pty-manager.js +3 -3
  156. package/dist/terminal/pty-manager.js.map +1 -1
  157. package/package.json +1 -1
  158. package/templates/open.html +13 -13
  159. package/templates/tower.html +54 -54
  160. package/templates/vendor/marked.min.js +6 -0
  161. package/templates/vendor/prism-bash.min.js +1 -0
  162. package/templates/vendor/prism-css.min.js +1 -0
  163. package/templates/vendor/prism-javascript.min.js +1 -0
  164. package/templates/vendor/prism-json.min.js +1 -0
  165. package/templates/vendor/prism-markdown.min.js +1 -0
  166. package/templates/vendor/prism-markup.min.js +1 -0
  167. package/templates/vendor/prism-python.min.js +1 -0
  168. package/templates/vendor/prism-tomorrow.min.css +1 -0
  169. package/templates/vendor/prism-typescript.min.js +1 -0
  170. package/templates/vendor/prism-yaml.min.js +1 -0
  171. package/templates/vendor/prism.min.js +1 -0
  172. package/templates/vendor/purify.min.js +3 -0
  173. package/dashboard/dist/assets/index-b38SaXk5.js.map +0 -1
  174. package/dist/agent-farm/hq-connector.d.ts +0 -19
  175. package/dist/agent-farm/hq-connector.d.ts.map +0 -1
  176. package/dist/agent-farm/hq-connector.js +0 -351
  177. package/dist/agent-farm/hq-connector.js.map +0 -1
  178. package/dist/agent-farm/utils/deps.d.ts +0 -51
  179. package/dist/agent-farm/utils/deps.d.ts.map +0 -1
  180. package/dist/agent-farm/utils/deps.js +0 -162
  181. package/dist/agent-farm/utils/deps.js.map +0 -1
  182. package/dist/agent-farm/utils/gate-watcher.d.ts +0 -38
  183. package/dist/agent-farm/utils/gate-watcher.d.ts.map +0 -1
  184. package/dist/agent-farm/utils/gate-watcher.js +0 -122
  185. package/dist/agent-farm/utils/gate-watcher.js.map +0 -1
  186. package/dist/agent-farm/utils/session.d.ts +0 -32
  187. package/dist/agent-farm/utils/session.d.ts.map +0 -1
  188. package/dist/agent-farm/utils/session.js +0 -57
  189. package/dist/agent-farm/utils/session.js.map +0 -1
  190. package/dist/lib/projectlist-parser.d.ts +0 -70
  191. package/dist/lib/projectlist-parser.d.ts.map +0 -1
  192. package/dist/lib/projectlist-parser.js +0 -200
  193. package/dist/lib/projectlist-parser.js.map +0 -1
  194. package/templates/dashboard/css/dialogs.css +0 -149
  195. package/templates/dashboard/css/files.css +0 -558
  196. package/templates/dashboard/css/layout.css +0 -133
  197. package/templates/dashboard/css/projects.css +0 -501
  198. package/templates/dashboard/css/statusbar.css +0 -23
  199. package/templates/dashboard/css/tabs.css +0 -314
  200. package/templates/dashboard/css/utilities.css +0 -50
  201. package/templates/dashboard/css/variables.css +0 -45
  202. package/templates/dashboard/index.html +0 -149
  203. package/templates/dashboard/js/dialogs.js +0 -368
  204. package/templates/dashboard/js/files.js +0 -448
  205. package/templates/dashboard/js/main.js +0 -476
  206. package/templates/dashboard/js/projects.js +0 -544
  207. package/templates/dashboard/js/state.js +0 -91
  208. package/templates/dashboard/js/tabs.js +0 -518
  209. package/templates/dashboard/js/utils.js +0 -191
@@ -1,501 +0,0 @@
1
- /* Projects Tab Styles (Spec 0045) */
2
-
3
- .projects-container {
4
- flex: 1;
5
- overflow-y: auto;
6
- padding: 16px;
7
- display: flex;
8
- flex-direction: column;
9
- gap: 16px;
10
- }
11
-
12
- /* Welcome Screen */
13
- .projects-welcome {
14
- max-width: 600px;
15
- margin: 40px auto;
16
- text-align: center;
17
- }
18
-
19
- .projects-welcome h2 {
20
- font-size: 24px;
21
- margin-bottom: 16px;
22
- color: var(--text-primary);
23
- }
24
-
25
- .projects-welcome p {
26
- color: var(--text-secondary);
27
- line-height: 1.6;
28
- margin-bottom: 16px;
29
- }
30
-
31
- .projects-welcome ol {
32
- text-align: left;
33
- margin: 24px 0;
34
- padding-left: 24px;
35
- }
36
-
37
- .projects-welcome li {
38
- margin-bottom: 8px;
39
- color: var(--text-secondary);
40
- }
41
-
42
- .projects-welcome li strong {
43
- color: var(--text-primary);
44
- }
45
-
46
- .projects-welcome .quick-tip {
47
- margin-top: 24px;
48
- padding: 12px;
49
- background: var(--bg-tertiary);
50
- border-radius: 6px;
51
- border-left: 3px solid var(--accent);
52
- color: var(--text-secondary);
53
- }
54
-
55
- .projects-welcome hr {
56
- border: none;
57
- border-top: 1px solid var(--border);
58
- margin: 24px 0;
59
- }
60
-
61
- /* Status Summary */
62
- .status-summary {
63
- background: var(--bg-secondary);
64
- border: 1px solid var(--border);
65
- border-radius: 6px;
66
- padding: 12px 16px;
67
- }
68
-
69
- .status-summary-header {
70
- display: flex;
71
- justify-content: space-between;
72
- align-items: center;
73
- margin-bottom: 8px;
74
- }
75
-
76
- .status-summary-header span {
77
- font-size: 11px;
78
- text-transform: uppercase;
79
- letter-spacing: 0.5px;
80
- color: var(--text-muted);
81
- }
82
-
83
- .status-summary-header button {
84
- padding: 4px 8px;
85
- border-radius: 4px;
86
- border: 1px solid var(--border);
87
- background: var(--bg-tertiary);
88
- color: var(--text-secondary);
89
- cursor: pointer;
90
- font-size: 14px;
91
- }
92
-
93
- .status-summary-header button:hover {
94
- background: var(--tab-hover);
95
- }
96
-
97
- .status-summary .active-projects {
98
- margin-bottom: 8px;
99
- }
100
-
101
- .status-summary .active-count {
102
- font-size: 14px;
103
- color: var(--text-primary);
104
- }
105
-
106
- .status-summary .active-list {
107
- margin-top: 4px;
108
- padding-left: 16px;
109
- font-size: 13px;
110
- color: var(--text-secondary);
111
- }
112
-
113
- .status-summary .active-list li {
114
- margin: 2px 0;
115
- }
116
-
117
- .status-summary .completed {
118
- font-size: 13px;
119
- color: var(--text-muted);
120
- }
121
-
122
- /* Kanban Grid */
123
- .kanban-grid {
124
- width: 100%;
125
- border-collapse: collapse;
126
- font-size: 13px;
127
- }
128
-
129
- .kanban-grid th,
130
- .kanban-grid td {
131
- padding: 8px 6px;
132
- text-align: center;
133
- border-bottom: 1px solid var(--border);
134
- }
135
-
136
- .kanban-grid th {
137
- background: var(--bg-secondary);
138
- font-size: 10px;
139
- text-transform: uppercase;
140
- letter-spacing: 0.5px;
141
- color: var(--text-muted);
142
- position: sticky;
143
- top: 0;
144
- z-index: 1;
145
- }
146
-
147
- .kanban-grid th:first-child,
148
- .kanban-grid td:first-child {
149
- text-align: left;
150
- padding-left: 12px;
151
- width: 40%;
152
- }
153
-
154
- .kanban-grid th:not(:first-child),
155
- .kanban-grid td:not(:first-child) {
156
- width: 8%;
157
- }
158
-
159
- .kanban-grid tbody tr {
160
- cursor: default;
161
- transition: background 0.15s;
162
- }
163
-
164
- .kanban-grid tbody tr:hover {
165
- background: var(--bg-secondary);
166
- }
167
-
168
- .kanban-grid tbody tr:focus {
169
- outline: 2px solid var(--accent);
170
- outline-offset: -2px;
171
- }
172
-
173
- .kanban-grid .project-cell {
174
- display: flex;
175
- align-items: center;
176
- gap: 8px;
177
- }
178
-
179
- .kanban-grid .project-id {
180
- font-family: monospace;
181
- color: var(--text-muted);
182
- }
183
-
184
- .kanban-grid .project-title {
185
- overflow: hidden;
186
- text-overflow: ellipsis;
187
- white-space: nowrap;
188
- }
189
-
190
- .kanban-grid .project-cell.clickable {
191
- cursor: pointer;
192
- }
193
-
194
- .kanban-grid .project-cell.clickable:hover .project-title {
195
- text-decoration: underline;
196
- color: var(--accent);
197
- }
198
-
199
- .kanban-grid .tick-badge {
200
- font-size: 10px;
201
- padding: 1px 4px;
202
- background: var(--bg-tertiary);
203
- border-radius: 3px;
204
- color: var(--text-muted);
205
- }
206
-
207
- /* Stage cell styling */
208
- .stage-cell {
209
- font-size: 12px;
210
- position: relative;
211
- }
212
-
213
- .stage-cell .checkmark {
214
- color: #22c55e;
215
- font-weight: bold;
216
- }
217
-
218
- .stage-cell .current-indicator {
219
- display: inline-block;
220
- width: 12px;
221
- height: 12px;
222
- border: 2px solid #f97316;
223
- border-radius: 50%;
224
- }
225
-
226
- .stage-cell .celebration {
227
- font-size: 16px;
228
- }
229
-
230
- .stage-cell a {
231
- color: var(--text-primary);
232
- text-decoration: underline;
233
- }
234
-
235
- /* Arrow between columns */
236
- .kanban-grid th:not(:first-child):not(:last-child)::after,
237
- .kanban-grid td.stage-cell:not(:last-child)::after {
238
- content: '→';
239
- position: absolute;
240
- right: -8px;
241
- color: var(--text-muted);
242
- font-size: 10px;
243
- }
244
-
245
- /* Projects info header */
246
- .projects-info {
247
- background: var(--bg-secondary);
248
- border: 1px solid var(--border);
249
- border-radius: 6px;
250
- padding: 12px 16px;
251
- margin-bottom: 12px;
252
- }
253
-
254
- .projects-info p {
255
- color: var(--text-secondary);
256
- font-size: 13px;
257
- margin: 0 0 8px 0;
258
- }
259
-
260
- .projects-info p:last-child {
261
- margin-bottom: 0;
262
- }
263
-
264
- .projects-info strong {
265
- color: var(--text-primary);
266
- }
267
-
268
- .projects-info a {
269
- color: var(--accent);
270
- text-decoration: none;
271
- }
272
-
273
- .projects-info a:hover {
274
- text-decoration: underline;
275
- }
276
-
277
- /* Project details row */
278
- .project-details-row td {
279
- padding: 0 !important;
280
- border-bottom: 1px solid var(--border);
281
- }
282
-
283
- .project-details-content {
284
- padding: 16px;
285
- background: var(--bg-secondary);
286
- }
287
-
288
- .project-details-content h3 {
289
- font-size: 16px;
290
- margin-bottom: 8px;
291
- color: var(--text-primary);
292
- }
293
-
294
- .project-details-content p {
295
- margin-bottom: 8px;
296
- color: var(--text-secondary);
297
- font-size: 13px;
298
- }
299
-
300
- .project-details-content .notes {
301
- font-style: italic;
302
- color: var(--text-muted);
303
- }
304
-
305
- .project-details-links {
306
- display: flex;
307
- gap: 8px;
308
- margin-top: 12px;
309
- }
310
-
311
- .project-details-links a {
312
- padding: 4px 10px;
313
- background: var(--bg-tertiary);
314
- border: 1px solid var(--border);
315
- border-radius: 4px;
316
- color: var(--text-secondary);
317
- text-decoration: none;
318
- font-size: 12px;
319
- }
320
-
321
- .project-details-links a:hover {
322
- background: var(--tab-hover);
323
- color: var(--text-primary);
324
- }
325
-
326
- .project-dependencies {
327
- margin-top: 8px;
328
- font-size: 12px;
329
- color: var(--text-muted);
330
- }
331
-
332
- .project-ticks {
333
- margin-top: 8px;
334
- font-size: 12px;
335
- display: flex;
336
- align-items: center;
337
- gap: 6px;
338
- flex-wrap: wrap;
339
- }
340
-
341
- .project-ticks .tick-badge {
342
- background: #238636;
343
- color: white;
344
- padding: 2px 6px;
345
- border-radius: 3px;
346
- font-size: 11px;
347
- }
348
-
349
- /* Collapsible project sections */
350
- .project-section {
351
- border: 1px solid var(--border);
352
- border-radius: 6px;
353
- background: var(--bg-secondary);
354
- margin-bottom: 12px;
355
- }
356
-
357
- .project-section summary {
358
- padding: 12px 16px;
359
- cursor: pointer;
360
- font-size: 14px;
361
- font-weight: 500;
362
- color: var(--text-primary);
363
- display: flex;
364
- align-items: center;
365
- gap: 8px;
366
- user-select: none;
367
- }
368
-
369
- .project-section summary:hover {
370
- background: var(--bg-tertiary);
371
- }
372
-
373
- .project-section summary::marker {
374
- content: '';
375
- }
376
-
377
- .project-section summary::before {
378
- content: '▶';
379
- font-size: 10px;
380
- transition: transform 0.2s;
381
- color: var(--text-muted);
382
- }
383
-
384
- .project-section[open] summary::before {
385
- transform: rotate(90deg);
386
- }
387
-
388
- .project-section .section-count {
389
- font-size: 12px;
390
- color: var(--text-muted);
391
- font-weight: normal;
392
- }
393
-
394
- .project-section .kanban-grid {
395
- margin: 0;
396
- border-radius: 0 0 6px 6px;
397
- }
398
-
399
- /* Terminal projects section */
400
- .terminal-projects {
401
- margin-top: 16px;
402
- border: 1px solid var(--border);
403
- border-radius: 6px;
404
- background: var(--bg-secondary);
405
- }
406
-
407
- .terminal-projects summary {
408
- padding: 12px 16px;
409
- cursor: pointer;
410
- font-size: 13px;
411
- color: var(--text-muted);
412
- display: flex;
413
- align-items: center;
414
- gap: 8px;
415
- }
416
-
417
- .terminal-projects summary:hover {
418
- background: var(--bg-tertiary);
419
- }
420
-
421
- .terminal-projects summary::marker {
422
- content: '';
423
- }
424
-
425
- .terminal-projects summary::before {
426
- content: '▶';
427
- font-size: 10px;
428
- transition: transform 0.2s;
429
- color: var(--text-muted);
430
- }
431
-
432
- .terminal-projects[open] summary::before {
433
- transform: rotate(90deg);
434
- }
435
-
436
- .terminal-projects ul {
437
- list-style: none;
438
- padding: 0 16px 16px;
439
- }
440
-
441
- .terminal-projects li {
442
- padding: 8px 0;
443
- border-bottom: 1px solid var(--border);
444
- display: flex;
445
- gap: 8px;
446
- align-items: center;
447
- }
448
-
449
- .terminal-projects li:last-child {
450
- border-bottom: none;
451
- }
452
-
453
- .terminal-projects .project-abandoned {
454
- color: var(--project-abandoned);
455
- text-decoration: line-through;
456
- }
457
-
458
- .terminal-projects .project-on-hold {
459
- color: var(--project-on-hold);
460
- font-style: italic;
461
- }
462
-
463
- /* Error banner */
464
- .projects-error {
465
- padding: 16px;
466
- background: rgba(239, 68, 68, 0.1);
467
- border: 1px solid var(--status-error);
468
- border-radius: 6px;
469
- display: flex;
470
- align-items: center;
471
- gap: 12px;
472
- }
473
-
474
- .projects-error-message {
475
- flex: 1;
476
- color: var(--text-secondary);
477
- }
478
-
479
- .projects-error button {
480
- padding: 6px 12px;
481
- background: var(--bg-tertiary);
482
- border: 1px solid var(--border);
483
- border-radius: 4px;
484
- color: var(--text-secondary);
485
- cursor: pointer;
486
- }
487
-
488
- .projects-error button:hover {
489
- background: var(--tab-hover);
490
- }
491
-
492
- /* Stage link styling */
493
- .stage-link {
494
- text-decoration: none;
495
- color: inherit;
496
- cursor: pointer;
497
- }
498
-
499
- .stage-link:hover .stage-indicator {
500
- transform: scale(1.2);
501
- }
@@ -1,23 +0,0 @@
1
- /* Status Bar */
2
-
3
- .status-bar {
4
- padding: 8px 16px;
5
- background: var(--bg-secondary);
6
- border-top: 1px solid var(--border);
7
- font-size: 12px;
8
- color: var(--text-muted);
9
- display: flex;
10
- gap: 16px;
11
- }
12
-
13
- .status-item {
14
- display: flex;
15
- align-items: center;
16
- gap: 6px;
17
- }
18
-
19
- .status-item .dot {
20
- width: 6px;
21
- height: 6px;
22
- border-radius: 50%;
23
- }