Skip to main content
The Tasks API is an interface for managing background tasks such as reindexing and edge regeneration.

Overview

const client = new NdxClient({
  apiKey: process.env.NEURADEX_API_KEY,
  projectId: 'your-project-id',
});

// Access Tasks API
const tasks = await client.tasks.list();
await client.tasks.run('task-id');

Method List

MethodDescription
list(options?)Get task list
get(taskId)Get specific task
run(taskId)Execute task
cancel(taskId)Cancel task
registerReindex(input)Register reindex task
registerEdgeRegeneration(input)Register edge regeneration task

Task Types

TypeDescription
reindexKnowledge reindexing (vector regeneration)
edge_regenerationEdge regeneration between knowledge
knowledge_extractionKnowledge extraction from documents
source_parseSource document parsing
chunkingText chunking
enrichment_processingKnowledge enrichment

Task Status

StatusDescription
pendingWaiting to execute
in_progressCurrently running
doneCompleted
failedFailed

list()

Get task list.

Parameters

options.status
string
Filter by status: 'pending' | 'in_progress' | 'done' | 'failed'
options.type
string
Filter by task type
options.page
number
default:"1"
Page number
options.limit
number
default:"50"
Number of items to retrieve

Return Value

interface ListTasksResponse {
  data: BackgroundTask[];
  total: number;
  page: number;
  limit: number;
}

interface BackgroundTask {
  id: string;
  type: string;
  status: 'pending' | 'in_progress' | 'done' | 'failed';
  title: string;
  progress: number;
  result: object | null;
  error: string | null;
  createdAt: string;
  updatedAt: string;
}

Usage

// Get all tasks
const result = await client.tasks.list();
console.log(`Task count: ${result.total}`);

// Pending tasks only
const pending = await client.tasks.list({ status: 'pending' });

// Reindex tasks only
const reindexTasks = await client.tasks.list({ type: 'reindex' });

run()

Execute a pending task.

Parameters

taskId
string
required
Task ID

Usage

const result = await client.tasks.run('task-id');

if (result.success) {
  console.log('Task completed successfully');
} else {
  console.log('Task failed:', result.error);
}

registerReindex()

Register a knowledge reindex task. Use this to improve vector search accuracy after modifying knowledge content.

Parameters

knowledgeId
string
required
Target knowledge ID
title
string
required
Task title

Usage

// Register reindex task
const task = await client.tasks.registerReindex({
  knowledgeId: 'knowledge-id',
  title: 'Reindex: Product Manual',
});

console.log(`Task ID: ${task.id}`);

// Execute task
await client.tasks.run(task.id);

registerEdgeRegeneration()

Register a task to regenerate edges (relationships) between knowledge. Use this to update the relationship graph after modifying knowledge.

Parameters

knowledgeId
string
required
Target knowledge ID
title
string
required
Task title

Usage

// Register edge regeneration task
const task = await client.tasks.registerEdgeRegeneration({
  knowledgeId: 'knowledge-id',
  title: 'Edge Regeneration: Product Manual',
});

// Execute task
await client.tasks.run(task.id);

Use Cases

Reindex After Bulk Update

async function bulkUpdateAndReindex(updates: Array<{id: string, content: string}>) {
  const tasks = [];

  for (const update of updates) {
    // Update knowledge
    await client.knowledge.update(update.id, {
      content: update.content,
    });

    // Register reindex task
    const task = await client.tasks.registerReindex({
      knowledgeId: update.id,
      title: `Reindex: ${update.id}`,
    });
    tasks.push(task);
  }

  // Execute all tasks
  for (const task of tasks) {
    await client.tasks.run(task.id);
    console.log(`Completed: ${task.title}`);
  }
}

Task Progress Monitoring

async function monitorTask(taskId: string) {
  while (true) {
    const task = await client.tasks.get(taskId);

    console.log(`${task.title}: ${task.status} (${task.progress}%)`);

    if (task.status === 'done') {
      console.log('Task completed:', task.result);
      break;
    }

    if (task.status === 'failed') {
      console.error('Task failed:', task.error);
      break;
    }

    // Wait 5 seconds
    await new Promise(resolve => setTimeout(resolve, 5000));
  }
}

Next Steps

Knowledge API

Knowledge management

Memory API

Context assembly