@blade-hq/agent-kit 1.0.24 → 1.0.27

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 (272) hide show
  1. package/dist/{chunk-7F6UP5LP.js → chunk-34GDDOWY.js} +5 -208
  2. package/dist/chunk-34GDDOWY.js.map +1 -0
  3. package/dist/{chunk-2QYV43YP.js → chunk-C2FKVGJU.js} +2 -2
  4. package/dist/{chunk-TYM7KL2L.js → chunk-JU5SL4HP.js} +2 -2
  5. package/dist/chunk-M72OL7ZJ.js +23 -0
  6. package/dist/chunk-M72OL7ZJ.js.map +1 -0
  7. package/dist/{chunk-IMMRWXI7.js → chunk-SBASG3M2.js} +128 -98
  8. package/dist/chunk-SBASG3M2.js.map +1 -0
  9. package/dist/{chunk-BQKF6HJH.js → chunk-TE6G6NVX.js} +6 -6
  10. package/dist/{chunk-ICV7OTGX.js → chunk-X2NJKKXR.js} +10 -10
  11. package/dist/client/auth.d.ts +8 -0
  12. package/dist/client/blade-client.d.ts +80 -0
  13. package/dist/client/index.d.ts +22 -18769
  14. package/dist/client/index.js +1 -5
  15. package/dist/client/resources/api-keys.d.ts +28 -0
  16. package/dist/client/resources/auth.d.ts +26 -0
  17. package/dist/client/resources/env-buckets.d.ts +20 -0
  18. package/dist/client/resources/gis.d.ts +8 -0
  19. package/dist/client/resources/headless.d.ts +33 -0
  20. package/dist/client/resources/memories.d.ts +63 -0
  21. package/dist/client/resources/models.d.ts +23 -0
  22. package/dist/client/resources/published-apps.d.ts +8 -0
  23. package/dist/client/resources/registry.d.ts +58 -0
  24. package/dist/client/resources/runs.d.ts +8 -0
  25. package/dist/client/resources/scenarios.d.ts +49 -0
  26. package/dist/client/resources/sessions.d.ts +253 -0
  27. package/dist/client/resources/skills.d.ts +38 -0
  28. package/dist/client/resources/solutions.d.ts +31 -0
  29. package/dist/client/resources/user-preferences.d.ts +26 -0
  30. package/dist/client/rest.d.ts +19 -0
  31. package/dist/client/socket.d.ts +9 -0
  32. package/dist/client/types/index.d.ts +8 -0
  33. package/dist/client/types/rest.d.ts +15335 -0
  34. package/dist/client/types/sdk-profile.d.ts +47 -0
  35. package/dist/client/types/socket-events.d.ts +503 -0
  36. package/dist/react/api/api-keys.d.ts +6 -0
  37. package/dist/react/api/auth.d.ts +7 -0
  38. package/dist/react/api/client.d.ts +8 -0
  39. package/dist/react/api/env-buckets.d.ts +10 -0
  40. package/dist/react/api/gis-api.d.ts +4 -0
  41. package/dist/react/api/memories.d.ts +14 -0
  42. package/dist/react/api/models.d.ts +11 -0
  43. package/dist/react/api/partner-skill.d.ts +2 -0
  44. package/dist/react/api/prod-solution.d.ts +456 -0
  45. package/dist/react/api/published-apps.d.ts +21 -0
  46. package/dist/react/api/published-apps.js +14 -0
  47. package/dist/react/api/published-apps.js.map +1 -0
  48. package/dist/react/api/registry.d.ts +46 -0
  49. package/dist/react/api/scenarios.d.ts +9 -0
  50. package/dist/react/api/scheduled-tasks.d.ts +24 -0
  51. package/dist/react/api/session-skill.d.ts +2 -0
  52. package/dist/react/api/sessions.d.ts +109 -0
  53. package/dist/react/api/sessions.js +93 -0
  54. package/dist/react/api/sessions.js.map +1 -0
  55. package/dist/react/api/skills.d.ts +27 -0
  56. package/dist/react/api/socket.d.ts +5 -0
  57. package/dist/react/api/solutions.d.ts +11 -0
  58. package/dist/react/api/user-preferences.d.ts +8 -0
  59. package/dist/react/asr/VoiceWaveform.d.ts +10 -0
  60. package/dist/react/asr/use-tiptap-voice-input.d.ts +29 -0
  61. package/dist/react/asr/use-voice-input.d.ts +17 -0
  62. package/dist/react/asr/voice-input-support.d.ts +5 -0
  63. package/dist/react/bootstrap.d.ts +4 -0
  64. package/dist/react/cards/register.d.ts +1 -2
  65. package/dist/react/components/ai-elements/file-tree.d.ts +26 -0
  66. package/dist/react/components/ai-elements/reasoning.d.ts +32 -0
  67. package/dist/react/components/ai-elements/shimmer.d.ts +11 -0
  68. package/dist/react/components/card/CardCodeBlock.d.ts +5 -0
  69. package/dist/react/components/card/CardContext.d.ts +7 -0
  70. package/dist/react/components/card/CardRenderer.d.ts +7 -0
  71. package/dist/react/components/card/CardStates.d.ts +8 -0
  72. package/dist/react/components/card/cards/attraction-card.d.ts +2 -0
  73. package/dist/react/components/card/cards/cite-card.d.ts +10 -0
  74. package/dist/react/components/card/cards/comprehensive-analysis-card.d.ts +2 -0
  75. package/dist/react/components/card/cards/conflict-detection-card.d.ts +4 -0
  76. package/dist/react/components/card/cards/counter.d.ts +2 -0
  77. package/dist/react/components/card/cards/damage-effect-card.d.ts +4 -0
  78. package/dist/react/components/card/cards/destination-card.d.ts +2 -0
  79. package/dist/react/components/card/cards/diff-card.d.ts +2 -0
  80. package/dist/react/components/card/cards/execution-order-card.d.ts +2 -0
  81. package/dist/react/components/card/cards/experience-card-with-options.d.ts +4 -0
  82. package/dist/react/components/card/cards/flight-card.d.ts +2 -0
  83. package/dist/react/components/card/cards/hotel-card.d.ts +2 -0
  84. package/dist/react/components/card/cards/kill-chain-card.d.ts +2 -0
  85. package/dist/react/components/card/cards/kill-chain-types.d.ts +157 -0
  86. package/dist/react/components/card/cards/map-card.d.ts +2 -0
  87. package/dist/react/components/card/cards/order-status-card.d.ts +2 -0
  88. package/dist/react/components/card/cards/patch-card.d.ts +15 -0
  89. package/dist/react/components/card/cards/product-recommendation-card.d.ts +2 -0
  90. package/dist/react/components/card/cards/reflection-optimization-card.d.ts +2 -0
  91. package/dist/react/components/card/cards/resolution-modifications-card.d.ts +2 -0
  92. package/dist/react/components/card/cards/resolution-summary-card.d.ts +2 -0
  93. package/dist/react/components/card/cards/restaurant-card.d.ts +2 -0
  94. package/dist/react/components/card/cards/shopping-list-card.d.ts +2 -0
  95. package/dist/react/components/card/cards/simulation-event-card.d.ts +4 -0
  96. package/dist/react/components/card/cards/survival-effect-card.d.ts +4 -0
  97. package/dist/react/components/card/cards/travel-itinerary-card.d.ts +2 -0
  98. package/dist/react/components/card/register.d.ts +1 -0
  99. package/dist/react/components/chat/AgentLoopBlock.d.ts +8 -0
  100. package/dist/react/components/chat/AskUserQuestionBlock.d.ts +32 -0
  101. package/dist/react/components/chat/AssistantTurnBlock.d.ts +28 -0
  102. package/dist/react/components/chat/AttachmentPreviewDialog.d.ts +26 -0
  103. package/dist/react/components/chat/BackgroundTasksPill.d.ts +3 -0
  104. package/dist/react/components/chat/ChatInput.d.ts +94 -0
  105. package/dist/react/components/chat/ChatView.d.ts +16 -0
  106. package/dist/react/components/chat/CompactionCard.d.ts +6 -0
  107. package/dist/react/components/chat/ConnectionBanner.d.ts +1 -0
  108. package/dist/react/components/chat/FileCompletionMenu.d.ts +13 -0
  109. package/dist/react/components/chat/FileSizeLimitDialog.d.ts +9 -0
  110. package/dist/react/components/chat/ImageLightbox.d.ts +11 -0
  111. package/dist/react/components/chat/MessageActions.d.ts +6 -0
  112. package/dist/react/components/chat/MessageContextPills.d.ts +6 -0
  113. package/dist/react/components/chat/MessageFileAttachmentList.d.ts +13 -0
  114. package/dist/react/components/chat/MessageList.d.ts +13 -0
  115. package/dist/react/components/chat/ProgressCircle.d.ts +12 -0
  116. package/dist/react/components/chat/RenderErrorBoundary.d.ts +19 -0
  117. package/dist/react/components/chat/ResourceIframe.d.ts +5 -0
  118. package/dist/react/components/chat/Shimmer.d.ts +6 -0
  119. package/dist/react/components/chat/SkillCompletionMenu.d.ts +9 -0
  120. package/dist/react/components/chat/SkillStatusBar.d.ts +8 -0
  121. package/dist/react/components/chat/StickyStatusBar.d.ts +10 -0
  122. package/dist/react/components/chat/TextAttachmentPills.d.ts +10 -0
  123. package/dist/react/components/chat/ThinkingToggle.d.ts +7 -0
  124. package/dist/react/components/chat/ToolCallBlock.d.ts +18 -0
  125. package/dist/react/components/chat/TurnNavRail.d.ts +11 -0
  126. package/dist/react/components/chat/UserMessageBubble.d.ts +20 -0
  127. package/dist/react/components/chat/WhatIfUserBubble.d.ts +13 -0
  128. package/dist/react/components/chat/customization.d.ts +82 -0
  129. package/dist/react/components/chat/display-utils.d.ts +35 -0
  130. package/dist/react/components/chat/extensions/file-mention.d.ts +12 -0
  131. package/dist/react/components/chat/extensions/skill-mention.d.ts +25 -0
  132. package/dist/react/components/chat/index.d.ts +16 -115
  133. package/dist/react/components/chat/index.js +6 -6
  134. package/dist/react/components/chat/tool-renderers/BashRenderer.d.ts +2 -0
  135. package/dist/react/components/chat/tool-renderers/FileEditRenderer.d.ts +2 -0
  136. package/dist/react/components/chat/tool-renderers/FileReadRenderer.d.ts +2 -0
  137. package/dist/react/components/chat/tool-renderers/SearchRenderer.d.ts +2 -0
  138. package/dist/react/components/chat/tool-renderers/SubmitResultRenderer.d.ts +2 -0
  139. package/dist/react/components/chat/tool-renderers/registry.d.ts +9 -0
  140. package/dist/react/components/chat/tool-renderers/shared.d.ts +26 -0
  141. package/dist/react/components/chat/whatif-quote-context.d.ts +15 -0
  142. package/dist/react/components/markdown/ExternalLinkDialog.d.ts +8 -0
  143. package/dist/react/components/markdown/FileCardComponent.d.ts +10 -0
  144. package/dist/react/components/markdown/MarkdownContent.d.ts +19 -0
  145. package/dist/react/components/model/ModelSelector.d.ts +9 -0
  146. package/dist/react/components/plan/PlanSummaryCard.d.ts +8 -0
  147. package/dist/react/components/plan/PlanVisualization.d.ts +13 -0
  148. package/dist/react/components/plan/debug-log.d.ts +21 -0
  149. package/dist/react/components/plan/extract-plan-messages.d.ts +2 -0
  150. package/dist/react/components/plan/index.d.ts +6 -110
  151. package/dist/react/components/plan/index.js +4 -4
  152. package/dist/react/components/plan/parse-plan-messages.d.ts +10 -0
  153. package/dist/react/components/plan/parse-plan-tree.d.ts +16 -0
  154. package/dist/react/components/plan/phases/PlanMindMap.d.ts +8 -0
  155. package/dist/react/components/plan/phases/PlanStatusIcon.d.ts +5 -0
  156. package/dist/react/components/plan/phases/PlanTree.d.ts +8 -0
  157. package/dist/react/components/plan/phases/SkillAnalysis.d.ts +7 -0
  158. package/dist/react/components/plan/phases/SkillDiscovery.d.ts +10 -0
  159. package/dist/react/components/plan/types.d.ts +56 -0
  160. package/dist/react/components/session/SessionDetail.d.ts +8 -0
  161. package/dist/react/components/session/SessionList.d.ts +9 -0
  162. package/dist/react/components/session/SessionListItem.d.ts +8 -0
  163. package/dist/react/components/session/StatusBadge.d.ts +3 -0
  164. package/dist/react/components/session/index.d.ts +5 -53
  165. package/dist/react/components/session/index.js +3 -3
  166. package/dist/react/components/session/session-utils.d.ts +19 -0
  167. package/dist/react/components/ui/collapsible.d.ts +5 -0
  168. package/dist/react/components/workspace/FileTree.d.ts +21 -0
  169. package/dist/react/components/workspace/WorkspaceFilesPanel.d.ts +30 -0
  170. package/dist/react/components/workspace/file-icon-assets.d.ts +3 -0
  171. package/dist/react/components/workspace/index.d.ts +2 -59
  172. package/dist/react/components/workspace/index.js +3 -3
  173. package/dist/react/context.d.ts +2 -0
  174. package/dist/react/devtools/bridge-devtools/BridgeDevtoolsFab.d.ts +1 -0
  175. package/dist/react/devtools/bridge-devtools/index.d.ts +3 -36
  176. package/dist/react/devtools/bridge-devtools/mount.d.ts +1 -0
  177. package/dist/react/devtools/bridge-devtools/store.d.ts +15 -0
  178. package/dist/react/devtools/bridge-devtools/tap.d.ts +5 -0
  179. package/dist/react/devtools/bridge-devtools/types.d.ts +29 -0
  180. package/dist/react/hooks/use-background-tasks.d.ts +7 -0
  181. package/dist/react/hooks/use-card-state.d.ts +1 -0
  182. package/dist/react/hooks/use-chat.d.ts +13 -0
  183. package/dist/react/hooks/use-check-skill-file.d.ts +4 -0
  184. package/dist/react/hooks/use-check-solution-file.d.ts +4 -0
  185. package/dist/react/hooks/use-context-stats.d.ts +7 -0
  186. package/dist/react/hooks/use-gis.d.ts +17 -0
  187. package/dist/react/hooks/use-global-skill-stats.d.ts +6 -0
  188. package/dist/react/hooks/use-input-history.d.ts +7 -0
  189. package/dist/react/hooks/use-model-preferences.d.ts +17 -0
  190. package/dist/react/hooks/use-registry.d.ts +53 -0
  191. package/dist/react/hooks/use-resolved-model.d.ts +5 -0
  192. package/dist/react/hooks/use-session.d.ts +10 -0
  193. package/dist/react/hooks/use-skill-stats.d.ts +7 -0
  194. package/dist/react/hooks/use-skills.d.ts +6 -0
  195. package/dist/react/hooks/use-token-pressure.d.ts +6 -0
  196. package/dist/react/index.d.ts +121 -2111
  197. package/dist/react/index.js +41 -97
  198. package/dist/react/index.js.map +1 -1
  199. package/dist/react/lib/analytics.d.ts +7 -0
  200. package/dist/react/lib/attachment-upload.d.ts +10 -0
  201. package/dist/react/lib/card-registry.d.ts +35 -0
  202. package/dist/react/lib/chat.d.ts +48 -0
  203. package/dist/react/lib/code-highlight.d.ts +9 -0
  204. package/dist/react/lib/html-element-selection.d.ts +140 -0
  205. package/dist/react/lib/html-source-locator.d.ts +16 -0
  206. package/dist/react/lib/open-session-file.d.ts +2 -0
  207. package/dist/react/lib/parent-bridge.d.ts +22 -0
  208. package/dist/react/lib/preview-dispatch.d.ts +24 -0
  209. package/dist/react/lib/resource-bridge.d.ts +11 -0
  210. package/dist/react/lib/session-file-preview.d.ts +8 -0
  211. package/dist/react/lib/step-ranges.d.ts +42 -0
  212. package/dist/react/lib/tool-preview.d.ts +2 -0
  213. package/dist/react/lib/ui-meta.d.ts +9 -0
  214. package/dist/react/lib/utils.d.ts +3 -0
  215. package/dist/react/lib/whatif-prompt.d.ts +45 -0
  216. package/dist/react/projection/builder.d.ts +59 -0
  217. package/dist/react/projection/helpers.d.ts +34 -0
  218. package/dist/react/projection/index.d.ts +2 -0
  219. package/dist/react/projection/state.d.ts +22 -0
  220. package/dist/react/provider.d.ts +8 -0
  221. package/dist/react/routes.d.ts +1 -0
  222. package/dist/react/schemas/background.d.ts +16 -0
  223. package/dist/react/schemas/event.d.ts +51 -0
  224. package/dist/react/schemas/gis.d.ts +50 -0
  225. package/dist/{AskUserQuestionBlock---kOTouk.d.ts → react/schemas/message.d.ts} +15 -48
  226. package/dist/react/schemas/partner-skill.d.ts +46 -0
  227. package/dist/{projection-BWYEFYNn.d.ts → react/schemas/projection.d.ts} +12 -10
  228. package/dist/react/schemas/published-apps.d.ts +38 -0
  229. package/dist/react/schemas/scheduled-task.d.ts +32 -0
  230. package/dist/react/schemas/session.d.ts +121 -0
  231. package/dist/react/schemas/skill.d.ts +50 -0
  232. package/dist/react/schemas/studio/agent.d.ts +12 -0
  233. package/dist/react/schemas/studio/database.d.ts +39 -0
  234. package/dist/react/schemas/studio/env.d.ts +7 -0
  235. package/dist/react/schemas/studio/knowledge.d.ts +18 -0
  236. package/dist/react/schemas/studio/resource-base.d.ts +7 -0
  237. package/dist/react/schemas/studio/scene.d.ts +12 -0
  238. package/dist/react/schemas/studio/tool.d.ts +25 -0
  239. package/dist/react/schemas/task.d.ts +12 -0
  240. package/dist/react/sockets/event-bridge.d.ts +115 -0
  241. package/dist/react/sockets/socket-state.d.ts +4 -0
  242. package/dist/react/stores/answer-callback-store.d.ts +9 -0
  243. package/dist/react/stores/auth-store.d.ts +38 -0
  244. package/dist/react/stores/background-store.d.ts +13 -0
  245. package/dist/react/stores/card-state-store.d.ts +10 -0
  246. package/dist/react/stores/chat-store.d.ts +34 -0
  247. package/dist/react/stores/client-aware.d.ts +7 -0
  248. package/dist/react/stores/connection-store.d.ts +14 -0
  249. package/dist/react/stores/gis-store.d.ts +19 -0
  250. package/dist/react/stores/index.d.ts +14 -0
  251. package/dist/react/stores/runtime-features-store.d.ts +21 -0
  252. package/dist/react/stores/runtime-store.d.ts +18 -0
  253. package/dist/react/stores/session-store.d.ts +44 -0
  254. package/dist/react/stores/task-store.d.ts +9 -0
  255. package/dist/react/stores/ui-bridge-store.d.ts +32 -0
  256. package/dist/react/stores/ui-store.d.ts +69 -0
  257. package/dist/react/types/index.d.ts +7 -0
  258. package/dist/react/types/solution.d.ts +101 -0
  259. package/package.json +41 -12
  260. package/dist/SkillStatusBar-DluiBsVj.d.ts +0 -340
  261. package/dist/blade-client-CseN7OW9.d.ts +0 -1867
  262. package/dist/chunk-7F6UP5LP.js.map +0 -1
  263. package/dist/chunk-IMMRWXI7.js.map +0 -1
  264. package/dist/react/api/vibe-coding.d.ts +0 -55
  265. package/dist/react/api/vibe-coding.js +0 -47
  266. package/dist/react/api/vibe-coding.js.map +0 -1
  267. package/dist/session-CT8Y2KHr.d.ts +0 -227
  268. package/dist/sessions-DI9DVun7.d.ts +0 -177
  269. /package/dist/{chunk-2QYV43YP.js.map → chunk-C2FKVGJU.js.map} +0 -0
  270. /package/dist/{chunk-TYM7KL2L.js.map → chunk-JU5SL4HP.js.map} +0 -0
  271. /package/dist/{chunk-BQKF6HJH.js.map → chunk-TE6G6NVX.js.map} +0 -0
  272. /package/dist/{chunk-ICV7OTGX.js.map → chunk-X2NJKKXR.js.map} +0 -0
