TypeScript Quick Start
Get started with the Autoken TypeScript/JavaScript client library. Full type safety and async/await support for Node.js.
Installation
npm install autokenOr with yarn:
yarn add autokenConfiguration
Set your API key as an environment variable (recommended):
export AUTOKEN_API_KEY="sk_your_api_key_here"Or pass it directly when creating the client:
import { Autoken } from 'autoken';
const client = new Autoken({
apiKey: 'sk_your_api_key'
});Basic Usage
Execute a Task
import { Autoken } from 'autoken';
const client = new Autoken();
// Execute a task
const result = await client.task('translate-text', {
text: 'Hello world',
language: 'es'
});
console.log(result.output.translatedText); // "Hola mundo"
console.log(result.tokenCost); // Cost in tokensList Available Tasks
const tasks = await client.listTasks();
for (const task of tasks) {
console.log(`${task.name}: ${task.description}`);
}Get Task Details
const task = await client.getTask('translate-text');
console.log(task.name);
console.log(task.description);
console.log(task.input); // Input schema
console.log(task.output); // Output schemaWorking with Files (Artifacts)
Upload and Use a File
import fs from 'fs';
// Read file and upload as artifact
const audioData = fs.readFileSync('./audio.mp3');
const artifact = await client.uploadArtifact(audioData, {
filename: 'audio.mp3',
mimeType: 'audio/mpeg'
});
// Use the artifact in a task
const result = await client.task('transcribe-audio', {
artifactHash: artifact.contentHash
});
console.log(result.output.text);Download an Artifact
// Generate audio and download it
const result = await client.task('text-to-speech', {
text: 'Hello world',
voice: 'alloy'
});
// Download the generated audio
const audioBuffer = await client.downloadArtifact(
result.output.artifactHash
);
fs.writeFileSync('./output.mp3', audioBuffer);Error Handling
import { Autoken, AutokenError } from 'autoken';
const client = new Autoken();
try {
const result = await client.task('translate-text', {
text: 'Hello',
language: 'es'
});
} catch (error) {
if (error instanceof AutokenError) {
console.error('Autoken error:', error.message);
console.error('Status code:', error.statusCode);
} else {
throw error;
}
}Token Management
Check Balance
const balance = await client.getBalance();
console.log(`Balance: ${balance.balance}`);View Transaction History
const transactions = await client.getTransactions();
for (const tx of transactions) {
console.log(`${tx.type}: ${tx.amount} - ${tx.description}`);
}Execution History
// Get execution history
const history = await client.getHistory();
for (const execution of history) {
console.log(`${execution.taskName}: ${execution.status}`);
}
// Get a specific execution
const execution = await client.getExecution('exec_abc123');
console.log(execution.output);Complete Example
import { Autoken } from 'autoken';
import fs from 'fs';
async function main() {
const client = new Autoken();
// Check balance
const balance = await client.getBalance();
console.log(`Current balance: ${balance.balance}`);
// Translate text
const translation = await client.task('translate-text', {
text: 'Hello, how are you?',
language: 'fr'
});
console.log(`Translation: ${translation.output.translatedText}`);
// Generate speech
const speech = await client.task('text-to-speech', {
text: translation.output.translatedText,
voice: 'alloy'
});
// Download and save the audio
const audio = await client.downloadArtifact(speech.output.artifactHash);
fs.writeFileSync('./greeting.mp3', audio);
console.log('Audio saved to greeting.mp3');
}
main().catch(console.error);