@blade-hq/agent-react 2612.0.0-beta.47 → 2612.0.0-beta.49

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 CHANGED
@@ -493,3 +493,11 @@ ChatView 和 `<blade-chat>` 的默认轻量输入支持 @ 搜索插件条目,
493
493
  ### 应用资料展示
494
494
 
495
495
  共享聊天视图展示消息级 `context_attachments`:气泡只显示正文,资料标签可展开查看纯文本详情,`data` 中的内部 JSON 与 ID 不显示。`ChatSendOptions.contextAttachments` 可沿共享发送入口传入 SDK;可靠后台发送使用 `AgentSession.prepareSend` / `sendPrepared`。文件读取使用当前 `BladeProvider` 的 `BladeClient` 和资料指定的会话权限,失效或没有来源的文件显示「文件不可用」。内置 Web、扩展和嵌入视图使用相同实现。
496
+
497
+ ### 独立嵌入提问卡片(React 19+)
498
+
499
+ 自行管理消息时间线的宿主可从 `@blade-hq/agent-react/questions` 按需导入 `QuestionnaireQuestionBlock`(也导出为 `AskUserQuestionBlock`),无需加载整个 `ChatView`。该入口基于官方 shadcn Questionnaire,遵循 `@shadcn/react` 的 React 19+ 要求;原有 `ChatView` 入口及其问答渲染器保留 React 18 支持。
500
+
501
+ 入口同时导出 `AskUserQuestionData` 和 `AskUserAnswerData` 类型。通过 `data`、`answered`、`answerData` 和 `sessionStatus` 提供问题及状态;`onAnswer(text, toolCallId, answerData)` 交给宿主,使用 `session.send(text, { askUserAnswer: { tool_call_id: toolCallId, ...answerData } })` 将原生结构化回答送回原始会话,不能送入普通文本队列。
502
+
503
+ Questionnaire 负责必答校验、原生单选/多选、自填和前后分页,不提供跳过问题的业务行为。宿主负责传输、提交失败反馈、刷新已保存的回答及主题样式;提交失败时以 `sessionStatus="failed"` 恢复当前选择供重试。问题类型及文本格式化函数与 BA 原生协议共用。
@@ -1,22 +1,6 @@
1
- import type { AskUserAnswerData } from "@blade-hq/agent-client";
2
- export type { AskUserAnswerData };
3
- interface OptionItem {
4
- label: string;
5
- description: string;
6
- }
7
- interface QuestionItem {
8
- question: string;
9
- options: OptionItem[];
10
- multiSelect?: boolean;
11
- }
12
- interface SourceLoopInfo {
13
- loop_name: string;
14
- description: string;
15
- }
16
- export interface AskUserQuestionData {
17
- questions: QuestionItem[];
18
- source_loop?: SourceLoopInfo | null;
19
- }
1
+ import type { AskUserAnswerData, AskUserQuestionData } from "@blade-hq/agent-client";
2
+ export { parseAskUserQuestion } from "@blade-hq/agent-client";
3
+ export type { AskUserAnswerData, AskUserQuestionData };
20
4
  interface Props {
21
5
  data: AskUserQuestionData;
22
6
  answered: boolean;
@@ -26,7 +10,6 @@ interface Props {
26
10
  onAnswer?: (answer: string, toolCallId: string, answerData: AskUserAnswerData) => void;
27
11
  }
28
12
  export declare function AskUserQuestionBlock({ data, answered, toolCallId, sessionStatus, answerData, onAnswer, }: Props): import("react/jsx-runtime").JSX.Element;
29
- export declare function parseAskUserQuestion(toolResult: string | null | undefined): AskUserQuestionData | null;
30
13
  export interface AskUserQuestionError {
31
14
  message: string;
32
15
  detail: string | null;
@@ -0,0 +1,11 @@
1
+ import type { AskUserAnswerData, AskUserQuestionData } from "@blade-hq/agent-client";
2
+ export type { AskUserAnswerData, AskUserQuestionData };
3
+ interface Props {
4
+ data: AskUserQuestionData;
5
+ answered: boolean;
6
+ toolCallId: string;
7
+ sessionStatus: string;
8
+ answerData?: AskUserAnswerData | undefined;
9
+ onAnswer?: (answer: string, toolCallId: string, answerData: AskUserAnswerData) => void;
10
+ }
11
+ export declare function QuestionnaireQuestionBlock({ data, answered, toolCallId, sessionStatus, answerData, onAnswer }: Props): import("react/jsx-runtime").JSX.Element;
@@ -66,8 +66,8 @@ export interface InputDataState<T> {
66
66
  export interface ConnectorComputerSectionProps {
67
67
  sessionId: string | null;
68
68
  query: string;
69
- pendingSelection?: string[];
70
- onPendingSelectionChange?: (ids: string[]) => void;
69
+ excludedSelection?: string[];
70
+ onExcludedSelectionChange?: (ids: string[]) => void;
71
71
  /** 收起连接器面板(打开设置之类的动作前调用)。 */
72
72
  closePanel: () => void;
73
73
  }