@kweaver-ai/chatkit 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/dist/chatkit.cjs.js +84 -84
- package/dist/chatkit.es.js +12386 -11935
- package/dist/components/base/ChatKitBase.d.ts +17 -3
- package/dist/components/base/assistant/AssistantBase.d.ts +13 -0
- package/dist/components/base/assistant/MessageItem.d.ts +2 -0
- package/dist/components/base/assistant/MessageList.d.ts +2 -0
- package/dist/components/base/assistant/RegenerateButton.d.ts +20 -0
- package/dist/components/base/assistant/blocks/ToolBlock.d.ts +6 -0
- package/dist/components/base/copilot/CopilotBase.d.ts +13 -0
- package/dist/components/base/copilot/MessageItem.d.ts +2 -0
- package/dist/components/base/copilot/MessageList.d.ts +2 -0
- package/dist/components/base/copilot/RegenerateButton.d.ts +20 -0
- package/dist/components/base/copilot/blocks/ToolBlock.d.ts +6 -0
- package/dist/components/dip/DIPBase.d.ts +50 -1
- package/dist/components/icons/AfSailorIcon.d.ts +6 -0
- package/dist/components/icons/RefreshIcon.d.ts +6 -0
- package/dist/components/icons/index.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/types/index.d.ts +78 -1
- package/dist/utils/BlockRegistry.d.ts +64 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -484,6 +484,91 @@ interface ChatKitInterface {
|
|
|
484
484
|
}
|
|
485
485
|
```
|
|
486
486
|
|
|
487
|
+
### BlockRegistry 消息工具注册管理
|
|
488
|
+
|
|
489
|
+
对除了内置工具以外的工具支持自定义扩展
|
|
490
|
+
|
|
491
|
+
#### 类型定义
|
|
492
|
+
|
|
493
|
+
```typescript
|
|
494
|
+
type ToolBlockRegistration {
|
|
495
|
+
/** 工具名称(唯一标识),对应 ToolCallData.name */
|
|
496
|
+
name: string;
|
|
497
|
+
/** 工具图标,React 元素 */
|
|
498
|
+
Icon?: React.ReactNode;
|
|
499
|
+
/** 工具点击事件
|
|
500
|
+
* @param block 工具块数据,类型为 Record<string, any>
|
|
501
|
+
*/
|
|
502
|
+
onClick?: (block: Record<string, any>) => void;
|
|
503
|
+
}
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
#### API 方法
|
|
507
|
+
|
|
508
|
+
```typescript
|
|
509
|
+
// 注册单个工具(如果工具已注册,将直接覆盖原有注册信息)
|
|
510
|
+
registerTool(registration: ToolBlockRegistration): void
|
|
511
|
+
|
|
512
|
+
// 批量注册工具(如果工具已注册,将直接覆盖原有注册信息)
|
|
513
|
+
registerTools(registrations: Array<ToolBlockRegistration>): void
|
|
514
|
+
|
|
515
|
+
// 取消注册方法
|
|
516
|
+
unregisterTool(toolName: string): void
|
|
517
|
+
|
|
518
|
+
// 获取注册信息
|
|
519
|
+
getTool(toolName: string): ToolBlockRegistration | undefined
|
|
520
|
+
|
|
521
|
+
// 查询工具是否已经注册
|
|
522
|
+
hasTool(toolName: string): boolean
|
|
523
|
+
|
|
524
|
+
// 清空所有注册工具
|
|
525
|
+
clearAll(): void
|
|
526
|
+
|
|
527
|
+
// 获取所有已注册工具名称
|
|
528
|
+
getAllToolNames(): string[]
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
#### 使用示例
|
|
532
|
+
|
|
533
|
+
**注册单个工具**:
|
|
534
|
+
```typescript
|
|
535
|
+
BlockRegistry.registerTool({
|
|
536
|
+
name: 'your_tool_name',
|
|
537
|
+
Icon: <YourIcon />,
|
|
538
|
+
onClick: (block) => {
|
|
539
|
+
// 自定义处理逻辑
|
|
540
|
+
},
|
|
541
|
+
});
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
**批量注册工具**:
|
|
545
|
+
```typescript
|
|
546
|
+
BlockRegistry.registerTools([
|
|
547
|
+
{
|
|
548
|
+
name: 'tool1',
|
|
549
|
+
Icon: <Icon1 />,
|
|
550
|
+
onClick: (block) => { /* 处理逻辑 */ },
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
name: 'tool2',
|
|
554
|
+
Icon: <Icon2 />,
|
|
555
|
+
},
|
|
556
|
+
]);
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
**重新注册工具(覆盖)**:
|
|
560
|
+
```typescript
|
|
561
|
+
// 如果工具已注册,直接调用 registerTool 即可覆盖
|
|
562
|
+
BlockRegistry.registerTool({
|
|
563
|
+
name: 'your_tool_name',
|
|
564
|
+
Icon: <NewIcon />, // 更新图标
|
|
565
|
+
onClick: (block) => {
|
|
566
|
+
// 更新点击行为
|
|
567
|
+
},
|
|
568
|
+
});
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
|
|
487
572
|
## 架构设计
|
|
488
573
|
|
|
489
574
|
### Mixin 模式
|