@jini-ai/chat 0.1.0

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 (444) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +109 -0
  3. package/dist/core/agentic/chat-capabilities.d.ts +19 -0
  4. package/dist/core/agentic/chat-capabilities.d.ts.map +1 -0
  5. package/dist/core/agentic/chat-capabilities.js +106 -0
  6. package/dist/core/agentic/chat-capabilities.js.map +1 -0
  7. package/dist/core/agentic/index.d.ts +22 -0
  8. package/dist/core/agentic/index.d.ts.map +1 -0
  9. package/dist/core/agentic/index.js +21 -0
  10. package/dist/core/agentic/index.js.map +1 -0
  11. package/dist/core/events.d.ts +84 -0
  12. package/dist/core/events.d.ts.map +1 -0
  13. package/dist/core/events.js +14 -0
  14. package/dist/core/events.js.map +1 -0
  15. package/dist/core/index.d.ts +40 -0
  16. package/dist/core/index.d.ts.map +1 -0
  17. package/dist/core/index.js +40 -0
  18. package/dist/core/index.js.map +1 -0
  19. package/dist/core/messages.d.ts +53 -0
  20. package/dist/core/messages.d.ts.map +1 -0
  21. package/dist/core/messages.js +16 -0
  22. package/dist/core/messages.js.map +1 -0
  23. package/dist/core/partial-json.d.ts +36 -0
  24. package/dist/core/partial-json.d.ts.map +1 -0
  25. package/dist/core/partial-json.js +119 -0
  26. package/dist/core/partial-json.js.map +1 -0
  27. package/dist/core/persistence/index.d.ts +11 -0
  28. package/dist/core/persistence/index.d.ts.map +1 -0
  29. package/dist/core/persistence/index.js +11 -0
  30. package/dist/core/persistence/index.js.map +1 -0
  31. package/dist/core/persistence/ports.d.ts +124 -0
  32. package/dist/core/persistence/ports.d.ts.map +1 -0
  33. package/dist/core/persistence/ports.js +2 -0
  34. package/dist/core/persistence/ports.js.map +1 -0
  35. package/dist/core/persistence/title.d.ts +35 -0
  36. package/dist/core/persistence/title.d.ts.map +1 -0
  37. package/dist/core/persistence/title.js +137 -0
  38. package/dist/core/persistence/title.js.map +1 -0
  39. package/dist/core/question-form/format.d.ts +27 -0
  40. package/dist/core/question-form/format.d.ts.map +1 -0
  41. package/dist/core/question-form/format.js +45 -0
  42. package/dist/core/question-form/format.js.map +1 -0
  43. package/dist/core/question-form/normalize.d.ts +30 -0
  44. package/dist/core/question-form/normalize.d.ts.map +1 -0
  45. package/dist/core/question-form/normalize.js +192 -0
  46. package/dist/core/question-form/normalize.js.map +1 -0
  47. package/dist/core/question-form/scan.d.ts +50 -0
  48. package/dist/core/question-form/scan.d.ts.map +1 -0
  49. package/dist/core/question-form/scan.js +404 -0
  50. package/dist/core/question-form/scan.js.map +1 -0
  51. package/dist/core/question-form/types.d.ts +83 -0
  52. package/dist/core/question-form/types.d.ts.map +1 -0
  53. package/dist/core/question-form/types.js +11 -0
  54. package/dist/core/question-form/types.js.map +1 -0
  55. package/dist/core/question-form.d.ts +39 -0
  56. package/dist/core/question-form.d.ts.map +1 -0
  57. package/dist/core/question-form.js +4 -0
  58. package/dist/core/question-form.js.map +1 -0
  59. package/dist/core/todos.d.ts +70 -0
  60. package/dist/core/todos.d.ts.map +1 -0
  61. package/dist/core/todos.js +175 -0
  62. package/dist/core/todos.js.map +1 -0
  63. package/dist/core/tool-events.d.ts +18 -0
  64. package/dist/core/tool-events.d.ts.map +1 -0
  65. package/dist/core/tool-events.js +36 -0
  66. package/dist/core/tool-events.js.map +1 -0
  67. package/dist/core/tools.d.ts +51 -0
  68. package/dist/core/tools.d.ts.map +1 -0
  69. package/dist/core/tools.js +41 -0
  70. package/dist/core/tools.js.map +1 -0
  71. package/dist/core/transcript.d.ts +81 -0
  72. package/dist/core/transcript.d.ts.map +1 -0
  73. package/dist/core/transcript.js +133 -0
  74. package/dist/core/transcript.js.map +1 -0
  75. package/dist/core/transport.d.ts +109 -0
  76. package/dist/core/transport.d.ts.map +1 -0
  77. package/dist/core/transport.js +2 -0
  78. package/dist/core/transport.js.map +1 -0
  79. package/dist/core/util/index.d.ts +16 -0
  80. package/dist/core/util/index.d.ts.map +1 -0
  81. package/dist/core/util/index.js +16 -0
  82. package/dist/core/util/index.js.map +1 -0
  83. package/dist/core/util/manifest.d.ts +39 -0
  84. package/dist/core/util/manifest.d.ts.map +1 -0
  85. package/dist/core/util/manifest.js +173 -0
  86. package/dist/core/util/manifest.js.map +1 -0
  87. package/dist/core/util/markdown-context.d.ts +47 -0
  88. package/dist/core/util/markdown-context.d.ts.map +1 -0
  89. package/dist/core/util/markdown-context.js +125 -0
  90. package/dist/core/util/markdown-context.js.map +1 -0
  91. package/dist/core/util/markup-attributes.d.ts +20 -0
  92. package/dist/core/util/markup-attributes.d.ts.map +1 -0
  93. package/dist/core/util/markup-attributes.js +33 -0
  94. package/dist/core/util/markup-attributes.js.map +1 -0
  95. package/dist/core/util/parser.d.ts +42 -0
  96. package/dist/core/util/parser.d.ts.map +1 -0
  97. package/dist/core/util/parser.js +238 -0
  98. package/dist/core/util/parser.js.map +1 -0
  99. package/dist/core/util/pointer.d.ts +28 -0
  100. package/dist/core/util/pointer.d.ts.map +1 -0
  101. package/dist/core/util/pointer.js +75 -0
  102. package/dist/core/util/pointer.js.map +1 -0
  103. package/dist/core/util/recover.d.ts +40 -0
  104. package/dist/core/util/recover.d.ts.map +1 -0
  105. package/dist/core/util/recover.js +117 -0
  106. package/dist/core/util/recover.js.map +1 -0
  107. package/dist/core/util/strip.d.ts +112 -0
  108. package/dist/core/util/strip.d.ts.map +1 -0
  109. package/dist/core/util/strip.js +333 -0
  110. package/dist/core/util/strip.js.map +1 -0
  111. package/dist/core/util/types.d.ts +31 -0
  112. package/dist/core/util/types.d.ts.map +1 -0
  113. package/dist/core/util/types.js +2 -0
  114. package/dist/core/util/types.js.map +1 -0
  115. package/dist/core/util/validate.d.ts +50 -0
  116. package/dist/core/util/validate.d.ts.map +1 -0
  117. package/dist/core/util/validate.js +202 -0
  118. package/dist/core/util/validate.js.map +1 -0
  119. package/dist/react/agent-bridge/frontend-session-bridge.d.ts +45 -0
  120. package/dist/react/agent-bridge/frontend-session-bridge.d.ts.map +1 -0
  121. package/dist/react/agent-bridge/frontend-session-bridge.js +214 -0
  122. package/dist/react/agent-bridge/frontend-session-bridge.js.map +1 -0
  123. package/dist/react/artifact-types.d.ts +61 -0
  124. package/dist/react/artifact-types.d.ts.map +1 -0
  125. package/dist/react/artifact-types.js +33 -0
  126. package/dist/react/artifact-types.js.map +1 -0
  127. package/dist/react/chat-pane.d.ts +21 -0
  128. package/dist/react/chat-pane.d.ts.map +1 -0
  129. package/dist/react/chat-pane.js +20 -0
  130. package/dist/react/chat-pane.js.map +1 -0
  131. package/dist/react/components/A2uiSurfaceCard.d.ts +35 -0
  132. package/dist/react/components/A2uiSurfaceCard.d.ts.map +1 -0
  133. package/dist/react/components/A2uiSurfaceCard.js +272 -0
  134. package/dist/react/components/A2uiSurfaceCard.js.map +1 -0
  135. package/dist/react/components/AttachmentTray.d.ts +6 -0
  136. package/dist/react/components/AttachmentTray.d.ts.map +1 -0
  137. package/dist/react/components/AttachmentTray.js +30 -0
  138. package/dist/react/components/AttachmentTray.js.map +1 -0
  139. package/dist/react/components/ChatFab.d.ts +8 -0
  140. package/dist/react/components/ChatFab.d.ts.map +1 -0
  141. package/dist/react/components/ChatFab.js +24 -0
  142. package/dist/react/components/ChatFab.js.map +1 -0
  143. package/dist/react/components/Composer.d.ts +34 -0
  144. package/dist/react/components/Composer.d.ts.map +1 -0
  145. package/dist/react/components/Composer.js +300 -0
  146. package/dist/react/components/Composer.js.map +1 -0
  147. package/dist/react/components/ComposerDiscovery.d.ts +46 -0
  148. package/dist/react/components/ComposerDiscovery.d.ts.map +1 -0
  149. package/dist/react/components/ComposerDiscovery.js +38 -0
  150. package/dist/react/components/ComposerDiscovery.js.map +1 -0
  151. package/dist/react/components/ConversationList.d.ts +31 -0
  152. package/dist/react/components/ConversationList.d.ts.map +1 -0
  153. package/dist/react/components/ConversationList.js +221 -0
  154. package/dist/react/components/ConversationList.js.map +1 -0
  155. package/dist/react/components/ExtEventErrorBoundary.d.ts +35 -0
  156. package/dist/react/components/ExtEventErrorBoundary.d.ts.map +1 -0
  157. package/dist/react/components/ExtEventErrorBoundary.js +38 -0
  158. package/dist/react/components/ExtEventErrorBoundary.js.map +1 -0
  159. package/dist/react/components/Icon.d.ts +17 -0
  160. package/dist/react/components/Icon.d.ts.map +1 -0
  161. package/dist/react/components/Icon.js +46 -0
  162. package/dist/react/components/Icon.js.map +1 -0
  163. package/dist/react/components/JiniChatProvider.d.ts +45 -0
  164. package/dist/react/components/JiniChatProvider.d.ts.map +1 -0
  165. package/dist/react/components/JiniChatProvider.js +44 -0
  166. package/dist/react/components/JiniChatProvider.js.map +1 -0
  167. package/dist/react/components/Markdown.d.ts +5 -0
  168. package/dist/react/components/Markdown.d.ts.map +1 -0
  169. package/dist/react/components/Markdown.js +390 -0
  170. package/dist/react/components/Markdown.js.map +1 -0
  171. package/dist/react/components/McpUiSurfaceCard.d.ts +51 -0
  172. package/dist/react/components/McpUiSurfaceCard.d.ts.map +1 -0
  173. package/dist/react/components/McpUiSurfaceCard.js +159 -0
  174. package/dist/react/components/McpUiSurfaceCard.js.map +1 -0
  175. package/dist/react/components/MessageList.d.ts +15 -0
  176. package/dist/react/components/MessageList.d.ts.map +1 -0
  177. package/dist/react/components/MessageList.js +81 -0
  178. package/dist/react/components/MessageList.js.map +1 -0
  179. package/dist/react/components/MessageRow.d.ts +60 -0
  180. package/dist/react/components/MessageRow.d.ts.map +1 -0
  181. package/dist/react/components/MessageRow.js +156 -0
  182. package/dist/react/components/MessageRow.js.map +1 -0
  183. package/dist/react/components/NextStepActions.d.ts +34 -0
  184. package/dist/react/components/NextStepActions.d.ts.map +1 -0
  185. package/dist/react/components/NextStepActions.js +9 -0
  186. package/dist/react/components/NextStepActions.js.map +1 -0
  187. package/dist/react/components/QuestionForm.d.ts +26 -0
  188. package/dist/react/components/QuestionForm.d.ts.map +1 -0
  189. package/dist/react/components/QuestionForm.js +238 -0
  190. package/dist/react/components/QuestionForm.js.map +1 -0
  191. package/dist/react/components/QuestionsPanel.d.ts +13 -0
  192. package/dist/react/components/QuestionsPanel.d.ts.map +1 -0
  193. package/dist/react/components/QuestionsPanel.js +33 -0
  194. package/dist/react/components/QuestionsPanel.js.map +1 -0
  195. package/dist/react/components/TodoCard.d.ts +8 -0
  196. package/dist/react/components/TodoCard.d.ts.map +1 -0
  197. package/dist/react/components/TodoCard.js +29 -0
  198. package/dist/react/components/TodoCard.js.map +1 -0
  199. package/dist/react/components/ToolCard.d.ts +22 -0
  200. package/dist/react/components/ToolCard.d.ts.map +1 -0
  201. package/dist/react/components/ToolCard.js +298 -0
  202. package/dist/react/components/ToolCard.js.map +1 -0
  203. package/dist/react/components/composer-discovery.d.ts +107 -0
  204. package/dist/react/components/composer-discovery.d.ts.map +1 -0
  205. package/dist/react/components/composer-discovery.js +176 -0
  206. package/dist/react/components/composer-discovery.js.map +1 -0
  207. package/dist/react/ext-event-renderer-registry.d.ts +51 -0
  208. package/dist/react/ext-event-renderer-registry.d.ts.map +1 -0
  209. package/dist/react/ext-event-renderer-registry.js +20 -0
  210. package/dist/react/ext-event-renderer-registry.js.map +1 -0
  211. package/dist/react/features/chat-pane/agent-tools.d.ts +14 -0
  212. package/dist/react/features/chat-pane/agent-tools.d.ts.map +1 -0
  213. package/dist/react/features/chat-pane/agent-tools.js +22 -0
  214. package/dist/react/features/chat-pane/agent-tools.js.map +1 -0
  215. package/dist/react/features/chat-pane/components/AgentRuntimePicker.d.ts +12 -0
  216. package/dist/react/features/chat-pane/components/AgentRuntimePicker.d.ts.map +1 -0
  217. package/dist/react/features/chat-pane/components/AgentRuntimePicker.js +106 -0
  218. package/dist/react/features/chat-pane/components/AgentRuntimePicker.js.map +1 -0
  219. package/dist/react/features/chat-pane/components/ChatPane.d.ts +10 -0
  220. package/dist/react/features/chat-pane/components/ChatPane.d.ts.map +1 -0
  221. package/dist/react/features/chat-pane/components/ChatPane.js +169 -0
  222. package/dist/react/features/chat-pane/components/ChatPane.js.map +1 -0
  223. package/dist/react/features/chat-pane/create-daemon-attachment-uploader.d.ts +21 -0
  224. package/dist/react/features/chat-pane/create-daemon-attachment-uploader.d.ts.map +1 -0
  225. package/dist/react/features/chat-pane/create-daemon-attachment-uploader.js +213 -0
  226. package/dist/react/features/chat-pane/create-daemon-attachment-uploader.js.map +1 -0
  227. package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.d.ts +70 -0
  228. package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.d.ts.map +1 -0
  229. package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.js +76 -0
  230. package/dist/react/features/chat-pane/create-mcp-ui-tool-caller.js.map +1 -0
  231. package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.d.ts +133 -0
  232. package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.d.ts.map +1 -0
  233. package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.js +258 -0
  234. package/dist/react/features/chat-pane/hooks/useAgentRuntimePicker.hooks.js.map +1 -0
  235. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts +66 -0
  236. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.d.ts.map +1 -0
  237. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js +224 -0
  238. package/dist/react/features/chat-pane/hooks/useChatPane.hooks.js.map +1 -0
  239. package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.d.ts +38 -0
  240. package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.d.ts.map +1 -0
  241. package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.js +252 -0
  242. package/dist/react/features/chat-pane/hooks/useChatPaneAgentControl.hooks.js.map +1 -0
  243. package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.d.ts +16 -0
  244. package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.d.ts.map +1 -0
  245. package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.js +59 -0
  246. package/dist/react/features/chat-pane/hooks/useChatPaneControlsHeight.hooks.js.map +1 -0
  247. package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.d.ts +26 -0
  248. package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.d.ts.map +1 -0
  249. package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.js +74 -0
  250. package/dist/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.js.map +1 -0
  251. package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.d.ts +25 -0
  252. package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.d.ts.map +1 -0
  253. package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.js +88 -0
  254. package/dist/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.js.map +1 -0
  255. package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.d.ts +38 -0
  256. package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.d.ts.map +1 -0
  257. package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.js +184 -0
  258. package/dist/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.js.map +1 -0
  259. package/dist/react/features/chat-pane/index.d.ts +12 -0
  260. package/dist/react/features/chat-pane/index.d.ts.map +1 -0
  261. package/dist/react/features/chat-pane/index.js +11 -0
  262. package/dist/react/features/chat-pane/index.js.map +1 -0
  263. package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.d.ts +12 -0
  264. package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.d.ts.map +1 -0
  265. package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.js +102 -0
  266. package/dist/react/features/chat-pane/react/components/AgentRuntimePicker.js.map +1 -0
  267. package/dist/react/features/chat-pane/react/components/ChatPane.d.ts +10 -0
  268. package/dist/react/features/chat-pane/react/components/ChatPane.d.ts.map +1 -0
  269. package/dist/react/features/chat-pane/react/components/ChatPane.js +137 -0
  270. package/dist/react/features/chat-pane/react/components/ChatPane.js.map +1 -0
  271. package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.d.ts +133 -0
  272. package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.d.ts.map +1 -0
  273. package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.js +258 -0
  274. package/dist/react/features/chat-pane/react/hooks/useAgentRuntimePicker.hooks.js.map +1 -0
  275. package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.d.ts +66 -0
  276. package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.d.ts.map +1 -0
  277. package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.js +223 -0
  278. package/dist/react/features/chat-pane/react/hooks/useChatPane.hooks.js.map +1 -0
  279. package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.d.ts +38 -0
  280. package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.d.ts.map +1 -0
  281. package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.js +252 -0
  282. package/dist/react/features/chat-pane/react/hooks/useChatPaneAgentControl.hooks.js.map +1 -0
  283. package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.d.ts +26 -0
  284. package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.d.ts.map +1 -0
  285. package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.js +60 -0
  286. package/dist/react/features/chat-pane/react/hooks/useChatPaneFileDrop.hooks.js.map +1 -0
  287. package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.d.ts +25 -0
  288. package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.d.ts.map +1 -0
  289. package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.js +83 -0
  290. package/dist/react/features/chat-pane/react/hooks/useChatPaneRuntimeInventory.hooks.js.map +1 -0
  291. package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.d.ts +38 -0
  292. package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.d.ts.map +1 -0
  293. package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.js +184 -0
  294. package/dist/react/features/chat-pane/react/hooks/useChatPaneWorkingDirectory.hooks.js.map +1 -0
  295. package/dist/react/features/chat-pane/react/styles.d.ts +2 -0
  296. package/dist/react/features/chat-pane/react/styles.d.ts.map +1 -0
  297. package/dist/react/features/chat-pane/react/styles.js +863 -0
  298. package/dist/react/features/chat-pane/react/styles.js.map +1 -0
  299. package/dist/react/features/chat-pane/rules.d.ts +31 -0
  300. package/dist/react/features/chat-pane/rules.d.ts.map +1 -0
  301. package/dist/react/features/chat-pane/rules.js +81 -0
  302. package/dist/react/features/chat-pane/rules.js.map +1 -0
  303. package/dist/react/features/chat-pane/styles.d.ts +2 -0
  304. package/dist/react/features/chat-pane/styles.d.ts.map +1 -0
  305. package/dist/react/features/chat-pane/styles.js +1327 -0
  306. package/dist/react/features/chat-pane/styles.js.map +1 -0
  307. package/dist/react/features/chat-pane/types.d.ts +248 -0
  308. package/dist/react/features/chat-pane/types.d.ts.map +1 -0
  309. package/dist/react/features/chat-pane/types.js +2 -0
  310. package/dist/react/features/chat-pane/types.js.map +1 -0
  311. package/dist/react/features/model-picker/components/CredentialStatusBadge.d.ts +7 -0
  312. package/dist/react/features/model-picker/components/CredentialStatusBadge.d.ts.map +1 -0
  313. package/dist/react/features/model-picker/components/CredentialStatusBadge.js +20 -0
  314. package/dist/react/features/model-picker/components/CredentialStatusBadge.js.map +1 -0
  315. package/dist/react/features/model-picker/components/ModelPicker.d.ts +9 -0
  316. package/dist/react/features/model-picker/components/ModelPicker.d.ts.map +1 -0
  317. package/dist/react/features/model-picker/components/ModelPicker.js +34 -0
  318. package/dist/react/features/model-picker/components/ModelPicker.js.map +1 -0
  319. package/dist/react/features/model-picker/constants.d.ts +6 -0
  320. package/dist/react/features/model-picker/constants.d.ts.map +1 -0
  321. package/dist/react/features/model-picker/constants.js +9 -0
  322. package/dist/react/features/model-picker/constants.js.map +1 -0
  323. package/dist/react/features/model-picker/dependencies.d.ts +11 -0
  324. package/dist/react/features/model-picker/dependencies.d.ts.map +1 -0
  325. package/dist/react/features/model-picker/dependencies.js +10 -0
  326. package/dist/react/features/model-picker/dependencies.js.map +1 -0
  327. package/dist/react/features/model-picker/hooks/useModelPicker.hooks.d.ts +27 -0
  328. package/dist/react/features/model-picker/hooks/useModelPicker.hooks.d.ts.map +1 -0
  329. package/dist/react/features/model-picker/hooks/useModelPicker.hooks.js +62 -0
  330. package/dist/react/features/model-picker/hooks/useModelPicker.hooks.js.map +1 -0
  331. package/dist/react/features/model-picker/index.d.ts +32 -0
  332. package/dist/react/features/model-picker/index.d.ts.map +1 -0
  333. package/dist/react/features/model-picker/index.js +29 -0
  334. package/dist/react/features/model-picker/index.js.map +1 -0
  335. package/dist/react/features/model-picker/ports.d.ts +11 -0
  336. package/dist/react/features/model-picker/ports.d.ts.map +1 -0
  337. package/dist/react/features/model-picker/ports.js +2 -0
  338. package/dist/react/features/model-picker/ports.js.map +1 -0
  339. package/dist/react/features/model-picker/react/components/CredentialStatusBadge.d.ts +7 -0
  340. package/dist/react/features/model-picker/react/components/CredentialStatusBadge.d.ts.map +1 -0
  341. package/dist/react/features/model-picker/react/components/CredentialStatusBadge.js +20 -0
  342. package/dist/react/features/model-picker/react/components/CredentialStatusBadge.js.map +1 -0
  343. package/dist/react/features/model-picker/react/components/ModelPicker.d.ts +9 -0
  344. package/dist/react/features/model-picker/react/components/ModelPicker.d.ts.map +1 -0
  345. package/dist/react/features/model-picker/react/components/ModelPicker.js +34 -0
  346. package/dist/react/features/model-picker/react/components/ModelPicker.js.map +1 -0
  347. package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.d.ts +27 -0
  348. package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.d.ts.map +1 -0
  349. package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.js +62 -0
  350. package/dist/react/features/model-picker/react/hooks/useModelPicker.hooks.js.map +1 -0
  351. package/dist/react/features/model-picker/rules.d.ts +26 -0
  352. package/dist/react/features/model-picker/rules.d.ts.map +1 -0
  353. package/dist/react/features/model-picker/rules.js +84 -0
  354. package/dist/react/features/model-picker/rules.js.map +1 -0
  355. package/dist/react/features/model-picker/types.d.ts +38 -0
  356. package/dist/react/features/model-picker/types.d.ts.map +1 -0
  357. package/dist/react/features/model-picker/types.js +2 -0
  358. package/dist/react/features/model-picker/types.js.map +1 -0
  359. package/dist/react/hooks/composer-draft-cache.d.ts +65 -0
  360. package/dist/react/hooks/composer-draft-cache.d.ts.map +1 -0
  361. package/dist/react/hooks/composer-draft-cache.js +89 -0
  362. package/dist/react/hooks/composer-draft-cache.js.map +1 -0
  363. package/dist/react/hooks/context.d.ts +18 -0
  364. package/dist/react/hooks/context.d.ts.map +1 -0
  365. package/dist/react/hooks/context.js +60 -0
  366. package/dist/react/hooks/context.js.map +1 -0
  367. package/dist/react/hooks/testing/fake-transport.d.ts +34 -0
  368. package/dist/react/hooks/testing/fake-transport.d.ts.map +1 -0
  369. package/dist/react/hooks/testing/fake-transport.js +46 -0
  370. package/dist/react/hooks/testing/fake-transport.js.map +1 -0
  371. package/dist/react/hooks/useArtifactStream.d.ts +18 -0
  372. package/dist/react/hooks/useArtifactStream.d.ts.map +1 -0
  373. package/dist/react/hooks/useArtifactStream.js +55 -0
  374. package/dist/react/hooks/useArtifactStream.js.map +1 -0
  375. package/dist/react/hooks/useChatFabDrag.d.ts +25 -0
  376. package/dist/react/hooks/useChatFabDrag.d.ts.map +1 -0
  377. package/dist/react/hooks/useChatFabDrag.js +88 -0
  378. package/dist/react/hooks/useChatFabDrag.js.map +1 -0
  379. package/dist/react/hooks/useComposer.d.ts +48 -0
  380. package/dist/react/hooks/useComposer.d.ts.map +1 -0
  381. package/dist/react/hooks/useComposer.js +121 -0
  382. package/dist/react/hooks/useComposer.js.map +1 -0
  383. package/dist/react/hooks/useConversation.d.ts +34 -0
  384. package/dist/react/hooks/useConversation.d.ts.map +1 -0
  385. package/dist/react/hooks/useConversation.js +163 -0
  386. package/dist/react/hooks/useConversation.js.map +1 -0
  387. package/dist/react/hooks/useCopyToClipboard.d.ts +14 -0
  388. package/dist/react/hooks/useCopyToClipboard.d.ts.map +1 -0
  389. package/dist/react/hooks/useCopyToClipboard.js +98 -0
  390. package/dist/react/hooks/useCopyToClipboard.js.map +1 -0
  391. package/dist/react/hooks/useExtEventGroups.d.ts +7 -0
  392. package/dist/react/hooks/useExtEventGroups.d.ts.map +1 -0
  393. package/dist/react/hooks/useExtEventGroups.js +32 -0
  394. package/dist/react/hooks/useExtEventGroups.js.map +1 -0
  395. package/dist/react/hooks/useLatestOperation.d.ts +31 -0
  396. package/dist/react/hooks/useLatestOperation.d.ts.map +1 -0
  397. package/dist/react/hooks/useLatestOperation.js +74 -0
  398. package/dist/react/hooks/useLatestOperation.js.map +1 -0
  399. package/dist/react/hooks/usePinnedTodos.d.ts +15 -0
  400. package/dist/react/hooks/usePinnedTodos.d.ts.map +1 -0
  401. package/dist/react/hooks/usePinnedTodos.js +43 -0
  402. package/dist/react/hooks/usePinnedTodos.js.map +1 -0
  403. package/dist/react/hooks/useQuestionForms.d.ts +28 -0
  404. package/dist/react/hooks/useQuestionForms.d.ts.map +1 -0
  405. package/dist/react/hooks/useQuestionForms.js +113 -0
  406. package/dist/react/hooks/useQuestionForms.js.map +1 -0
  407. package/dist/react/hooks/useRunStream.d.ts +27 -0
  408. package/dist/react/hooks/useRunStream.d.ts.map +1 -0
  409. package/dist/react/hooks/useRunStream.js +180 -0
  410. package/dist/react/hooks/useRunStream.js.map +1 -0
  411. package/dist/react/hooks/useToolTimeline.d.ts +33 -0
  412. package/dist/react/hooks/useToolTimeline.d.ts.map +1 -0
  413. package/dist/react/hooks/useToolTimeline.js +47 -0
  414. package/dist/react/hooks/useToolTimeline.js.map +1 -0
  415. package/dist/react/index.d.ts +158 -0
  416. package/dist/react/index.d.ts.map +1 -0
  417. package/dist/react/index.js +118 -0
  418. package/dist/react/index.js.map +1 -0
  419. package/dist/react/message-blocks.d.ts +86 -0
  420. package/dist/react/message-blocks.d.ts.map +1 -0
  421. package/dist/react/message-blocks.js +78 -0
  422. package/dist/react/message-blocks.js.map +1 -0
  423. package/dist/react/poc-mcp-ui-official/PocMcpUiCard.d.ts +9 -0
  424. package/dist/react/poc-mcp-ui-official/PocMcpUiCard.d.ts.map +1 -0
  425. package/dist/react/poc-mcp-ui-official/PocMcpUiCard.js +29 -0
  426. package/dist/react/poc-mcp-ui-official/PocMcpUiCard.js.map +1 -0
  427. package/dist/react/poc-mcp-ui-official/create-poc-resource.d.ts +30 -0
  428. package/dist/react/poc-mcp-ui-official/create-poc-resource.d.ts.map +1 -0
  429. package/dist/react/poc-mcp-ui-official/create-poc-resource.js +44 -0
  430. package/dist/react/poc-mcp-ui-official/create-poc-resource.js.map +1 -0
  431. package/dist/react/slots.d.ts +215 -0
  432. package/dist/react/slots.d.ts.map +1 -0
  433. package/dist/react/slots.js +2 -0
  434. package/dist/react/slots.js.map +1 -0
  435. package/dist/react/styles/reference.css +298 -0
  436. package/dist/react/tool-renderer-registry.d.ts +41 -0
  437. package/dist/react/tool-renderer-registry.d.ts.map +1 -0
  438. package/dist/react/tool-renderer-registry.js +22 -0
  439. package/dist/react/tool-renderer-registry.js.map +1 -0
  440. package/dist/react/util/defined-props.d.ts +31 -0
  441. package/dist/react/util/defined-props.d.ts.map +1 -0
  442. package/dist/react/util/defined-props.js +28 -0
  443. package/dist/react/util/defined-props.js.map +1 -0
  444. package/package.json +99 -0
