mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-14 02:42:04 +08:00
feat: Add CodexLens Manager to dashboard and enhance GPU management
- Introduced a new CodexLens Manager item in the dashboard for easier access. - Implemented GPU management commands in the CLI, including listing available GPUs, selecting a specific GPU, and resetting to automatic detection. - Enhanced the embedding generation process to utilize GPU resources more effectively, including batch size optimization for better performance. - Updated the embedder to support device ID options for GPU selection, ensuring compatibility with DirectML and CUDA. - Added detailed logging and error handling for GPU detection and selection processes. - Updated package version to 6.2.9 and added comprehensive documentation for Codex Agent Execution Protocol.
This commit is contained in:
@@ -4,9 +4,56 @@
|
||||
* Aggregated status endpoint for faster dashboard loading
|
||||
*/
|
||||
import type { IncomingMessage, ServerResponse } from 'http';
|
||||
import { existsSync } from 'fs';
|
||||
import { join } from 'path';
|
||||
import { homedir } from 'os';
|
||||
import { getCliToolsStatus } from '../../tools/cli-executor.js';
|
||||
import { checkVenvStatus, checkSemanticStatus } from '../../tools/codex-lens.js';
|
||||
|
||||
/**
|
||||
* Check CCW installation status
|
||||
* Verifies that required workflow files are installed in user's home directory
|
||||
*/
|
||||
function checkCcwInstallStatus(): {
|
||||
installed: boolean;
|
||||
workflowsInstalled: boolean;
|
||||
missingFiles: string[];
|
||||
installPath: string;
|
||||
} {
|
||||
const claudeDir = join(homedir(), '.claude');
|
||||
const workflowsDir = join(claudeDir, 'workflows');
|
||||
|
||||
// Required workflow files for full functionality
|
||||
const requiredFiles = [
|
||||
'chinese-response.md',
|
||||
'windows-platform.md',
|
||||
'cli-tools-usage.md',
|
||||
'coding-philosophy.md',
|
||||
'context-tools.md',
|
||||
'file-modification.md'
|
||||
];
|
||||
|
||||
const missingFiles: string[] = [];
|
||||
|
||||
// Check each required file
|
||||
for (const file of requiredFiles) {
|
||||
const filePath = join(workflowsDir, file);
|
||||
if (!existsSync(filePath)) {
|
||||
missingFiles.push(file);
|
||||
}
|
||||
}
|
||||
|
||||
const workflowsInstalled = existsSync(workflowsDir) && missingFiles.length === 0;
|
||||
const installed = existsSync(claudeDir) && workflowsInstalled;
|
||||
|
||||
return {
|
||||
installed,
|
||||
workflowsInstalled,
|
||||
missingFiles,
|
||||
installPath: claudeDir
|
||||
};
|
||||
}
|
||||
|
||||
export interface RouteContext {
|
||||
pathname: string;
|
||||
url: URL;
|
||||
@@ -27,6 +74,9 @@ export async function handleStatusRoutes(ctx: RouteContext): Promise<boolean> {
|
||||
// API: Aggregated Status (all statuses in one call)
|
||||
if (pathname === '/api/status/all') {
|
||||
try {
|
||||
// Check CCW installation status (sync, fast)
|
||||
const ccwInstallStatus = checkCcwInstallStatus();
|
||||
|
||||
// Execute all status checks in parallel
|
||||
const [cliStatus, codexLensStatus, semanticStatus] = await Promise.all([
|
||||
getCliToolsStatus(),
|
||||
@@ -39,6 +89,7 @@ export async function handleStatusRoutes(ctx: RouteContext): Promise<boolean> {
|
||||
cli: cliStatus,
|
||||
codexLens: codexLensStatus,
|
||||
semantic: semanticStatus,
|
||||
ccwInstall: ccwInstallStatus,
|
||||
timestamp: new Date().toISOString()
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user