Devcaster
Constructor
constructor()
Creates a new instance of the Devcaster SDK.
The constructor initializes the SDK with the provided configuration options, sets up the API client, and initializes all core models (tools, toolkits, etc.).
constructor(config?: DevcasterConfig): DevcasterParameters
| Name | Type | Description |
|---|---|---|
config? | DevcasterConfig | Configuration options for the Devcaster SDK |
Returns
Devcaster
Example
// Initialize with default configuration
const devcaster = new Devcaster();
// Initialize with custom API key and base URL
const devcaster = new Devcaster({
apiKey: 'your-api-key',
baseURL: 'https://api.devcaster.dev'
});
// Initialize with custom provider
const devcaster = new Devcaster({
apiKey: 'your-api-key',
provider: new CustomProvider()
});Properties
| Name | Type | Description |
|---|---|---|
authConfigs | AuthConfigs | Manage authentication configurations for toolkits |
connectedAccounts | ConnectedAccounts | Manage authenticated connections |
create | object | Creates a new tool router session for a user. |
files | Files | Upload and download files |
mcp | MCP | Model Context Protocol server management |
provider | TProvider | The tool provider instance used for wrapping tools in framework-specific formats |
toolkits | Toolkits | Retrieve toolkit metadata and authorize user connections |
toolRouter | ToolRouter | Experimental feature, use with caution |
tools | Tools | List, retrieve, and execute tools |
triggers | Triggers | Manage webhook triggers and event subscriptions |
use | (id: string) => Promise<ToolRouterSession> | Use an existing tool router session |
Methods
createSession()
Creates a new instance of the Devcaster SDK with custom request options while preserving the existing configuration. This method is particularly useful when you need to:
- Add custom headers for specific requests
- Track request contexts with unique identifiers
- Override default request behavior for a subset of operations
The new instance inherits all configuration from the parent instance (apiKey, baseURL, provider, etc.) but allows you to specify custom request options that will be used for all API calls made through this session.
createSession(options?: { headers?: DevcasterRequestHeaders }): DevcasterParameters
| Name | Type |
|---|---|
options? | object |
Returns
Devcaster — A new Devcaster instance with the custom request options applied.
Example
// Create a base Devcaster instance
const devcaster = new Devcaster({
apiKey: 'your-api-key'
});
// Create a session with request tracking headers
const devcasterWithCustomHeaders = devcaster.createSession({
headers: {
'x-request-id': '1234567890',
'x-correlation-id': 'session-abc-123',
'x-custom-header': 'custom-value'
}
});
// Use the session for making API calls with the custom headers
await devcasterWithCustomHeaders.tools.list();flush()
Flush any pending telemetry and wait for it to complete.
In Node.js-compatible environments, telemetry is automatically flushed on process exit. However, in environments like Cloudflare Workers that don't support process exit events, you should call this method manually to ensure all telemetry is sent.
async flush(): Promise<void>Returns
Promise<void> — A promise that resolves when all pending telemetry has been sent.
Example
// In a Cloudflare Worker, use ctx.waitUntil to ensure telemetry is flushed
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
const devcaster = new Devcaster({ apiKey: env.DEVCASTER_API_KEY });
// Do your work...
const result = await devcaster.tools.execute(...);
// Ensure telemetry flushes before worker terminates
ctx.waitUntil(devcaster.flush());
return new Response(JSON.stringify(result));
}
};getClient()
Get the Devcaster SDK client.
getClient(): DevcasterReturns
Devcaster — The Devcaster API client.
getConfig()
Get the configuration SDK is initialized with
getConfig(): DevcasterConfigReturns
DevcasterConfig — The configuration SDK is initialized with