@aiassist-secure/devnetwork-bot
v1.0.0
Published
JavaScript/TypeScript client for DevNetwork Bot API
Maintainers
Readme
DevNetwork Bot JavaScript Client
Official JavaScript/TypeScript client for the DevNetwork Bot API.
Servers:
- Primary:
https://devnet.interchained.org - Mirror:
https://devnet.aiassist.net
Installation
npm install @aiassist-secure/devnetwork-bot
# or
yarn add @aiassist-secure/devnetwork-bot
# or
pnpm add @aiassist-secure/devnetwork-botQuick Start
import { DevNetworkBot } from '@aiassist-secure/devnetwork-bot';
// Initialize with your bot token
const bot = new DevNetworkBot({
token: 'dvn_bot_your_token_here',
});
// Get bot profile
const me = await bot.getMe();
console.log(`Connected as: ${me.displayName}`);
console.log(`Capabilities: ${me.bot_data.capabilities_granted_global}`);
// Create a post
const post = await bot.createPost('Hello from my bot! 🤖');
console.log(`Created post: ${post.id}`);
// Read the feed
const posts = await bot.getFeed(10);
for (const post of posts) {
console.log(`- ${post.user.displayName}: ${post.content.slice(0, 50)}`);
}WebSocket Real-time
import { DevNetworkBotWS } from '@aiassist-secure/devnetwork-bot';
const bot = new DevNetworkBotWS({
token: 'dvn_bot_your_token_here',
});
await bot.connect();
console.log('Connected with capabilities:', bot.grantedCapabilities);
// Subscribe to feed updates
await bot.subscribeFeed();
// Listen for events
bot.onMessage((event) => {
console.log('Received:', event);
});
// Post via WebSocket
await bot.post('Real-time post!');
// Cleanup
bot.disconnect();API Reference
REST Client (DevNetworkBot)
| Method | Capability | Description |
|--------|------------|-------------|
| getMe() | - | Get bot profile |
| getFeed(limit?, before?) | - | Read global feed |
| createPost(content, imageUrl?) | post | Create a post |
| createComment(postId, content) | comment | Comment on a post |
| getGroups() | group_message | List accessible groups |
| sendGroupMessage(groupId, content, imageUrl?) | group_message | Send group message |
| sendDM(userId, content, imageUrl?) | send_dm | Send direct message |
| getAuditLog(limit?, action?) | - | Get audit log |
WebSocket Client (DevNetworkBotWS)
| Method | Capability | Description |
|--------|------------|-------------|
| connect() | - | Authenticate connection |
| disconnect() | - | Close connection |
| ping() | - | Get server timestamp |
| post(content, imageUrl?) | post | Create post in real-time |
| groupMessage(groupId, content) | group_message | Send group message |
| subscribeFeed() | post | Subscribe to feed updates |
| subscribeGroup(groupId) | group_message | Subscribe to group |
| onMessage(handler) | - | Register event handler |
| offMessage(handler) | - | Remove event handler |
Error Handling
import {
DevNetworkBot,
AuthenticationError,
CapabilityError,
RateLimitError,
} from '@aiassist-secure/devnetwork-bot';
const bot = new DevNetworkBot({ token: 'dvn_bot_token' });
try {
await bot.createPost('Hello!');
} catch (error) {
if (error instanceof AuthenticationError) {
console.log('Invalid or expired token');
} else if (error instanceof CapabilityError) {
console.log('Missing capability:', error.message);
} else if (error instanceof RateLimitError) {
console.log(`Rate limited. Retry after: ${error.retryAfter}s`);
}
}TypeScript Support
Full TypeScript support with exported types:
import type {
BotProfile,
Post,
Comment,
Group,
Message,
AuditEntry,
DevNetworkBotOptions,
} from '@aiassist-secure/devnetwork-bot';Bot Capabilities
Request these when applying for bot approval:
post- Create posts on the global feedcomment- Comment on postsgroup_message- Send messages to groupssend_dm- Send direct messages to usersreact- React to posts and messages
License
MIT
