-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample-usage.js
More file actions
70 lines (55 loc) · 2.16 KB
/
example-usage.js
File metadata and controls
70 lines (55 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/env node
/**
* Example usage of the Cline API
* This demonstrates how to use the new API-ready Cline controller
*/
const { clineController } = require('./lib/ClineController');
async function exampleUsage() {
try {
console.log('🚀 Cline API Example Usage\n');
// Initialize VS Code browser first
console.log('1. Initializing VS Code browser...');
const { VSBrowser } = require('vscode-extension-tester');
await VSBrowser.instance.openResources();
console.log('✅ VS Code browser ready\n');
// Create a new session
console.log('2. Creating Cline session...');
const sessionId = await clineController.createSession();
console.log(`✅ Session created: ${sessionId}\n`);
// Send a message and get response
console.log('2. Sending message...');
const result = await clineController.sendMessage(sessionId, 'Hello Cline! What can you help me with?');
console.log('📝 Response received:');
result.messages.forEach((message, index) => {
console.log(` ${index + 1}. ${message}`);
});
console.log('');
// Send another message
console.log('3. Sending follow-up message...');
const result2 = await clineController.sendMessage(sessionId, 'Can you show me a simple example?');
console.log('📝 Follow-up response:');
result2.messages.forEach((message, index) => {
console.log(` ${index + 1}. ${message}`);
});
console.log('');
// Get session statistics
console.log('4. Session statistics:');
const stats = await clineController.getSessionStats(sessionId);
console.log(` Messages: ${stats.totalMessages}`);
console.log(` Cost: $${stats.cost}`);
console.log(` Duration: ${Math.round(stats.duration / 1000)}s`);
console.log('');
// Clean up
console.log('5. Cleaning up...');
await clineController.closeSession(sessionId);
console.log('✅ Session closed\n');
console.log('🎉 Example completed successfully!');
} catch (error) {
console.error('❌ Error:', error.message);
}
}
// Run the example if this file is executed directly
if (require.main === module) {
exampleUsage();
}
module.exports = { exampleUsage };