@astreus-ai/astreus
Version:
AI Agent Framework with Chat Management
63 lines (58 loc) • 1.79 kB
text/typescript
import { TaskManager } from "./manager";
import { Task } from "./task";
import { TaskManagerInstance, TaskConfig, TaskInstance, TaskManagerConfig } from "../types/task";
import { MemoryInstance } from "../types";
import { logger } from "../utils";
/**
* Create a new TaskManager instance
* @param config Configuration for the task manager
* @returns A new TaskManager instance
*/
export const createTaskManager = (
config?: TaskManagerConfig
): TaskManagerInstance => {
try {
logger.debug("Creating task manager instance");
return new TaskManager(config);
} catch (error) {
logger.error("Error creating task manager:", error);
throw error;
}
};
/**
* Create a new task asynchronously
* @param config Configuration for the task
* @param memory Optional memory instance for task context storage
* @returns Promise that resolves to the new task instance
*/
export const createTask = async (
config: TaskConfig,
memory?: MemoryInstance
): Promise<TaskInstance> => {
try {
logger.debug(`Creating task "${config.name}" asynchronously`);
return await Task.createTask(config, memory);
} catch (error) {
logger.error(`Error creating task "${config.name}":`, error);
throw error;
}
};
/**
* Create a new task synchronously
* @param config Configuration for the task
* @param memory Optional memory instance for task context storage
* @returns The new task instance
*/
export const createTaskSync = (
config: TaskConfig,
memory?: MemoryInstance
): TaskInstance => {
try {
logger.debug(`Creating task "${config.name}" synchronously`);
return Task.createTaskSync(config, memory);
} catch (error) {
logger.error(`Error creating task "${config.name}":`, error);
throw error;
}
};
export { TaskManager, Task };