@@ -1,110 +1,6 @@
1
- import { C as ChatMessage, A as AskUserAnswerData } from '../../../AskUserQuestionBlock---kOTouk.js';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import '../../../projection-BWYEFYNn.js';
4
-
5
- /**
6
- * Debug logger for Plan timeline events.
7
- * Stores events in memory with timestamps for debugging animation timing
8
- * in real conversation environments.
9
- *
10
- * Events are stored in window.__planTimelineLog and can be exported as JSON.
11
- */
12
- interface PlanTimelineEvent {
13
- /** ISO timestamp */
14
- ts: string;
15
- /** Milliseconds since first event in this session */
16
- elapsed: number;
17
- /** Event type */
18
- event: string;
19
- /** Additional data */
20
- data?: Record<string, unknown>;
21
- }
22
- declare function exportPlanLog(): PlanTimelineEvent[];
23
- declare function downloadPlanLog(): void;
24
-
25
- declare function extractLatestPlanMessages(messages: ChatMessage[]): ChatMessage[];
26
-
27
- interface Props$1 {
28
- messages: ChatMessage[];
29
- sessionStatus?: string;
30
- onConfirmPlan?: (action: "execute" | "revise", text?: string) => void;
31
- }
32
- declare function PlanSummaryCard({ messages, sessionStatus, onConfirmPlan, }: Props$1): react_jsx_runtime.JSX.Element;
33
-
34
- interface SkillInfo {
35
- skillId: string;
36
- displayName?: string;
37
- description: string;
38
- content?: string;
39
- references?: string[];
40
- }
41
- interface SkillCatalogItem {
42
- skillId: string;
43
- displayName?: string;
44
- }
45
- interface PlanNode {
46
- id: string;
47
- label: string;
48
- skillRef: string | null;
49
- children: PlanNode[];
50
- depth: number;
51
- status: "pending" | "running" | "done" | "failed";
52
- }
53
- type Phase = "discovering" | "analyzing" | "generating";
54
- interface PlanData {
55
- intent: string;
56
- /** All skills returned by search_skills (candidates) */
57
- searchResults: SkillInfo[];
58
- /** Skills selected via get_skill_content (subset of searchResults, with content populated) */
59
- selectedSkills: SkillInfo[];
60
- plan: {
61
- root: PlanNode;
62
- notes: string[];
63
- } | null;
64
- /** Raw plan YAML content (non-empty even if parsePlanTree yields no plan) */
65
- hasPlanContent: boolean;
66
- /** PLAN.yaml exists but failed to parse/validate for UI rendering */
67
- parseError: string | null;
68
- /** AskUserQuestion tool calls found in planning messages */
69
- askQuestions: Array<{
70
- toolCallId: string;
71
- data: {
72
- questions: Array<{
73
- question: string;
74
- options: Array<{
75
- label: string;
76
- description: string;
77
- }>;
78
- multiSelect?: boolean;
79
- }>;
80
- };
81
- }>;
82
- /** File paths from Read tool calls (with status) */
83
- readFiles: Array<{
84
- path: string;
85
- status: "pending" | "done" | "error" | "cancelled" | "awaiting_answer";
86
- }>;
87
- /** The last pause-triggering tool in this phase: determines what UI to show */
88
- lastPauseTool: "AskUserQuestion" | "ExitPlanMode" | null;
89
- }
90
-
91
- interface Props {
92
- messages: ChatMessage[];
93
- /** All skill names from the registry, used as word cloud background in Phase 1 */
94
- allSkillNames?: SkillCatalogItem[];
95
- onAnswer?: (answer: string, toolCallId: string, answerData: AskUserAnswerData) => void;
96
- sessionStatus?: string;
97
- isStreaming?: boolean;
98
- }
99
- declare function PlanVisualization({ messages: rawMessages, allSkillNames: rawAllSkillNames, onAnswer, sessionStatus, isStreaming, }: Props): react_jsx_runtime.JSX.Element;
100
-
101
- /**
102
- * Extract structured plan data from planning phase messages.
103
- *
104
- * Expects messages between planning-mode mode_change markers containing:
105
- * - ReadSkill tool calls (技能调研:成功结果 = 选定技能,歧义 candidates = 候选列表)
106
- * - Write tool call to PLAN.yaml with plan YAML
107
- */
108
- declare function parsePlanMessages(allMessages: ChatMessage[]): PlanData;
109
-
110
- export { type Phase, type PlanData, type PlanNode, PlanSummaryCard, PlanVisualization, type SkillCatalogItem, type SkillInfo, downloadPlanLog, exportPlanLog, extractLatestPlanMessages, parsePlanMessages };
1
+ export { downloadPlanLog, exportPlanLog } from "./debug-log.js";
2
+ export { extractLatestPlanMessages } from "./extract-plan-messages.js";
3
+ export { PlanSummaryCard } from "./PlanSummaryCard.js";
4
+ export { PlanVisualization } from "./PlanVisualization.js";
5
+ export { parsePlanMessages } from "./parse-plan-messages.js";
6
+ export type { Phase, PlanData, PlanNode, SkillCatalogItem, SkillInfo } from "./types.js";
@@ -3,12 +3,12 @@ import {
3
3
  PlanSummaryCard,
4
4
  extractLatestPlanMessages,
5
5
  parsePlanMessages
6
- } from "../../../chunk-BQKF6HJH.js";
6
+ } from "../../../chunk-TE6G6NVX.js";
7
+ import "../../../chunk-C2FKVGJU.js";
7
8
  import "../../../chunk-2UP7MG3J.js";
