feat(cli-manager): add CLI wrapper endpoints management and UI integration

- Introduced functions to load and toggle CLI wrapper endpoints from the API.
- Updated the CLI manager UI to display and manage CLI wrapper endpoints.
- Removed CodexLens and Semantic Search from the tools section, now managed in their dedicated pages.

feat(codexlens-manager): move File Watcher card to the CodexLens Manager page

- Relocated the File Watcher card from the right column to the main content area of the CodexLens Manager page.

refactor(claude-cli-tools): enhance CLI tools configuration and migration

- Added support for new tool types: 'cli-wrapper' and 'api-endpoint'.
- Updated migration logic to handle new tool types and preserve endpoint IDs.
- Deprecated previous custom endpoint handling in favor of the new structure.

feat(cli-executor-core): integrate CLI settings for custom endpoint execution

- Implemented execution logic for custom CLI封装 endpoints using settings files.
- Enhanced error handling and output logging for CLI executions.
- Updated tool identification logic to support both built-in tools and custom endpoints.
This commit is contained in:
catlog22
2026-01-12 09:35:05 +08:00
parent cefb934a2c
commit 1044886e7d
10 changed files with 1187 additions and 279 deletions

View File

@@ -4497,6 +4497,53 @@ function buildCodexLensManagerPage(config) {
'<div class="text-sm text-muted-foreground">Click Load to view/edit ~/.codexlens/.env</div>' +
'</div>' +
'</div>' +
// File Watcher Card (moved from right column)
'<div class="bg-card border border-border rounded-lg overflow-hidden">' +
'<div class="bg-muted/30 border-b border-border px-4 py-3">' +
'<div class="flex items-center justify-between">' +
'<div class="flex items-center gap-2">' +
'<i data-lucide="eye" class="w-4 h-4 text-primary"></i>' +
'<h4 class="font-semibold">File Watcher</h4>' +
'</div>' +
'<div id="watcherStatusBadge" class="flex items-center gap-2">' +
'<span class="text-xs px-2 py-0.5 rounded-full bg-muted text-muted-foreground">Stopped</span>' +
'<button class="btn-sm btn-outline" onclick="toggleWatcher()" id="watcherToggleBtn">' +
'<i data-lucide="play" class="w-3.5 h-3.5"></i>' +
'</button>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="p-4">' +
'<p class="text-xs text-muted-foreground mb-3">Monitor file changes and auto-update index</p>' +
// Stats row
'<div class="grid grid-cols-3 gap-2 mb-3">' +
'<div class="bg-muted/30 rounded p-2 text-center">' +
'<div id="watcherFilesCount" class="text-sm font-semibold">-</div>' +
'<div class="text-xs text-muted-foreground">Files</div>' +
'</div>' +
'<div class="bg-muted/30 rounded p-2 text-center">' +
'<div id="watcherChangesCount" class="text-sm font-semibold">0</div>' +
'<div class="text-xs text-muted-foreground">Changes</div>' +
'</div>' +
'<div class="bg-muted/30 rounded p-2 text-center">' +
'<div id="watcherUptimeDisplay" class="text-sm font-semibold">-</div>' +
'<div class="text-xs text-muted-foreground">Uptime</div>' +
'</div>' +
'</div>' +
// Recent activity log
'<div class="border border-border rounded">' +
'<div class="bg-muted/30 px-3 py-1.5 border-b border-border text-xs font-medium text-muted-foreground flex items-center justify-between">' +
'<span>Recent Activity</span>' +
'<button class="text-xs hover:text-foreground" onclick="clearWatcherLog()" title="Clear log">' +
'<i data-lucide="trash-2" class="w-3 h-3"></i>' +
'</button>' +
'</div>' +
'<div id="watcherActivityLog" class="h-24 overflow-y-auto p-2 text-xs font-mono bg-background">' +
'<div class="text-muted-foreground">No activity yet. Start watcher to monitor files.</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
// Right Column
'<div class="space-y-6">' +
@@ -4544,53 +4591,6 @@ function buildCodexLensManagerPage(config) {
'</div>' +
'</div>' +
'</div>' +
// File Watcher Card
'<div class="bg-card border border-border rounded-lg overflow-hidden">' +
'<div class="bg-muted/30 border-b border-border px-4 py-3">' +
'<div class="flex items-center justify-between">' +
'<div class="flex items-center gap-2">' +
'<i data-lucide="eye" class="w-4 h-4 text-primary"></i>' +
'<h4 class="font-semibold">File Watcher</h4>' +
'</div>' +
'<div id="watcherStatusBadge" class="flex items-center gap-2">' +
'<span class="text-xs px-2 py-0.5 rounded-full bg-muted text-muted-foreground">Stopped</span>' +
'<button class="btn-sm btn-outline" onclick="toggleWatcher()" id="watcherToggleBtn">' +
'<i data-lucide="play" class="w-3.5 h-3.5"></i>' +
'</button>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="p-4">' +
'<p class="text-xs text-muted-foreground mb-3">Monitor file changes and auto-update index</p>' +
// Stats row
'<div class="grid grid-cols-3 gap-2 mb-3">' +
'<div class="bg-muted/30 rounded p-2 text-center">' +
'<div id="watcherFilesCount" class="text-sm font-semibold">-</div>' +
'<div class="text-xs text-muted-foreground">Files</div>' +
'</div>' +
'<div class="bg-muted/30 rounded p-2 text-center">' +
'<div id="watcherChangesCount" class="text-sm font-semibold">0</div>' +
'<div class="text-xs text-muted-foreground">Changes</div>' +
'</div>' +
'<div class="bg-muted/30 rounded p-2 text-center">' +
'<div id="watcherUptimeDisplay" class="text-sm font-semibold">-</div>' +
'<div class="text-xs text-muted-foreground">Uptime</div>' +
'</div>' +
'</div>' +
// Recent activity log
'<div class="border border-border rounded">' +
'<div class="bg-muted/30 px-3 py-1.5 border-b border-border text-xs font-medium text-muted-foreground flex items-center justify-between">' +
'<span>Recent Activity</span>' +
'<button class="text-xs hover:text-foreground" onclick="clearWatcherLog()" title="Clear log">' +
'<i data-lucide="trash-2" class="w-3 h-3"></i>' +
'</button>' +
'</div>' +
'<div id="watcherActivityLog" class="h-24 overflow-y-auto p-2 text-xs font-mono bg-background">' +
'<div class="text-muted-foreground">No activity yet. Start watcher to monitor files.</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
'</div>' +
// Ignore Patterns Section