@@ -0,0 +1,26 @@
1
+ import { type DragEventHandler } from 'react';
2
+ export interface UseChatPaneFileDropOptions {
3
+ enabled: boolean;
4
+ onFiles: (files: File[]) => void | Promise<void>;
5
+ }
6
+ export interface ChatPaneFileDropTargetProps {
7
+ onDragEnter: DragEventHandler<HTMLDivElement>;
8
+ onDragOver: DragEventHandler<HTMLDivElement>;
9
+ onDragLeave: DragEventHandler<HTMLDivElement>;
10
+ onDrop: DragEventHandler<HTMLDivElement>;
11
+ }
12
+ export interface UseChatPaneFileDropResult {
13
+ draggingFiles: boolean;
14
+ dropReadError: string | null;
15
+ targetProps: ChatPaneFileDropTargetProps;
16
+ }
17
+ /**
18
+ * Adapts the shared nesting-safe file drop target to the chat composer.
19
+ * Non-file drags are ignored, while temporarily disabled composers still
20
+ * consume a file drop so the browser cannot navigate away to the local file.
21
+ *
22
+ * @complexity Time: O(n) for the dropped file list; space: O(n).
23
+ * @overallScore 100/100
24
+ */
25
+ export declare function useChatPaneFileDrop({ enabled, onFiles, }: UseChatPaneFileDropOptions): UseChatPaneFileDropResult;
26
+ //# sourceMappingURL=useChatPaneFileDrop.hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatPaneFileDrop.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC7C,WAAW,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,2BAA2B,CAAC;CAC1C;AAsBD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACR,EAAE,0BAA0B,GAAG,yBAAyB,CA4CxD"}
@@ -0,0 +1,74 @@
1
+ import { useCallback, } from 'react';
2
+ import { useFileDropTarget } from '@jini-ai/ui';
3
+ function carriesFiles(event) {
4
+ return Array.from(event.dataTransfer.types ?? []).includes('Files')
5
+ || Array.from(event.dataTransfer.items ?? []).some((item) => item.kind === 'file')
6
+ || (event.type === 'drop' && event.dataTransfer.files.length > 0);
7
+ }
8
+ /** Invokes the host's `onFiles` and reports a synchronous throw or async rejection without leaving it unhandled. */
9
+ function runOnFilesHostEffect(onFiles, files) {
10
+ let result;
11
+ try {
12
+ result = onFiles(files);
13
+ }
14
+ catch (error) {
15
+ console.error('[@jini-ai/chat] useChatPaneFileDrop onFiles host effect failed:', error);
16
+ return;
17
+ }
18
+ void Promise.resolve(result).catch((error) => {
19
+ console.error('[@jini-ai/chat] useChatPaneFileDrop onFiles host effect failed:', error);
20
+ });
21
+ }
22
+ /**
23
+ * Adapts the shared nesting-safe file drop target to the chat composer.
24
+ * Non-file drags are ignored, while temporarily disabled composers still
25
+ * consume a file drop so the browser cannot navigate away to the local file.
26
+ *
27
+ * @complexity Time: O(n) for the dropped file list; space: O(n).
28
+ * @overallScore 100/100
29
+ */
30
+ export function useChatPaneFileDrop({ enabled, onFiles, }) {
31
+ const dropTarget = useFileDropTarget((files) => {
32
+ runOnFilesHostEffect(onFiles, files);
33
+ });
34
+ const onDragEnter = useCallback((event) => {
35
+ if (!enabled || !carriesFiles(event))
36
+ return;
37
+ dropTarget.onDragEnter(event);
38
+ }, [dropTarget.onDragEnter, enabled]);
39
+ const onDragOver = useCallback((event) => {
40
+ if (!carriesFiles(event))
41
+ return;
42
+ event.preventDefault();
43
+ if (!enabled) {
44
+ event.dataTransfer.dropEffect = 'none';
45
+ return;
46
+ }
47
+ dropTarget.onDragOver(event);
48
+ }, [dropTarget.onDragOver, enabled]);
49
+ const onDragLeave = useCallback((event) => {
50
+ if (!enabled || !carriesFiles(event))
51
+ return;
52
+ dropTarget.onDragLeave(event);
53
+ }, [dropTarget.onDragLeave, enabled]);
54
+ const onDrop = useCallback((event) => {
55
+ if (!carriesFiles(event))
56
+ return;
57
+ if (!enabled) {
58
+ event.preventDefault();
59
+ return;
60
+ }
61
+ dropTarget.onDrop(event);
62
+ }, [dropTarget.onDrop, enabled]);
63
+ return {
64
+ draggingFiles: enabled && dropTarget.draggingFiles,
65
+ dropReadError: dropTarget.dropReadError,
66
+ targetProps: {
67
+ onDragEnter,
68
+ onDragOver,
69
+ onDragLeave,
70
+ onDrop,
71
+ },
72
+ };
73
+ }
74
+ //# sourceMappingURL=useChatPaneFileDrop.hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatPaneFileDrop.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneFileDrop.hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { ChatPaneAgent, ChatPaneRuntimeAccess } from '../types.js';
2
+ export interface UseChatPaneRuntimeInventoryOptions {
3
+ access?: ChatPaneRuntimeAccess;
4
+ initialAgents?: readonly ChatPaneAgent[];
5
+ pollIntervalMs?: number;
6
+ }
7
+ export interface UseChatPaneRuntimeInventoryResult {
8
+ agents: readonly ChatPaneAgent[];
9
+ scanningAgents: boolean;
10
+ daemonOnline: boolean;
11
+ runtimeInventoryError: Error | null;
12
+ rescanAgents: () => Promise<void>;
13
+ }
14
+ /**
15
+ * Owns agent inventory, explicit rescans, and daemon-health polling while the
16
+ * host supplies only the environment-specific I/O effects.
17
+ *
18
+ * Inventory and health are tracked as two independent operations: a slow `listAgents` must not
19
+ * suppress a health tick that resolved after it, and vice versa.
20
+ *
21
+ * @complexity Time: O(n) per inventory response; space: O(n) for the snapshot.
22
+ * @overallScore 100/100
23
+ */
24
+ export declare function useChatPaneRuntimeInventory({ access, initialAgents, pollIntervalMs, }: UseChatPaneRuntimeInventoryOptions): UseChatPaneRuntimeInventoryResult;
25
+ //# sourceMappingURL=useChatPaneRuntimeInventory.hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatPaneRuntimeInventory.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIxE,MAAM,WAAW,kCAAkC;IACjD,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,KAAK,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,MAAM,EACN,aAA4B,EAC5B,cAAsB,GACvB,EAAE,kCAAkC,GAAG,iCAAiC,CA2ExE"}
@@ -0,0 +1,88 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import { useLatestOperation } from '../../../hooks/useLatestOperation.js';
3
+ const EMPTY_AGENTS = [];
4
+ /**
5
+ * Owns agent inventory, explicit rescans, and daemon-health polling while the
6
+ * host supplies only the environment-specific I/O effects.
7
+ *
8
+ * Inventory and health are tracked as two independent operations: a slow `listAgents` must not
9
+ * suppress a health tick that resolved after it, and vice versa.
10
+ *
11
+ * @complexity Time: O(n) per inventory response; space: O(n) for the snapshot.
12
+ * @overallScore 100/100
13
+ */
14
+ export function useChatPaneRuntimeInventory({ access, initialAgents = EMPTY_AGENTS, pollIntervalMs = 5_000, }) {
15
+ const [agents, setAgents] = useState(initialAgents);
16
+ // Seeded from `access` at mount, not `false`: the load effect below only flips this to `true`
17
+ // once it runs, which is after the first paint. Starting at `false` when `access` is already
18
+ // defined at mount painted one frame where the inventory was neither loaded nor marked as
19
+ // loading — indistinguishable from "detection finished, nothing usable" to any consumer keyed
20
+ // off this flag, which is exactly the frame `ChatPane`'s "No usable CLI" banner flashed on.
21
+ const [scanningAgents, setScanningAgents] = useState(() => access !== undefined);
22
+ const [daemonOnline, setDaemonOnline] = useState(false);
23
+ const [runtimeInventoryError, setRuntimeInventoryError] = useState(null);
24
+ const inventory = useLatestOperation();
25
+ const health = useLatestOperation();
26
+ useEffect(() => {
27
+ if (access !== undefined)
28
+ return;
29
+ inventory.supersede();
30
+ setAgents(initialAgents);
31
+ setScanningAgents(false);
32
+ setRuntimeInventoryError(null);
33
+ }, [access, initialAgents, inventory]);
34
+ const loadAgents = useCallback(async (rescan) => {
35
+ if (!access)
36
+ return;
37
+ setScanningAgents(true);
38
+ setRuntimeInventoryError(null);
39
+ await inventory.run(async (token) => {
40
+ const nextAgents = await (rescan ? access.rescanAgents() : access.listAgents());
41
+ token.ensureCurrent();
42
+ setAgents([...nextAgents]);
43
+ setScanningAgents(false);
44
+ }, (error) => {
45
+ // A failed rescan keeps the last good inventory on screen; a failed initial load has no
46
+ // last-good to keep, so it clears to empty rather than showing agents that may be gone.
47
+ if (!rescan)
48
+ setAgents([]);
49
+ setRuntimeInventoryError(error);
50
+ setScanningAgents(false);
51
+ });
52
+ }, [access, inventory]);
53
+ const refreshStatus = useCallback(async () => {
54
+ // No `if (!access) return` guard here (unlike `loadAgents`, which is reachable through
55
+ // the publicly-exposed `rescanAgents` and so can be invoked with a stale closure by the
56
+ // host): `refreshStatus` is never returned from this hook, so its only two call sites
57
+ // (the effect below, both the immediate call and the interval tick) are inside the SAME
58
+ // closure as the effect's own `if (!access) return` at its top — `access` is guaranteed
59
+ // defined by the time either one runs.
60
+ const runtimeAccess = access;
61
+ await health.run(async (token) => {
62
+ const online = await runtimeAccess.daemonOnline();
63
+ token.ensureCurrent();
64
+ setDaemonOnline(online);
65
+ }, () => setDaemonOnline(false));
66
+ }, [access, health]);
67
+ useEffect(() => {
68
+ if (!access)
69
+ return;
70
+ void loadAgents(false);
71
+ void refreshStatus();
72
+ const timer = window.setInterval(() => void refreshStatus(), pollIntervalMs);
73
+ return () => {
74
+ window.clearInterval(timer);
75
+ inventory.supersede();
76
+ health.supersede();
77
+ };
78
+ }, [access, health, inventory, loadAgents, pollIntervalMs, refreshStatus]);
79
+ const rescanAgents = useCallback(() => loadAgents(true), [loadAgents]);
80
+ return {
81
+ agents,
82
+ scanningAgents,
83
+ daemonOnline,
84
+ runtimeInventoryError,
85
+ rescanAgents,
86
+ };
87
+ }
88
+ //# sourceMappingURL=useChatPaneRuntimeInventory.hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatPaneRuntimeInventory.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneRuntimeInventory.hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,MAAM,YAAY,GAA6B,EAAE,CAAC;AAgBlD;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAC1C,MAAM,EACN,aAAa,GAAG,YAAY,EAC5B,cAAc,GAAG,KAAK,GACa;IACnC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA2B,aAAa,CAAC,CAAC;IAC9E,8FAA8F;IAC9F,6FAA6F;IAC7F,0FAA0F;IAC1F,8FAA8F;IAC9F,4FAA4F;IAC5F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACjF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,SAAS,CAAC,SAAS,EAAE,CAAC;QACtB,SAAS,CAAC,aAAa,CAAC,CAAC;QACzB,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzB,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,MAAe,EAAiB,EAAE;QACtE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAChF,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;YAC3B,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,wFAAwF;YACxF,wFAAwF;YACxF,IAAI,CAAC,MAAM;gBAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3B,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAExB,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAmB,EAAE;QAC1D,uFAAuF;QACvF,wFAAwF;QACxF,sFAAsF;QACtF,wFAAwF;QACxF,wFAAwF;QACxF,uCAAuC;QACvC,MAAM,aAAa,GAAG,MAA+B,CAAC;QACtD,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;YAClD,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,aAAa,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EAAE,cAAc,CAAC,CAAC;QAC7E,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5B,SAAS,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAE3E,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvE,OAAO;QACL,MAAM;QACN,cAAc;QACd,YAAY;QACZ,qBAAqB;QACrB,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { ChatPaneWorkingDirectoryAccess } from '../types.js';
2
+ export interface UseChatPaneWorkingDirectoryOptions {
3
+ workingDirectory?: string | null;
4
+ initialWorkingDirectory?: string | null;
5
+ onChangeWorkingDirectory?: (workingDirectory: string | null) => void;
6
+ workingDirectoryAccess?: ChatPaneWorkingDirectoryAccess;
7
+ }
8
+ export interface UseChatPaneWorkingDirectoryResult {
9
+ workingDirectory: string | null;
10
+ recentDirectories: readonly string[];
11
+ workingDirectoryInvalid: boolean;
12
+ workingDirectoryPending: boolean;
13
+ workingDirectoryError: Error | null;
14
+ openWorkingDirectoryPicker: () => Promise<void>;
15
+ pickWorkingDirectory: () => Promise<void>;
16
+ selectRecentDirectory: (directory: string) => Promise<void>;
17
+ clearWorkingDirectory: () => void;
18
+ }
19
+ /**
20
+ * Owns controlled/uncontrolled directory state and orchestrates the native
21
+ * filesystem effects used by the packaged working-directory picker.
22
+ *
23
+ * Every async path runs through one {@link useLatestOperation} instance, so a validation still in
24
+ * flight cannot clobber the result of the pick that replaced it, and a resolved promise arriving
25
+ * after unmount writes nothing. `token.ensureCurrent()` is that check — it stands where a
26
+ * `if (!mounted || stale) return;` guard used to sit after each await.
27
+ *
28
+ * @param options - Public value, change callback, and optional host I/O access.
29
+ * @returns Current picker state plus actions consumed by {@link ChatPane}.
30
+ * @throws Never. Native capability failures are exposed as
31
+ * `workingDirectoryError` for package-owned validation UI.
32
+ *
33
+ * @complexity Time: O(r) when refreshing `r` recent paths; O(1) otherwise.
34
+ * @complexity Space: O(r) for the package-owned recent-directory snapshot.
35
+ * @overallScore 100/100
36
+ */
37
+ export declare function useChatPaneWorkingDirectory(options: UseChatPaneWorkingDirectoryOptions): UseChatPaneWorkingDirectoryResult;
38
+ //# sourceMappingURL=useChatPaneWorkingDirectory.hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatPaneWorkingDirectory.hooks.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,WAAW,kCAAkC;IACjD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,wBAAwB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACrE,sBAAsB,CAAC,EAAE,8BAA8B,CAAC;CACzD;AAED,MAAM,WAAW,iCAAiC;IAChD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,uBAAuB,EAAE,OAAO,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,qBAAqB,EAAE,KAAK,GAAG,IAAI,CAAC;IACpC,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,qBAAqB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kCAAkC,GAC1C,iCAAiC,CA4KnC"}
@@ -0,0 +1,184 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { useLatestOperation } from '../../../hooks/useLatestOperation.js';
3
+ /**
4
+ * Owns controlled/uncontrolled directory state and orchestrates the native
5
+ * filesystem effects used by the packaged working-directory picker.
6
+ *
7
+ * Every async path runs through one {@link useLatestOperation} instance, so a validation still in
8
+ * flight cannot clobber the result of the pick that replaced it, and a resolved promise arriving
9
+ * after unmount writes nothing. `token.ensureCurrent()` is that check — it stands where a
10
+ * `if (!mounted || stale) return;` guard used to sit after each await.
11
+ *
12
+ * @param options - Public value, change callback, and optional host I/O access.
13
+ * @returns Current picker state plus actions consumed by {@link ChatPane}.
14
+ * @throws Never. Native capability failures are exposed as
15
+ * `workingDirectoryError` for package-owned validation UI.
16
+ *
17
+ * @complexity Time: O(r) when refreshing `r` recent paths; O(1) otherwise.
18
+ * @complexity Space: O(r) for the package-owned recent-directory snapshot.
19
+ * @overallScore 100/100
20
+ */
21
+ export function useChatPaneWorkingDirectory(options) {
22
+ const controlled = options.workingDirectory !== undefined;
23
+ const [uncontrolledWorkingDirectory, setUncontrolledWorkingDirectory] = useState(options.initialWorkingDirectory ?? null);
24
+ const [recentDirectories, setRecentDirectories] = useState([]);
25
+ const [workingDirectoryInvalid, setWorkingDirectoryInvalid] = useState(false);
26
+ const [workingDirectoryPending, setWorkingDirectoryPending] = useState(false);
27
+ const [workingDirectoryError, setWorkingDirectoryError] = useState(null);
28
+ const operation = useLatestOperation();
29
+ const observedDirectoryRef = useRef(undefined);
30
+ const workingDirectory = controlled
31
+ ? options.workingDirectory ?? null
32
+ : uncontrolledWorkingDirectory;
33
+ const reportWorkingDirectory = useCallback((directory) => {
34
+ observedDirectoryRef.current = directory;
35
+ if (!controlled)
36
+ setUncontrolledWorkingDirectory(directory);
37
+ options.onChangeWorkingDirectory?.(directory);
38
+ }, [controlled, options.onChangeWorkingDirectory]);
39
+ /** Shared by every action: a failed native call invalidates and stops pending. */
40
+ const reportFailure = useCallback((error) => {
41
+ setWorkingDirectoryError(error);
42
+ setWorkingDirectoryPending(false);
43
+ }, []);
44
+ useEffect(() => {
45
+ if (observedDirectoryRef.current === workingDirectory)
46
+ return;
47
+ observedDirectoryRef.current = workingDirectory;
48
+ operation.supersede();
49
+ const access = options.workingDirectoryAccess;
50
+ setWorkingDirectoryError(null);
51
+ if (workingDirectory === null || !access) {
52
+ setWorkingDirectoryInvalid(false);
53
+ setWorkingDirectoryPending(false);
54
+ return;
55
+ }
56
+ let validationSettled = false;
57
+ setWorkingDirectoryPending(true);
58
+ void operation.run(async (token) => {
59
+ const normalized = access.normalizeWorkingDirectory
60
+ ? await access.normalizeWorkingDirectory(workingDirectory)
61
+ : workingDirectory;
62
+ token.ensureCurrent();
63
+ if (normalized === null) {
64
+ validationSettled = true;
65
+ setWorkingDirectoryInvalid(true);
66
+ setWorkingDirectoryPending(false);
67
+ return;
68
+ }
69
+ const exists = await access.directoryExists(normalized);
70
+ token.ensureCurrent();
71
+ if (normalized !== workingDirectory)
72
+ reportWorkingDirectory(normalized);
73
+ validationSettled = true;
74
+ setWorkingDirectoryInvalid(!exists);
75
+ setWorkingDirectoryPending(false);
76
+ }, (error) => {
77
+ validationSettled = true;
78
+ setWorkingDirectoryInvalid(true);
79
+ reportFailure(error);
80
+ });
81
+ return () => {
82
+ operation.supersede();
83
+ // React Strict Mode replays this effect while preserving refs. Release
84
+ // only the marker for the directory owned by this setup so its replay
85
+ // starts fresh. Settled validations keep their marker so an unstable
86
+ // host adapter object cannot trigger a validation/render loop.
87
+ if (!validationSettled
88
+ && observedDirectoryRef.current === workingDirectory) {
89
+ observedDirectoryRef.current = undefined;
90
+ }
91
+ };
92
+ }, [
93
+ operation,
94
+ options.workingDirectoryAccess,
95
+ reportFailure,
96
+ reportWorkingDirectory,
97
+ workingDirectory,
98
+ ]);
99
+ const openWorkingDirectoryPicker = useCallback(async () => {
100
+ const access = options.workingDirectoryAccess;
101
+ if (!access)
102
+ return;
103
+ setWorkingDirectoryError(null);
104
+ setWorkingDirectoryPending(true);
105
+ await operation.run(async (token) => {
106
+ const [recent, exists] = await Promise.all([
107
+ access.recentDirectories(),
108
+ workingDirectory === null
109
+ ? Promise.resolve(true)
110
+ : access.directoryExists(workingDirectory),
111
+ ]);
112
+ token.ensureCurrent();
113
+ setRecentDirectories([...recent]);
114
+ setWorkingDirectoryInvalid(!exists);
115
+ setWorkingDirectoryPending(false);
116
+ }, reportFailure);
117
+ }, [operation, options.workingDirectoryAccess, reportFailure, workingDirectory]);
118
+ const pickWorkingDirectory = useCallback(async () => {
119
+ const access = options.workingDirectoryAccess;
120
+ if (!access)
121
+ return;
122
+ setWorkingDirectoryError(null);
123
+ setWorkingDirectoryPending(true);
124
+ await operation.run(async (token) => {
125
+ const selected = await access.pickWorkingDirectory(workingDirectory ?? undefined);
126
+ token.ensureCurrent();
127
+ if (selected === null) {
128
+ setWorkingDirectoryPending(false);
129
+ return;
130
+ }
131
+ const [exists, recent] = await Promise.all([
132
+ access.directoryExists(selected),
133
+ access.recentDirectories(),
134
+ ]);
135
+ token.ensureCurrent();
136
+ reportWorkingDirectory(selected);
137
+ setWorkingDirectoryInvalid(!exists);
138
+ setRecentDirectories([...recent]);
139
+ setWorkingDirectoryPending(false);
140
+ }, reportFailure);
141
+ }, [
142
+ operation,
143
+ options.workingDirectoryAccess,
144
+ reportFailure,
145
+ reportWorkingDirectory,
146
+ workingDirectory,
147
+ ]);
148
+ const selectRecentDirectory = useCallback(async (directory) => {
149
+ operation.supersede();
150
+ setWorkingDirectoryError(null);
151
+ const access = options.workingDirectoryAccess;
152
+ if (!access) {
153
+ reportWorkingDirectory(directory);
154
+ return;
155
+ }
156
+ setWorkingDirectoryPending(true);
157
+ await operation.run(async (token) => {
158
+ const exists = await access.directoryExists(directory);
159
+ token.ensureCurrent();
160
+ reportWorkingDirectory(directory);
161
+ setWorkingDirectoryInvalid(!exists);
162
+ setWorkingDirectoryPending(false);
163
+ }, reportFailure);
164
+ }, [operation, options.workingDirectoryAccess, reportFailure, reportWorkingDirectory]);
165
+ const clearWorkingDirectory = useCallback(() => {
166
+ operation.supersede();
167
+ reportWorkingDirectory(null);
168
+ setWorkingDirectoryInvalid(false);
169
+ setWorkingDirectoryPending(false);
170
+ setWorkingDirectoryError(null);
171
+ }, [operation, reportWorkingDirectory]);
172
+ return {
173
+ workingDirectory,
174
+ recentDirectories,
175
+ workingDirectoryInvalid,
176
+ workingDirectoryPending,
177
+ workingDirectoryError,
178
+ openWorkingDirectoryPicker,
179
+ pickWorkingDirectory,
180
+ selectRecentDirectory,
181
+ clearWorkingDirectory,
182
+ };
183
+ }
184
+ //# sourceMappingURL=useChatPaneWorkingDirectory.hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatPaneWorkingDirectory.hooks.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/hooks/useChatPaneWorkingDirectory.hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export type { AgentRuntimePickerProps, ByokRuntimeSummary, ChatPaneActivity, ChatPaneAgent, ChatPaneAgentBridgeAccess, ChatPaneAgentControlOptions, ChatPaneAgentOption, ChatPaneAgentSelection, ChatPaneAgentToolAction, ChatPaneAttachmentUploadOptions, ChatPaneComposerHandle, ChatPaneProps, ChatPaneRunContext, ChatPaneRunContextInput, ChatPaneRuntimeAccess, ChatPaneVariant, ChatPaneWorkingDirectoryAccess, RuntimePickerPlacement, } from './types.js';
2
+ export { CHAT_PANE_AGENT_TOOLS, type ChatPaneAgentToolDef, type ChatPaneAgentToolInputSchema, type ChatPaneAgentToolRisk, } from './agent-tools.js';
3
+ export { defaultChatPaneSelection, orderChatPaneAgents, resolveChatPaneSelection, } from './rules.js';
4
+ export { createDaemonAttachmentUploader, type CreateDaemonAttachmentUploaderOptions, } from './create-daemon-attachment-uploader.js';
5
+ export { createMcpUiToolCaller, type CreateMcpUiToolCallerOptions, type McpUiToolCallRequest, } from './create-mcp-ui-tool-caller.js';
6
+ export { useChatPane, type UseChatPaneOptions, type UseChatPaneResult, } from './hooks/useChatPane.hooks.js';
7
+ export { useChatPaneAgentControl, type UseChatPaneAgentControlOptions, } from './hooks/useChatPaneAgentControl.hooks.js';
8
+ export { useChatPaneWorkingDirectory, type UseChatPaneWorkingDirectoryOptions, type UseChatPaneWorkingDirectoryResult, } from './hooks/useChatPaneWorkingDirectory.hooks.js';
9
+ export { useChatPaneRuntimeInventory, type UseChatPaneRuntimeInventoryOptions, type UseChatPaneRuntimeInventoryResult, } from './hooks/useChatPaneRuntimeInventory.hooks.js';
10
+ export { AgentRuntimePicker, } from './components/AgentRuntimePicker.js';
11
+ export { ChatPane } from './components/ChatPane.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,EAC9B,KAAK,qCAAqC,GAC3C,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,GACvC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { CHAT_PANE_AGENT_TOOLS, } from './agent-tools.js';
2
+ export { defaultChatPaneSelection, orderChatPaneAgents, resolveChatPaneSelection, } from './rules.js';
3
+ export { createDaemonAttachmentUploader, } from './create-daemon-attachment-uploader.js';
4
+ export { createMcpUiToolCaller, } from './create-mcp-ui-tool-caller.js';
5
+ export { useChatPane, } from './hooks/useChatPane.hooks.js';
6
+ export { useChatPaneAgentControl, } from './hooks/useChatPaneAgentControl.hooks.js';
7
+ export { useChatPaneWorkingDirectory, } from './hooks/useChatPaneWorkingDirectory.hooks.js';
8
+ export { useChatPaneRuntimeInventory, } from './hooks/useChatPaneRuntimeInventory.hooks.js';
9
+ export { AgentRuntimePicker, } from './components/AgentRuntimePicker.js';
10
+ export { ChatPane } from './components/ChatPane.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,qBAAqB,GAItB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,GAE/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,qBAAqB,GAGtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,WAAW,GAGZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,GAExB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,2BAA2B,GAG5B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,2BAA2B,GAG5B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { runtimeOptionLabel, runtimePopoverPosition } from '../hooks/useAgentRuntimePicker.hooks.js';
2
+ import type { AgentRuntimePickerProps, ChatPaneAgent } from '../../types.js';
3
+ export { runtimeOptionLabel, runtimePopoverPosition };
4
+ export declare function runtimeAgentStatus(agent: ChatPaneAgent): string;
5
+ /**
6
+ * Renders the package-owned local/API, agent, model, and reasoning picker.
7
+ *
8
+ * @complexity Time: O(n) in the runtime inventory; space: O(n) for ordering.
9
+ * @overallScore 100/100
10
+ */
11
+ export declare function AgentRuntimePicker({ agents, value, onChange, onRescan, scanning, daemonOnline, placement, executionMode, apiModeAvailable, onExecutionModeChange, byokRuntime, onByokModelChange, agentIconBasePath, }: AgentRuntimePickerProps): import("react").JSX.Element;
12
+ //# sourceMappingURL=AgentRuntimePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentRuntimePicker.d.ts","sourceRoot":"","sources":["../../../../../../src/react/features/chat-pane/react/components/AgentRuntimePicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,uBAAuB,EAEvB,aAAa,EAEd,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;AAEtD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAI/D;AA0PD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,YAAmB,EACnB,SAAgB,EAChB,aAAuB,EACvB,gBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,iBAAkC,GACnC,EAAE,uBAAuB,+BA0HzB"}