mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-01 20:23:36 +00:00
- Made the generation status variables private and introduced getter functions for both spec and suggestions generation states. - Updated relevant route handlers to utilize the new getter functions, improving encapsulation and reducing direct access to shared state. - Enhanced code maintainability by centralizing state management logic.
82 lines
2.1 KiB
TypeScript
82 lines
2.1 KiB
TypeScript
/**
|
|
* Common utilities and state management for spec regeneration
|
|
*/
|
|
|
|
import { createLogger } from "../../lib/logger.js";
|
|
|
|
const logger = createLogger("SpecRegeneration");
|
|
|
|
// Shared state for tracking generation status - private
|
|
let isRunning = false;
|
|
let currentAbortController: AbortController | null = null;
|
|
|
|
/**
|
|
* Get the current running state
|
|
*/
|
|
export function getSpecRegenerationStatus(): {
|
|
isRunning: boolean;
|
|
currentAbortController: AbortController | null;
|
|
} {
|
|
return { isRunning, currentAbortController };
|
|
}
|
|
|
|
/**
|
|
* Set the running state and abort controller
|
|
*/
|
|
export function setRunningState(
|
|
running: boolean,
|
|
controller: AbortController | null = null
|
|
): void {
|
|
isRunning = running;
|
|
currentAbortController = controller;
|
|
}
|
|
|
|
/**
|
|
* Helper to log authentication status
|
|
*/
|
|
export function logAuthStatus(context: string): void {
|
|
const hasOAuthToken = !!process.env.CLAUDE_CODE_OAUTH_TOKEN;
|
|
const hasApiKey = !!process.env.ANTHROPIC_API_KEY;
|
|
|
|
logger.info(`${context} - Auth Status:`);
|
|
logger.info(
|
|
` CLAUDE_CODE_OAUTH_TOKEN: ${
|
|
hasOAuthToken
|
|
? "SET (" +
|
|
process.env.CLAUDE_CODE_OAUTH_TOKEN?.substring(0, 20) +
|
|
"...)"
|
|
: "NOT SET"
|
|
}`
|
|
);
|
|
logger.info(
|
|
` ANTHROPIC_API_KEY: ${
|
|
hasApiKey
|
|
? "SET (" + process.env.ANTHROPIC_API_KEY?.substring(0, 20) + "...)"
|
|
: "NOT SET"
|
|
}`
|
|
);
|
|
|
|
if (!hasOAuthToken && !hasApiKey) {
|
|
logger.warn("⚠️ WARNING: No authentication configured! SDK will fail.");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Log error details consistently
|
|
*/
|
|
export function logError(error: unknown, context: string): void {
|
|
logger.error(`❌ ${context}:`);
|
|
logger.error("Error name:", (error as any)?.name);
|
|
logger.error("Error message:", (error as Error)?.message);
|
|
logger.error("Error stack:", (error as Error)?.stack);
|
|
logger.error(
|
|
"Full error object:",
|
|
JSON.stringify(error, Object.getOwnPropertyNames(error), 2)
|
|
);
|
|
}
|
|
|
|
import { getErrorMessage as getErrorMessageShared } from "../common.js";
|
|
|
|
// Re-export shared utility
|
|
export { getErrorMessageShared as getErrorMessage };
|