8
- import "../../../chunk-2QYV43YP.js";
9
- import "../../../chunk-IMMRWXI7.js";
9
+ import "../../../chunk-SBASG3M2.js";
10
10
  import "../../../chunk-J3XVFPOV.js";
11
- import "../../../chunk-7F6UP5LP.js";
11
+ import "../../../chunk-34GDDOWY.js";
12
12
  import {
13
13
  cn
14
14
  } from "../../../chunk-7LEKQI47.js";
@@ -0,0 +1,10 @@
1
+ import type { ChatMessage } from "../../schemas/message.js";
2
+ import type { PlanData } from "./types.js";
3
+ /**
4
+ * Extract structured plan data from planning phase messages.
5
+ *
6
+ * Expects messages between planning-mode mode_change markers containing:
7
+ * - ReadSkill tool calls (技能调研:成功结果 = 选定技能,歧义 candidates = 候选列表)
8
+ * - Write tool call to PLAN.yaml with plan YAML
9
+ */
10
+ export declare function parsePlanMessages(allMessages: ChatMessage[]): PlanData;
@@ -0,0 +1,16 @@
1
+ import type { PlanNode } from "./types.js";
2
+ interface ParsedPlanResult {
3
+ plan: {
4
+ root: PlanNode;
5
+ notes: string[];
6
+ } | null;
7
+ error: string | null;
8
+ }
9
+ export type PlanStatusMap = Record<string, PlanNode["status"]>;
10
+ export declare function parsePlanTree(content: string): {
11
+ root: PlanNode;
12
+ notes: string[];
13
+ } | null;
14
+ export declare function applyPlanStatusesById(root: PlanNode, statuses: PlanStatusMap): PlanNode;
15
+ export declare function parsePlanTreeResult(content: string): ParsedPlanResult;
16
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { PlanNode } from "../types.js";
2
+ interface Props {
3
+ root: PlanNode;
4
+ expandedIds: Set<string>;
5
+ onToggle: (id: string) => void;
6
+ }
7
+ export declare function PlanMindMap({ root, expandedIds, onToggle }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { PlanNode } from "../types.js";
2
+ export declare function PlanStatusIcon({ status, size, }: {
3
+ status: PlanNode["status"];
4
+ size?: number;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { PlanNode } from "../types.js";
2
+ interface Props {
3
+ root: PlanNode;
4
+ notes: string[];
5
+ active: boolean;
6
+ }
7
+ export declare function PlanTree({ root, notes, active }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { SkillInfo } from "../types.js";
2
+ interface Props {
3
+ skills: SkillInfo[];
4
+ active: boolean;
5
+ }
6
+ export declare function SkillAnalysis({ skills: rawSkills, active }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { SkillCatalogItem, SkillInfo } from "../types.js";
2
+ interface Props {
3
+ intent: string;
4
+ searchResults: SkillInfo[];
5
+ selectedSkills: SkillInfo[];
6
+ allSkillNames: SkillCatalogItem[];
7
+ active: boolean;
8
+ }
9
+ export declare function SkillDiscovery({ intent, searchResults: rawSearchResults, selectedSkills: rawSelectedSkills, allSkillNames: rawAllSkillNames, active, }: Props): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,56 @@
1
+ export interface SkillInfo {
2
+ skillId: string;
3
+ displayName?: string;
4
+ description: string;
5
+ content?: string;
6
+ references?: string[];
7
+ }
8
+ export interface SkillCatalogItem {
9
+ skillId: string;
10
+ displayName?: string;
11
+ }
12
+ export interface PlanNode {
13
+ id: string;
14
+ label: string;
15
+ skillRef: string | null;
16
+ children: PlanNode[];
17
+ depth: number;
18
+ status: "pending" | "running" | "done" | "failed";
19
+ }
20
+ export type Phase = "discovering" | "analyzing" | "generating";
21
+ export interface PlanData {
22
+ intent: string;
23
+ /** All skills returned by search_skills (candidates) */
24
+ searchResults: SkillInfo[];
25
+ /** Skills selected via get_skill_content (subset of searchResults, with content populated) */
26
+ selectedSkills: SkillInfo[];
27
+ plan: {
28
+ root: PlanNode;
29
+ notes: string[];
30
+ } | null;
31
+ /** Raw plan YAML content (non-empty even if parsePlanTree yields no plan) */
32
+ hasPlanContent: boolean;
33
+ /** PLAN.yaml exists but failed to parse/validate for UI rendering */
34
+ parseError: string | null;
35
+ /** AskUserQuestion tool calls found in planning messages */
36
+ askQuestions: Array<{
37
+ toolCallId: string;
38
+ data: {
39
+ questions: Array<{
40
+ question: string;
41
+ options: Array<{
42
+ label: string;
43
+ description: string;
44
+ }>;
45
+ multiSelect?: boolean;
46
+ }>;
47
+ };
48
+ }>;
49
+ /** File paths from Read tool calls (with status) */
50
+ readFiles: Array<{
51
+ path: string;
52
+ status: "pending" | "done" | "error" | "cancelled" | "awaiting_answer";
53
+ }>;
54
+ /** The last pause-triggering tool in this phase: determines what UI to show */
55
+ lastPauseTool: "AskUserQuestion" | "ExitPlanMode" | null;
56
+ }
@@ -0,0 +1,8 @@
1
+ import type { SessionInfo } from "../../schemas/session.js";
2
+ export declare function SessionDetailTrigger({ onClick, showReplayDot, }: {
3
+ onClick: () => void;
4
+ showReplayDot?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export declare function SessionDetail({ session }: {
7
+ session: SessionInfo;
8
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,9 @@
1
+ import type { SessionInfo } from "../../schemas/session.js";
2
+ export interface SessionListProps {
3
+ sessions: SessionInfo[];
4
+ /** Called after a new session is created; defaults to no-op. */
5
+ onSessionCreated?: (sessionId: string) => void;
6
+ /** Called when user selects a session. */
7
+ onSessionSelect: (sessionId: string) => void;
8
+ }
9
+ export declare function SessionList({ sessions, onSessionCreated, onSessionSelect }: SessionListProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { SessionInfo } from "../../schemas/session.js";
2
+ interface Props {
3
+ session: SessionInfo;
4
+ active: boolean;
5
+ onClick: () => void;
6
+ }
7
+ export declare function SessionListItem({ session, active, onClick }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare function StatusBadge({ status }: {
2
+ status: string;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,53 +1,5 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { a as SessionInfo } from '../../../session-CT8Y2KHr.js';
3
- import 'arktype/internal/variants/object.ts';
4
- import 'arktype/internal/variants/string.ts';
5
-
6
- declare function SessionDetailTrigger({ onClick, showReplayDot, }: {
7
- onClick: () => void;
8
- showReplayDot?: boolean;
9
- }): react_jsx_runtime.JSX.Element;
10
- declare function SessionDetail({ session }: {
11
- session: SessionInfo;
12
- }): react_jsx_runtime.JSX.Element | null;
13
-
14
- interface SessionListProps {
15
- sessions: SessionInfo[];
16
- /** Called after a new session is created; defaults to no-op. */
17
- onSessionCreated?: (sessionId: string) => void;
18
- /** Called when user selects a session. */
19
- onSessionSelect: (sessionId: string) => void;
20
- }
21
- declare function SessionList({ sessions, onSessionCreated, onSessionSelect }: SessionListProps): react_jsx_runtime.JSX.Element;
22
-
23
- interface Props {
24
- session: SessionInfo;
25
- active: boolean;
26
- onClick: () => void;
27
- }
28
- declare function SessionListItem({ session, active, onClick }: Props): react_jsx_runtime.JSX.Element;
29
-
30
- declare function StatusBadge({ status }: {
31
- status: string;
32
- }): react_jsx_runtime.JSX.Element;
33
-
34
- type SessionGroupKey = "today" | "yesterday" | "week" | "older";
35
- declare const SESSION_GROUPS: SessionGroupKey[];
36
- declare const SESSION_GROUP_LABELS: Record<SessionGroupKey, string>;
37
- declare const RELATIVE_TIME_FORMATTER: Intl.RelativeTimeFormat;
38
- declare function getSessionTimestamp(session: SessionInfo): number;
39
- declare function getSessionLabel(session: SessionInfo, fallback?: string): string;
40
- declare function shouldShowSessionInHistory(session: SessionInfo): boolean;
41
- declare function isReplaySession(session: SessionInfo): boolean;
42
- declare function getDisplaySessionStatus(session: SessionInfo): SessionInfo["status"];
43
- declare function startOfDay(date: Date): Date;
44
- declare function startOfWeek(date: Date): Date;
45
- declare function getSessionGroup(timestamp: number, now?: Date): SessionGroupKey;
46
- declare function formatRelativeTime(timestamp: number, now?: number): string;
47
- declare function getStatusMeta(status: SessionInfo["status"]): {
48
- dotClass: string;
49
- toneClass: string;
50
- label: string;
51
- };
52
-
53
- export { RELATIVE_TIME_FORMATTER, SESSION_GROUPS, SESSION_GROUP_LABELS, SessionDetail, SessionDetailTrigger, type SessionGroupKey, SessionList, SessionListItem, type SessionListProps, StatusBadge, formatRelativeTime, getDisplaySessionStatus, getSessionGroup, getSessionLabel, getSessionTimestamp, getStatusMeta, isReplaySession, shouldShowSessionInHistory, startOfDay, startOfWeek };
1
+ export { SessionDetail, SessionDetailTrigger } from "./SessionDetail.js";
2
+ export { SessionList, type SessionListProps } from "./SessionList.js";
3
+ export { SessionListItem } from "./SessionListItem.js";
4
+ export { StatusBadge } from "./StatusBadge.js";
5
+ export * from "./session-utils.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  useSession
3
- } from "../../../chunk-TYM7KL2L.js";
3
+ } from "../../../chunk-JU5SL4HP.js";
4
4
  import {
5
5
  checkoutSession,
6
6
  getSessionCheckpoints,
7
7
  useChatStore,
8
8
  useSessionStore
9
- } from "../../../chunk-IMMRWXI7.js";
9
+ } from "../../../chunk-SBASG3M2.js";
10
10
  import "../../../chunk-J3XVFPOV.js";
11
- import "../../../chunk-7F6UP5LP.js";
11
+ import "../../../chunk-34GDDOWY.js";
12
12
  import {
13
13
  cn
14
14
  } from "../../../chunk-7LEKQI47.js";
@@ -0,0 +1,19 @@
1
+ import type { SessionInfo } from "../../schemas/session.js";
2
+ export type SessionGroupKey = "today" | "yesterday" | "week" | "older";
3
+ export declare const SESSION_GROUPS: SessionGroupKey[];
4
+ export declare const SESSION_GROUP_LABELS: Record<SessionGroupKey, string>;
5
+ export declare const RELATIVE_TIME_FORMATTER: Intl.RelativeTimeFormat;
6
+ export declare function getSessionTimestamp(session: SessionInfo): number;
7
+ export declare function getSessionLabel(session: SessionInfo, fallback?: string): string;
8
+ export declare function shouldShowSessionInHistory(session: SessionInfo): boolean;
9
+ export declare function isReplaySession(session: SessionInfo): boolean;
10
+ export declare function getDisplaySessionStatus(session: SessionInfo): SessionInfo["status"];
11
+ export declare function startOfDay(date: Date): Date;
12
+ export declare function startOfWeek(date: Date): Date;
13
+ export declare function getSessionGroup(timestamp: number, now?: Date): SessionGroupKey;
14
+ export declare function formatRelativeTime(timestamp: number, now?: number): string;
15
+ export declare function getStatusMeta(status: SessionInfo["status"]): {
16
+ dotClass: string;
17
+ toneClass: string;
18
+ label: string;
19
+ };
@@ -0,0 +1,5 @@
1
+ import { Collapsible as CollapsiblePrimitive } from "radix-ui";
2
+ declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): import("react/jsx-runtime").JSX.Element;
4
+ declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): import("react/jsx-runtime").JSX.Element;
5
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -0,0 +1,21 @@
1
+ import * as sessionsApi from "../../api/sessions.js";
2
+ import "./file-icon-assets.js";
3
+ type FileEntry = Awaited<ReturnType<typeof sessionsApi.listDir>>[number];
4
+ type ListDirFn = (sessionId: string, dirPath: string) => Promise<FileEntry[]>;
5
+ interface FileTreeProps {
6
+ sessionId: string | null;
7
+ checkActiveSession?: boolean;
8
+ enableEditor?: boolean;
9
+ expandedDirs?: Set<string>;
10
+ defaultExpandedDirs?: Set<string>;
11
+ onExpandedDirsChange?: (dirs: Set<string>) => void;
12
+ rootPath?: string;
13
+ readOnly?: boolean;
14
+ onShareFile?: (path: string, name: string) => Promise<void>;
15
+ allowDelete?: boolean;
16
+ onOpenFile?: (path: string, name: string) => Promise<void>;
17
+ listDir?: ListDirFn;
18
+ queryKeyScope?: readonly unknown[];
19
+ }
20
+ export declare function FileTree({ sessionId, checkActiveSession, enableEditor, expandedDirs: controlledExpandedDirs, defaultExpandedDirs, onExpandedDirsChange, rootPath, readOnly, onShareFile, allowDelete, onOpenFile, listDir, queryKeyScope, }: FileTreeProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
@@ -0,0 +1,30 @@
1
+ import { type ReactNode } from "react";
2
+ interface WorkspaceFileEntry {
3
+ name: string;
4
+ path: string;
5
+ is_dir: boolean;
6
+ created_at: number;
7
+ tags?: string[];
8
+ }
9
+ interface WorkspaceFilesPanelProps {
10
+ sessionId: string | null;
11
+ enableEditor?: boolean;
12
+ className?: string;
13
+ treeContainerClassName?: string;
14
+ title?: string;
15
+ rootPath?: string;
16
+ readOnly?: boolean;
17
+ expandedDirs?: Set<string>;
18
+ onExpandedDirsChange?: (dirs: Set<string>) => void;
19
+ onShareFile?: (path: string, name: string) => Promise<void>;
20
+ onSync?: () => Promise<void>;
21
+ allowDelete?: boolean;
22
+ /** Optional slot above the file tree (e.g. phase progress in host app). */
23
+ topSlot?: ReactNode;
24
+ /** Custom file open handler; used when enableEditor is false if provided. */
25
+ onOpenFile?: (path: string, name: string) => Promise<void>;
26
+ listDir?: (sessionId: string, dirPath: string) => Promise<WorkspaceFileEntry[]>;
27
+ queryKeyScope?: readonly unknown[];
28
+ }
29
+ export declare function WorkspaceFilesPanel({ sessionId, enableEditor, className, treeContainerClassName, title, rootPath, readOnly, expandedDirs: controlledExpandedDirs, onExpandedDirsChange, onShareFile, onSync, allowDelete, topSlot, onOpenFile, listDir, queryKeyScope, }: WorkspaceFilesPanelProps): import("react/jsx-runtime").JSX.Element;
30
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare const FILE_ICON_ASSETS: Record<string, string>;
2
+ export declare const FOLDER_ICON_ASSET: string;
3
+ export declare const GENERIC_FILE_ICON_ASSET: string;
@@ -1,59 +1,2 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
3
- import { l as listDir } from '../../../sessions-DI9DVun7.js';
4
- import '../../../blade-client-CseN7OW9.js';
5
- import 'arktype/internal/variants/object.ts';
6
- import 'arktype/internal/variants/string.ts';
7
- import '../../../projection-BWYEFYNn.js';
8
- import '../../../session-CT8Y2KHr.js';
9
- import 'socket.io-client';
10
-
11
- interface WorkspaceFileEntry {
12
- name: string;
13
- path: string;
14
- is_dir: boolean;
15
- created_at: number;
16
- tags?: string[];
17
- }
18
- interface WorkspaceFilesPanelProps {
19
- sessionId: string | null;
20
- enableEditor?: boolean;
21
- className?: string;
22
- treeContainerClassName?: string;
23
- title?: string;
24
- rootPath?: string;
25
- readOnly?: boolean;
26
- expandedDirs?: Set<string>;
27
- onExpandedDirsChange?: (dirs: Set<string>) => void;
28
- onShareFile?: (path: string, name: string) => Promise<void>;
29
- onSync?: () => Promise<void>;
30
- allowDelete?: boolean;
31
- /** Optional slot above the file tree (e.g. phase progress in host app). */
32
- topSlot?: ReactNode;
33
- /** Custom file open handler; used when enableEditor is false if provided. */
34
- onOpenFile?: (path: string, name: string) => Promise<void>;
35
- listDir?: (sessionId: string, dirPath: string) => Promise<WorkspaceFileEntry[]>;
36
- queryKeyScope?: readonly unknown[];
37
- }
38
- declare function WorkspaceFilesPanel({ sessionId, enableEditor, className, treeContainerClassName, title, rootPath, readOnly, expandedDirs: controlledExpandedDirs, onExpandedDirsChange, onShareFile, onSync, allowDelete, topSlot, onOpenFile, listDir, queryKeyScope, }: WorkspaceFilesPanelProps): react_jsx_runtime.JSX.Element;
39
-
40
- type FileEntry = Awaited<ReturnType<typeof listDir>>[number];
41
- type ListDirFn = (sessionId: string, dirPath: string) => Promise<FileEntry[]>;
42
- interface FileTreeProps {
43
- sessionId: string | null;
44
- checkActiveSession?: boolean;
45
- enableEditor?: boolean;
46
- expandedDirs?: Set<string>;
47
- defaultExpandedDirs?: Set<string>;
48
- onExpandedDirsChange?: (dirs: Set<string>) => void;
49
- rootPath?: string;
50
- readOnly?: boolean;
51
- onShareFile?: (path: string, name: string) => Promise<void>;
52
- allowDelete?: boolean;
53
- onOpenFile?: (path: string, name: string) => Promise<void>;
54
- listDir?: ListDirFn;
55
- queryKeyScope?: readonly unknown[];
56
- }
57
- declare function FileTree({ sessionId, checkActiveSession, enableEditor, expandedDirs: controlledExpandedDirs, defaultExpandedDirs, onExpandedDirsChange, rootPath, readOnly, onShareFile, allowDelete, onOpenFile, listDir, queryKeyScope, }: FileTreeProps): react_jsx_runtime.JSX.Element;
58
-
59
- export { FileTree, WorkspaceFilesPanel };
1
+ export { WorkspaceFilesPanel } from "./WorkspaceFilesPanel.js";
2
+ export { FileTree } from "./FileTree.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "../../../chunk-H62LH2AG.js";
6
6
  import {
7
7
  resolveSessionFilePreviewTarget
8
- } from "../../../chunk-2QYV43YP.js";
8
+ } from "../../../chunk-C2FKVGJU.js";
9
9
  import {
10
10
  apiFetchText,
11
11
  copyFile,
@@ -19,9 +19,9 @@ import {
19
19
  useChatStore,
20
20
  useSessionStore,
21
21
  useUiStore
22
- } from "../../../chunk-IMMRWXI7.js";
22
+ } from "../../../chunk-SBASG3M2.js";
23
23
  import "../../../chunk-J3XVFPOV.js";
24
- import "../../../chunk-7F6UP5LP.js";
24
+ import "../../../chunk-34GDDOWY.js";
25
25
  import {
26
26
  cn
27
27
  } from "../../../chunk-7LEKQI47.js";
@@ -0,0 +1,2 @@
1
+ import type { BladeClient } from "../client/index.js";
2
+ export declare const BladeContext: import("react").Context<BladeClient | null>;
@@ -0,0 +1 @@
1
+ export declare function BridgeDevtoolsFab(): import("react/jsx-runtime").JSX.Element;
@@ -1,36 +1,3 @@
1
- declare function mountBridgeDevtools(): void;
2
-
3
- type BridgeEventSide = "agent" | "host";
4
- type BridgeEventDirection = "host-to-agent" | "agent-to-host" | "host-to-iframe" | "iframe-to-host";
5
- interface BridgeEventInput {
6
- side: BridgeEventSide;
7
- direction: BridgeEventDirection;
8
- action: string;
9
- payload?: unknown;
10
- meta?: Record<string, unknown>;
11
- iframeKey?: string;
12
- iframeLabel?: string;
13
- note?: string;
14
- rejected?: boolean;
15
- }
16
- interface BridgeEventRecord extends BridgeEventInput {
17
- id: string;
18
- ts: number;
19
- }
20
- interface RegisteredIframeEntry {
21
- key: string;
22
- label: string;
23
- getContentWindow: () => Window | null;
24
- }
25
- interface BridgeDevtoolsHook {
26
- record: (event: BridgeEventInput) => void;
27
- registerIframe: (entry: RegisteredIframeEntry) => () => void;
28
- }
29
- declare global {
30
- var __bladeBridgeDevtools: BridgeDevtoolsHook | undefined;
31
- }
32
-
33
- declare function tapBridgeEvent(event: BridgeEventInput): void;
34
- declare function registerBridgeIframe(entry: RegisteredIframeEntry): () => void;
35
-
36
- export { type BridgeEventDirection, type BridgeEventInput, type BridgeEventRecord, type BridgeEventSide, mountBridgeDevtools, registerBridgeIframe, tapBridgeEvent };
1
+ export { mountBridgeDevtools } from "./mount.js";
2
+ export { tapBridgeEvent, registerBridgeIframe } from "./tap.js";
3
+ export type { BridgeEventInput, BridgeEventRecord, BridgeEventSide, BridgeEventDirection, } from "./types.js";
@@ -0,0 +1 @@
1
+ export declare function mountBridgeDevtools(): void;
@@ -0,0 +1,15 @@
1
+ import type { BridgeEventInput, BridgeEventRecord } from "./types.js";
2
+ export interface RegisteredIframe {
3
+ key: string;
4
+ label: string;
5
+ getContentWindow: () => Window | null;
6
+ }
7
+ interface BridgeDevtoolsState {
8
+ events: BridgeEventRecord[];
9
+ iframes: Record<string, RegisteredIframe>;
10
+ record: (event: BridgeEventInput) => void;
11
+ clear: () => void;
12
+ registerIframe: (entry: RegisteredIframe) => () => void;
13
+ }
14
+ export declare const useBridgeDevtoolsStore: import("zustand").UseBoundStore<import("zustand").StoreApi<BridgeDevtoolsState>>;
15
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { BridgeEventInput, RegisteredIframeEntry } from "./types.js";
2
+ export declare function tapBridgeEvent(event: BridgeEventInput): void;
3
+ export declare function flushPendingBridgeEvents(): void;
4
+ export declare function registerBridgeIframe(entry: RegisteredIframeEntry): () => void;
5
+ export declare function flushPendingIframeRegistrations(): void;