claudeck 1.0.0 → 1.0.2
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/config/folders.json +1 -66
- package/config/repos.json +2 -84
- package/package.json +1 -1
- package/public/css/ui/right-panel.css +7 -0
- package/public/index.html +5 -0
- package/public/js/core/api.js +13 -0
- package/public/js/core/dom.js +1 -0
- package/public/js/features/projects.js +30 -0
- package/public/js/ui/right-panel.js +3 -1
- package/public/js/ui/tab-sdk.js +3 -0
package/config/folders.json
CHANGED
|
@@ -1,66 +1 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"name": "Frontend",
|
|
4
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend",
|
|
5
|
-
"systemPrompt": ""
|
|
6
|
-
},
|
|
7
|
-
{
|
|
8
|
-
"name": "Frontend Docs",
|
|
9
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-docs",
|
|
10
|
-
"systemPrompt": ""
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"name": "FE2.0 - Training Center",
|
|
14
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0-training-center",
|
|
15
|
-
"systemPrompt": ""
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"name": "Vertex",
|
|
19
|
-
"path": "/Users/hamedfarag/WakeCap/Backend/wakecap-apps-manager",
|
|
20
|
-
"systemPrompt": ""
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"name": "Public Site",
|
|
24
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/wakecap-public-site",
|
|
25
|
-
"systemPrompt": ""
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"name": "FE-2.0",
|
|
29
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0",
|
|
30
|
-
"systemPrompt": ""
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"name": "DOCS",
|
|
34
|
-
"path": "/Users/hamedfarag/WakeCap/DOCS",
|
|
35
|
-
"systemPrompt": "You are an expert in writing technical plans, with some points and some details we need to create a plan with these points and for each point we need to show the document the following (problem statement, impact on the system , release date , dependencies), the output always in markdown"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"name": "Playground",
|
|
39
|
-
"path": "/Users/hamedfarag/WakeCap/PLAYGROUND",
|
|
40
|
-
"systemPrompt": ""
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"name": "wakecap-api-services",
|
|
44
|
-
"path": "/Users/hamedfarag/WakeCap/PLAYGROUND/@wakecap/api-services/wakecap-api-services"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"name": "fe-microapp-templates",
|
|
48
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/fe-microapp-templates"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"name": "aiMarketplace",
|
|
52
|
-
"path": "/Users/hamedfarag/Personal/aiMarketplace"
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"name": "orchestrator-agent-with-adws",
|
|
56
|
-
"path": "/Users/hamedfarag/WakeCap/tac/orchestrator-agent-with-adws"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"name": "frontend-common-services",
|
|
60
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-common-services"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"name": "frontend-helpers",
|
|
64
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-helpers"
|
|
65
|
-
}
|
|
66
|
-
]
|
|
1
|
+
[]
|
package/config/repos.json
CHANGED
|
@@ -1,86 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"groups": [
|
|
3
|
-
|
|
4
|
-
"id": "g_1772808718495",
|
|
5
|
-
"name": "frontend-2.0",
|
|
6
|
-
"parentId": null
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"id": "g_1773040762896",
|
|
10
|
-
"name": "Packages",
|
|
11
|
-
"parentId": null
|
|
12
|
-
}
|
|
13
|
-
],
|
|
14
|
-
"repos": [
|
|
15
|
-
{
|
|
16
|
-
"id": "r_1772810331715",
|
|
17
|
-
"name": "frontend-2.0-drones",
|
|
18
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0-drones",
|
|
19
|
-
"groupId": "g_1772808718495",
|
|
20
|
-
"url": null
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"id": "r_1772810479470",
|
|
24
|
-
"name": "frontend-2.0-equipments",
|
|
25
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0-equipments",
|
|
26
|
-
"groupId": "g_1772808718495",
|
|
27
|
-
"url": null
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"id": "r_1772810510888",
|
|
31
|
-
"name": "frontend-components",
|
|
32
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-components",
|
|
33
|
-
"groupId": "g_1773040762896",
|
|
34
|
-
"url": "https://github.com/wakecap/frontend-components"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"id": "r_1772810597927",
|
|
38
|
-
"name": "frontend-2.0-hwm",
|
|
39
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0-hwm",
|
|
40
|
-
"groupId": "g_1772808718495",
|
|
41
|
-
"url": null
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"id": "r_1772811012777",
|
|
45
|
-
"name": "fe-microapp-templates",
|
|
46
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/fe-microapp-templates",
|
|
47
|
-
"groupId": "g_1772808718495",
|
|
48
|
-
"url": "https://github.com/wakecap/fe-microapp-templates"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"id": "r_1772811056665",
|
|
52
|
-
"name": "frontend-2.0-siteguard",
|
|
53
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0-siteguard",
|
|
54
|
-
"groupId": "g_1772808718495",
|
|
55
|
-
"url": null
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"id": "r_1772962801720",
|
|
59
|
-
"name": "frontend-2.0",
|
|
60
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0",
|
|
61
|
-
"groupId": null,
|
|
62
|
-
"url": "https://github.com/wakecap/frontend-2.0"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"id": "r_1773040777472",
|
|
66
|
-
"name": "frontend-helpers",
|
|
67
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-helpers",
|
|
68
|
-
"groupId": "g_1773040762896",
|
|
69
|
-
"url": "https://github.com/wakecap/frontend-helpers"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"id": "r_1773041006726",
|
|
73
|
-
"name": "frontend-2.0-training-center",
|
|
74
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-2.0-training-center",
|
|
75
|
-
"groupId": "g_1772808718495",
|
|
76
|
-
"url": null
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
"id": "r_1773046824777",
|
|
80
|
-
"name": "frontend-docs",
|
|
81
|
-
"path": "/Users/hamedfarag/WakeCap/Frontend/frontend-docs",
|
|
82
|
-
"groupId": "g_1773040762896",
|
|
83
|
-
"url": null
|
|
84
|
-
}
|
|
85
|
-
]
|
|
2
|
+
"groups": [],
|
|
3
|
+
"repos": []
|
|
86
4
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudeck",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A browser-based UI for Claude Code — chat, run workflows, manage MCP servers, track costs, and orchestrate autonomous agents from a local web interface. Installable as a PWA.",
|
|
6
6
|
"main": "server.js",
|
|
@@ -62,6 +62,13 @@
|
|
|
62
62
|
height: 36px;
|
|
63
63
|
padding: 0 6px;
|
|
64
64
|
gap: 0;
|
|
65
|
+
overflow-x: auto;
|
|
66
|
+
overflow-y: hidden;
|
|
67
|
+
scrollbar-width: none; /* Firefox */
|
|
68
|
+
-ms-overflow-style: none; /* IE/Edge */
|
|
69
|
+
}
|
|
70
|
+
.right-panel-tab-bar::-webkit-scrollbar {
|
|
71
|
+
display: none; /* Chrome/Safari */
|
|
65
72
|
}
|
|
66
73
|
|
|
67
74
|
.right-panel-tab {
|
package/public/index.html
CHANGED
|
@@ -268,6 +268,11 @@
|
|
|
268
268
|
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/>
|
|
269
269
|
</svg>
|
|
270
270
|
</button>
|
|
271
|
+
<button id="remove-project-btn" class="add-project-btn sidebar-tooltip" data-tooltip="Remove project">
|
|
272
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
273
|
+
<polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>
|
|
274
|
+
</svg>
|
|
275
|
+
</button>
|
|
271
276
|
<button id="add-project-btn" class="add-project-btn sidebar-tooltip" data-tooltip="Add project">+</button>
|
|
272
277
|
<button id="system-prompt-edit-btn" class="system-prompt-edit-btn sidebar-tooltip" data-tooltip="System prompt">⚙</button>
|
|
273
278
|
</div>
|
package/public/js/core/api.js
CHANGED
|
@@ -283,6 +283,19 @@ export async function addProject(name, path) {
|
|
|
283
283
|
return res.json();
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
+
export async function deleteProject(path) {
|
|
287
|
+
const res = await fetch("/api/projects", {
|
|
288
|
+
method: "DELETE",
|
|
289
|
+
headers: { "Content-Type": "application/json" },
|
|
290
|
+
body: JSON.stringify({ path }),
|
|
291
|
+
});
|
|
292
|
+
if (!res.ok) {
|
|
293
|
+
const err = await res.json();
|
|
294
|
+
throw new Error(err.error);
|
|
295
|
+
}
|
|
296
|
+
return res.json();
|
|
297
|
+
}
|
|
298
|
+
|
|
286
299
|
export async function fetchProjectCommands(path) {
|
|
287
300
|
const res = await fetch(`/api/projects/commands?path=${encodeURIComponent(path)}`);
|
|
288
301
|
return res.json();
|
package/public/js/core/dom.js
CHANGED
|
@@ -259,6 +259,7 @@ export const $ = {
|
|
|
259
259
|
|
|
260
260
|
// Add project modal
|
|
261
261
|
openVscodeBtn: document.getElementById("open-vscode-btn"),
|
|
262
|
+
removeProjectBtn: document.getElementById("remove-project-btn"),
|
|
262
263
|
addProjectBtn: document.getElementById("add-project-btn"),
|
|
263
264
|
addProjectModal: document.getElementById("add-project-modal"),
|
|
264
265
|
addProjectClose: document.getElementById("add-project-close"),
|
|
@@ -278,6 +278,36 @@ $.openVscodeBtn.addEventListener("click", async () => {
|
|
|
278
278
|
} catch { /* ignore */ }
|
|
279
279
|
});
|
|
280
280
|
|
|
281
|
+
// Remove project
|
|
282
|
+
$.removeProjectBtn.addEventListener("click", async () => {
|
|
283
|
+
const path = $.projectSelect.value;
|
|
284
|
+
if (!path) return;
|
|
285
|
+
const name = $.projectSelect.options[$.projectSelect.selectedIndex].textContent;
|
|
286
|
+
if (!confirm(`Remove "${name}" from your projects?\n\nThis only removes it from Claudeck — your files won't be deleted.`)) return;
|
|
287
|
+
try {
|
|
288
|
+
await api.deleteProject(path);
|
|
289
|
+
// Remove from dropdown
|
|
290
|
+
const opt = [...$.projectSelect.options].find(o => o.value === path);
|
|
291
|
+
if (opt) opt.remove();
|
|
292
|
+
// Remove from state
|
|
293
|
+
const projects = getState("projectsData");
|
|
294
|
+
const idx = projects.findIndex(p => p.path === path);
|
|
295
|
+
if (idx !== -1) projects.splice(idx, 1);
|
|
296
|
+
// Reset selection
|
|
297
|
+
$.projectSelect.value = "";
|
|
298
|
+
localStorage.removeItem("claudeck-cwd");
|
|
299
|
+
updateSystemPromptIndicator();
|
|
300
|
+
updateHeaderProjectName();
|
|
301
|
+
updateSessionControls();
|
|
302
|
+
loadProjectCommands();
|
|
303
|
+
$.messagesDiv.innerHTML = "";
|
|
304
|
+
showWhalyPlaceholder();
|
|
305
|
+
loadSessions();
|
|
306
|
+
} catch (err) {
|
|
307
|
+
alert("Failed to remove project: " + err.message);
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
|
|
281
311
|
// Add project button & modal event listeners
|
|
282
312
|
$.addProjectBtn.addEventListener("click", openAddProjectModal);
|
|
283
313
|
$.addProjectClose.addEventListener("click", closeAddProjectModal);
|
|
@@ -68,7 +68,9 @@ function restoreTab(tabName) {
|
|
|
68
68
|
function applyTab(tabName) {
|
|
69
69
|
// Update tab buttons
|
|
70
70
|
$.rightPanel.querySelectorAll(".right-panel-tab").forEach((btn) => {
|
|
71
|
-
|
|
71
|
+
const isActive = btn.dataset.tab === tabName;
|
|
72
|
+
btn.classList.toggle("active", isActive);
|
|
73
|
+
if (isActive) btn.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });
|
|
72
74
|
});
|
|
73
75
|
|
|
74
76
|
// Update panes
|
package/public/js/ui/tab-sdk.js
CHANGED
|
@@ -297,6 +297,9 @@ function mountTab(tab) {
|
|
|
297
297
|
|
|
298
298
|
localStorage.setItem('claudeck-right-panel-tab', tab.id);
|
|
299
299
|
emit('rightPanel:tabChanged', tab.id);
|
|
300
|
+
|
|
301
|
+
// Scroll active tab into view
|
|
302
|
+
btn.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });
|
|
300
303
|
});
|
|
301
304
|
}
|
|
302
305
|
|