sequential-runner
v1.0.1
Published
Deployment-agnostic task execution engine with automatic suspend/resume
Maintainers
Readme
Sequential Runner
Task execution engine with automatic suspend/resume for infinite-length tasks.
Features
- Automatic suspend/resume on external calls
- HTTP-based stack processing
__callHostTool__for wrapped service calls- Task function storage and retrieval
Architecture
Task Submission → deno-executor → suspend on __callHostTool__
↓
stack-processor → wrapped service
↓
resume task with resultHost Tools
Tasks call external services via __callHostTool__:
export async function myTask(input) {
const users = await __callHostTool__('database', 'getUsers', { limit: 10 });
const email = await __callHostTool__('gapi', 'sendEmail', { to: users[0].email });
return { sent: true };
}Available services:
database- Supabase operationsgapi- Google API (Gmail, Calendar, etc.)openai- OpenAI APIkeystore- Credential storage
Task Definition
export const config = {
name: 'my-task',
description: 'My task description',
inputs: [
{ name: 'userId', type: 'string', description: 'User ID' }
]
};
export async function my_task(input) {
const data = await __callHostTool__('database', 'query', { id: input.userId });
return { success: true, data };
}Integration with sequential-adaptor
import { TaskExecutor, StackProcessor, createAdapter } from 'sequential-adaptor';
const adapter = await createAdapter('folder', { basePath: './tasks' });
const executor = new TaskExecutor(adapter);
const processor = new StackProcessor(adapter);
const result = await executor.execute(taskRun, taskCode);Database Schema
task_functions- Published task codetask_runs- Execution instancesstack_runs- Service call chainkeystore- Credentials
License
MIT
