Skip to main content

Thread API

The Thread API provides comprehensive conversation thread management capabilities, allowing you to create, manage, and track conversation threads throughout their lifecycle.

Overview

The thread module enables you to:

  • Create Threads: Initialize new conversation threads with custom configurations
  • Manage Lifecycle: Start, update, and delete threads
  • Track Status: Monitor thread status and progress
  • Access Messages: Retrieve messages and thread history
  • File Changes: Track file modifications associated with threads

Quick Start Example

import codebolt from '@codebolt/codeboltjs';

// Wait for connection
await codebolt.waitForReady();

// Create a new thread
const thread = await codebolt.thread.createThread({
title: 'Feature Implementation Discussion',
description: 'Discussing the new authentication feature',
agentId: 'agent-123',
metadata: {
priority: 'high',
project: 'auth-system'
}
});

console.log('Thread created:', thread.threadId);

// Start the thread
await codebolt.thread.startThread(thread.threadId);

// Get thread details
const details = await codebolt.thread.getThreadDetail({
threadId: thread.threadId
});

console.log('Thread details:', details);

// List all threads
const threadList = await codebolt.thread.getThreadList({
status: 'active',
limit: 10
});

console.log('Active threads:', threadList.threads);

Response Structure

All thread API functions return responses with a consistent structure:

{
threadId: string;
title: string;
description?: string;
status: 'active' | 'archived' | 'closed';
createdAt: string;
updatedAt: string;
metadata?: Record<string, any>;
// ... additional fields based on the specific function
}

Common Use Cases

Creating and Starting a Thread

// Create a thread for a specific task
const thread = await codebolt.thread.createThread({
title: 'Bug Fix: Login Issue',
description: 'Investigating and fixing the login timeout problem',
agentId: 'debugger-agent',
metadata: {
bugId: 'BUG-123',
severity: 'critical'
}
});

// Immediately start working on it
await codebolt.thread.startThread(thread.threadId);

Monitoring Thread Progress

// Get thread messages to track progress
const messages = await codebolt.thread.getThreadMessages({
threadId: thread.threadId,
limit: 50
});

messages.messages.forEach(msg => {
console.log(`[${msg.timestamp}] ${msg.role}: ${msg.content}`);
});

// Get file changes made in the thread
const fileChanges = await codebolt.thread.getThreadFileChanges(thread.threadId);
console.log('Files modified:', fileChanges.changes);

Managing Thread Status

// Update thread status when work is complete
await codebolt.thread.updateThreadStatus(
thread.threadId,
'completed'
);

// Archive old threads
await codebolt.thread.updateThreadStatus(
oldThreadId,
'archived'
);

// Delete threads that are no longer needed
await codebolt.thread.deleteThread(threadId);