@blade-hq/agent-react 2610.0.0-beta.7 → 2610.0.0-beta.71

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.
Files changed (64) hide show
  1. package/README.md +308 -8
  2. package/dist/chunk-G3PMV62Z.js +36 -0
  3. package/dist/{chunk-ZXXLY4RM.js → chunk-IA6J2NTB.js} +9 -32
  4. package/dist/{chunk-ZXXLY4RM.js.map → chunk-IA6J2NTB.js.map} +1 -1
  5. package/dist/components/AgentChat.d.ts +3 -0
  6. package/dist/components/AgentLoopBlock.d.ts +3 -5
  7. package/dist/components/AskUserQuestionBlock.d.ts +12 -1
  8. package/dist/components/AssistantTurnBlock.d.ts +26 -8
  9. package/dist/components/ChatInput.d.ts +21 -1
  10. package/dist/components/ChatSurface.d.ts +133 -2
  11. package/dist/components/ChatView.d.ts +1 -1
  12. package/dist/components/ConnectorPanel.d.ts +41 -0
  13. package/dist/components/ContextCard.d.ts +20 -0
  14. package/dist/components/MarkdownContent.d.ts +2 -0
  15. package/dist/components/McpAppCard.d.ts +14 -0
  16. package/dist/components/MessageList.d.ts +38 -4
  17. package/dist/components/PlanUpdateBlock.d.ts +32 -0
  18. package/dist/components/PluginConnectorList.d.ts +47 -0
  19. package/dist/components/PluginTriggerStack.d.ts +22 -0
  20. package/dist/components/PostChatFollowupBlock.d.ts +5 -1
  21. package/dist/components/SessionMemoryToggle.d.ts +19 -0
  22. package/dist/components/SessionPluginConfigDialog.d.ts +10 -0
  23. package/dist/components/SessionPluginConfigForm.d.ts +14 -0
  24. package/dist/components/SessionPluginIcon.d.ts +30 -0
  25. package/dist/components/SessionPluginSelector.d.ts +10 -0
  26. package/dist/components/SessionQueuePanel.d.ts +74 -0
  27. package/dist/components/ToolCallBlock.d.ts +9 -3
  28. package/dist/components/ToolUiCardView.d.ts +9 -0
  29. package/dist/components/TurnNavRail.d.ts +23 -0
  30. package/dist/components/UserMessageBubble.d.ts +7 -3
  31. package/dist/components/WhatIfUserBubble.d.ts +7 -0
  32. package/dist/components/connector-panel-types.d.ts +37 -0
  33. package/dist/components/display-utils.d.ts +10 -0
  34. package/dist/components/plugin-config-draft.d.ts +13 -0
  35. package/dist/components/plugin-config-schema.d.ts +6 -0
  36. package/dist/components/plugin-connector.d.ts +40 -0
  37. package/dist/components/queue-panel-adjacency.d.ts +1 -0
  38. package/dist/components/use-session-plugin-activation.d.ts +40 -0
  39. package/dist/context.d.ts +1 -0
  40. package/dist/embed/blade-chat-element.d.ts +4 -3
  41. package/dist/embed/entry.d.ts +48 -0
  42. package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js → highlighted-body-B3W2YXNL-YF4GVJGP.js} +3 -2
  43. package/dist/{highlighted-body-B3W2YXNL-YD7FAP6V.js.map → highlighted-body-B3W2YXNL-YF4GVJGP.js.map} +1 -1
  44. package/dist/hooks/use-agent-session.d.ts +5 -0
  45. package/dist/hooks/use-message-pin.d.ts +28 -0
  46. package/dist/hooks/use-turn-navigation.d.ts +117 -0
  47. package/dist/hooks/use-typewriter-reveal.d.ts +32 -0
  48. package/dist/index.d.ts +49 -1
  49. package/dist/index.js +45645 -1787
  50. package/dist/index.js.map +1 -1
  51. package/dist/lib/agent-computer-command.d.ts +34 -0
  52. package/dist/lib/random-id.d.ts +10 -0
  53. package/dist/lib/utils.d.ts +17 -2
  54. package/dist/lib/whatif-prompt.d.ts +18 -0
  55. package/dist/mermaid-3ZIDBTTL-QL4YGD6I.js +9 -0
  56. package/dist/mermaid-3ZIDBTTL-QL4YGD6I.js.map +1 -0
  57. package/dist/style.css +488 -402
  58. package/dist/style.full.css +499 -406
  59. package/dist/webapi-W3IB5DO4.js +2481 -0
  60. package/dist/webapi-W3IB5DO4.js.map +1 -0
  61. package/package.json +2 -2
  62. package/public-api.md +1657 -76
  63. package/dist/mermaid-3ZIDBTTL-N7YKJ3SM.js +0 -8
  64. /package/dist/{mermaid-3ZIDBTTL-N7YKJ3SM.js.map → chunk-G3PMV62Z.js.map} +0 -0
