40 lines
1.3 KiB
TypeScript
40 lines
1.3 KiB
TypeScript
import { feature } from 'bun:bundle'
|
|
import type { Task, TaskType } from './Task.js'
|
|
import { DreamTask } from './tasks/DreamTask/DreamTask.js'
|
|
import { LocalAgentTask } from './tasks/LocalAgentTask/LocalAgentTask.js'
|
|
import { LocalShellTask } from './tasks/LocalShellTask/LocalShellTask.js'
|
|
import { RemoteAgentTask } from './tasks/RemoteAgentTask/RemoteAgentTask.js'
|
|
|
|
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
const LocalWorkflowTask: Task | null = feature('WORKFLOW_SCRIPTS')
|
|
? require('./tasks/LocalWorkflowTask/LocalWorkflowTask.js').LocalWorkflowTask
|
|
: null
|
|
const MonitorMcpTask: Task | null = feature('MONITOR_TOOL')
|
|
? require('./tasks/MonitorMcpTask/MonitorMcpTask.js').MonitorMcpTask
|
|
: null
|
|
/* eslint-enable @typescript-eslint/no-require-imports */
|
|
|
|
/**
|
|
* Get all tasks.
|
|
* Mirrors the pattern from tools.ts
|
|
* Note: Returns array inline to avoid circular dependency issues with top-level const
|
|
*/
|
|
export function getAllTasks(): Task[] {
|
|
const tasks: Task[] = [
|
|
LocalShellTask,
|
|
LocalAgentTask,
|
|
RemoteAgentTask,
|
|
DreamTask,
|
|
]
|
|
if (LocalWorkflowTask) tasks.push(LocalWorkflowTask)
|
|
if (MonitorMcpTask) tasks.push(MonitorMcpTask)
|
|
return tasks
|
|
}
|
|
|
|
/**
|
|
* Get a task by its type.
|
|
*/
|
|
export function getTaskByType(type: TaskType): Task | undefined {
|
|
return getAllTasks().find(t => t.type === type)
|
|
}
|