Loading...
Loading...
Compare original and translation side by side
chatnode_modules/chat/docs/node_modules/chat/docs/ # Full documentation (MDX files)
node_modules/chat/dist/ # Built types (.d.ts files)docs/getting-started.mdxdocs/usage.mdxdocs/streaming.mdxdocs/cards.mdxdocs/actions.mdxdocs/modals.mdxdocs/adapters/*.mdxdocs/state/*.mdxnode_modules/chat/dist/chatnode_modules/chat/docs/node_modules/chat/docs/ # 完整文档(MDX文件)
node_modules/chat/dist/ # 编译后的类型文件(.d.ts格式)docs/getting-started.mdxdocs/usage.mdxdocs/streaming.mdxdocs/cards.mdxdocs/actions.mdxdocs/modals.mdxdocs/adapters/*.mdxdocs/state/*.mdxnode_modules/chat/dist/import { Chat } from "chat";
import { createSlackAdapter } from "@chat-adapter/slack";
import { createRedisState } from "@chat-adapter/state-redis";
const bot = new Chat({
userName: "mybot",
adapters: {
slack: createSlackAdapter({
botToken: process.env.SLACK_BOT_TOKEN!,
signingSecret: process.env.SLACK_SIGNING_SECRET!,
}),
},
state: createRedisState({ url: process.env.REDIS_URL! }),
});
bot.onNewMention(async (thread) => {
await thread.subscribe();
await thread.post("Hello! I'm listening to this thread.");
});
bot.onSubscribedMessage(async (thread, message) => {
await thread.post(`You said: ${message.text}`);
});import { Chat } from "chat";
import { createSlackAdapter } from "@chat-adapter/slack";
import { createRedisState } from "@chat-adapter/state-redis";
const bot = new Chat({
userName: "mybot",
adapters: {
slack: createSlackAdapter({
botToken: process.env.SLACK_BOT_TOKEN!,
signingSecret: process.env.SLACK_SIGNING_SECRET!,
}),
},
state: createRedisState({ url: process.env.REDIS_URL! }),
});
bot.onNewMention(async (thread) => {
await thread.subscribe();
await thread.post("Hello! I'm listening to this thread.");
});
bot.onSubscribedMessage(async (thread, message) => {
await thread.post(`You said: ${message.text}`);
});post()subscribe()startTyping()textformattedrawpost()subscribe()startTyping()textformattedraw| Handler | Trigger |
|---|---|
| Bot @-mentioned in unsubscribed thread |
| Any message in subscribed thread |
| Messages matching pattern in unsubscribed threads |
| Slash command invocations |
| Emoji reactions added/removed |
| Button clicks and dropdown selections |
| Slack Assistants API thread opened |
| Slack App Home tab opened |
| 处理器 | 触发条件 |
|---|---|
| 机器人在未订阅的线程中被@提及 |
| 已订阅线程中的任何消息 |
| 未订阅线程中匹配指定模式的消息 |
| 斜杠命令被调用 |
| 表情反应被添加/移除 |
| 按钮点击或下拉菜单选择 |
| Slack Assistants API线程开启 |
| Slack应用主页标签被打开 |
AsyncIterable<string>thread.post()textStreamimport { ToolLoopAgent } from "ai";
const agent = new ToolLoopAgent({ model: "anthropic/claude-4.5-sonnet" });
bot.onNewMention(async (thread, message) => {
const result = await agent.stream({ prompt: message.text });
await thread.post(result.textStream);
});AsyncIterable<string>thread.post()textStreamimport { ToolLoopAgent } from "ai";
const agent = new ToolLoopAgent({ model: "anthropic/claude-4.5-sonnet" });
bot.onNewMention(async (thread, message) => {
const result = await agent.stream({ prompt: message.text });
await thread.post(result.textStream);
});jsxImportSource: "chat"CardCardTextButtonActionsFieldsFieldSelectSelectOptionImageDividerLinkButtonSectionRadioSelectawait thread.post(
<Card title="Order #1234">
<CardText>Your order has been received!</CardText>
<Actions>
<Button id="approve" style="primary">Approve</Button>
<Button id="reject" style="danger">Reject</Button>
</Actions>
</Card>
);jsxImportSource: "chat"CardCardTextButtonActionsFieldsFieldSelectSelectOptionImageDividerLinkButtonSectionRadioSelectawait thread.post(
<Card title="Order #1234">
<CardText>Your order has been received!</CardText>
<Actions>
<Button id="approve" style="primary">Approve</Button>
<Button id="reject" style="danger">Reject</Button>
</Actions>
</Card>
);| Package | Purpose |
|---|---|
| Core SDK |
| Slack |
| Microsoft Teams |
| Google Chat |
| Discord |
| GitHub Issues |
| Linear Issues |
| Redis state (production) |
| ioredis state (alternative) |
| In-memory state (development) |
| 包 | 用途 |
|---|---|
| 核心SDK |
| Slack平台适配 |
| Microsoft Teams平台适配 |
| Google Chat平台适配 |
| Discord平台适配 |
| GitHub Issues适配 |
| Linear Issues适配 |
| Redis状态存储(生产环境) |
| ioredis状态存储(替代方案) |
| 内存状态存储(开发环境) |
bot.webhooks.{platform}bot.webhooks.{platform}