@@ -0,0 +1,34 @@
1
+ export declare function isAgentComputerCommand(command: string): boolean;
2
+ /** 工具调用的 JSON 参数里是不是一条 computer launch 命令。 */
3
+ export declare function isAgentComputerToolCall(argumentsJson: string | null | undefined): boolean;
4
+ export type AgentComputerLaunchOutcome = "pending" | "succeeded" | "failed" | "unknown";
5
+ /** `computer launch` 这条 Bash 工具调用最终是不是真的启动成功了——不能只看
6
+ * `isAgentComputerToolCall` 命中参数就当作成功:可执行文件缺失/不可执行、
7
+ * 启动后随即退出这些 appmirrord 侧的失败,Bash 工具调用本身仍然会走完
8
+ * `status: "done"`(Bash 工具的职责是"跑完这条命令",命令自己返回非零退出码
9
+ * 不算工具调用失败)。
10
+ *
11
+ * 唯一的判据是输出里有没有出现 `LAUNCH_SUCCESS_MARKER`——launch.go 的
12
+ * cmdLaunch 只要走到成功分支就一定会打印这行文本,不存在"成功了但没打印"
13
+ * 的路径。标记缺失就等价于没有走到那条成功路径,不再退回看 `result.exit_code`
14
+ * 当兜底:那样会给 `computer launch ... || echo failed` 这类复合命令开口子,
15
+ * 让真实失败的 launch 被误判成 succeeded。
16
+ *
17
+ * "pending":还没跑完(status 既不是终态失败也不是 done),调用方不该现在
18
+ * 就下结论,也不该把这次调用标记成"已处理"——等下一次状态更新再重新判断。
19
+ *
20
+ * "unknown":`status: "done"` 但 `result` 本身缺失(不是"有 result、没有标记",
21
+ * 是根本没有 result 这个字段)——历史会话被整理(compaction)之后,归档的
22
+ * 工具调用只保留 `arguments`/`status` 这类摘要字段,完整 `result` payload 不
23
+ * 会重新序列化进历史投影,这是已知且刻意的压缩形状,不是数据丢失异常。这种
24
+ * 情况下"没看到成功标记"不能说明"这次 launch 失败了",只能说明"证据被裁剪
25
+ * 了"——跟"result 确实回来了、里面就是没有这行文本"是两种不同性质的证据,
26
+ * 前者不能定性为 failed,接入方要按自己的场景(标签页展示可以偏宽松,自动
27
+ * 跳转/替用户做决定的场景应该偏保守)自己决定怎么用。
28
+ *
29
+ * 与 apps/web/src/agent/lib/agent-computer-command.ts 保持同名同签名——两边
30
+ * 内容目前完全一致,改一处记得同步另一处。 */
31
+ export declare function classifyAgentComputerLaunchOutcome(toolCall: {
32
+ status?: string;
33
+ result?: unknown;
34
+ }): AgentComputerLaunchOutcome;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 生成随机标识。
3
+ *
4
+ * `crypto.randomUUID` 只在安全上下文(HTTPS 或 localhost)可用:部署成
5
+ * `http://<host>:<port>` 时它是 undefined,直接调用会让调用方整个挂掉
6
+ * (MCP App 卡片就是这么坏的)。`crypto.getRandomValues` 不受这条限制,
7
+ * 这里用它拼出等价的 UUID v4,只有在完全没有 Web Crypto 的环境才退回
8
+ * 时间戳 + 随机数——那只是为了不抛异常,不保证全局唯一性。
9
+ */
10
+ export declare function randomId(): string;
@@ -1,5 +1,20 @@
1
1
  import { type ClassValue } from "clsx";
2
- /** 合并 className(SDK 内不引入 tailwind-merge,按序拼接即可)。 */
2
+ /**
3
+ * 合并 className:clsx 处理条件写法,twMerge 消掉互相冲突的 Tailwind 工具类。
4
+ *
5
+ * tailwind-merge 用 3.x:本包的样式由 Tailwind 4 编译,2.x 只认 3.x 的类名词表,
6
+ * v4 新增或改过语义的类(`outline-hidden`、`rounded-4xl`、`size-*`)它看不出冲突,
7
+ * 会两条都留下、再交给 CSS 输出顺序决定——那正是 cn 要消掉的东西。
8
+ *
9
+ * 只有 clsx 时,接入方传进来的 `p-0` 与组件内部的 `p-4` 会同时落在元素上,
10
+ * 谁生效取决于 CSS 输出顺序——SDK 自己编译的那份里 p-4 在前、宿主的那份里
11
+ * 又反过来,同一个类名组合在不同宿主里表现不一致。twMerge 按"后者胜"在
12
+ * 类名层就定下来,接入方的类于是稳定覆盖 SDK 默认样式。
13
+ *
14
+ * 因此 SDK 内所有 className 拼接都必须走 cn,且接入方的类放在最后一个参数。
15
+ */
3
16
  export declare function cn(...inputs: ClassValue[]): string;
4
- /** 复制文本到剪贴板,返回是否成功。 */
17
+ /** 复制文本到剪贴板,返回是否成功。
18
+ * 与 apps/web/src/lib/utils.ts 保持同名同签名和相同降级语义。
19
+ */
5
20
  export declare function copyToClipboard(text: string): Promise<boolean>;
@@ -0,0 +1,18 @@
1
+ /** 一条 canonical what-if 消息中的引用快照。 */
2
+ export interface WhatIfQuote {
3
+ stepNumber: number | null;
4
+ label: string;
5
+ snapshot: string;
6
+ }
7
+ export interface ParsedWhatIfPrompt {
8
+ fromStep: number | null;
9
+ quotes: WhatIfQuote[];
10
+ userText: string;
11
+ }
12
+ /**
13
+ * 解析 Server 历史与流式消息共用的 canonical what-if 文本。
14
+ *
15
+ * 无 `[用户输入]` 标签的历史消息仍按最后一条快照尾部的空行切分,保持内置
16
+ * Web 原有兼容行为。
17
+ */
18
+ export declare function parseWhatIfPrompt(text: string): ParsedWhatIfPrompt | null;
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import {
3
+ Nt
4
+ } from "./chunk-IA6J2NTB.js";
5
+ import "./chunk-G3PMV62Z.js";
6
+ export {
7
+ Nt as Mermaid
8
+ };
9
+ //# sourceMappingURL=mermaid-3ZIDBTTL-QL4YGD6I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}