@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,176 @@
1
+ const SLASH_QUERY_RE = /^\/([^\s/]*)(?:(\s+)([\s\S]*))?$/;
2
+ /**
3
+ * Open Design's active slash-token rule (`/^\/([^\s/]*)$/`), extended to admit one optional
4
+ * trailing argument while staying anchored end-to-end. The command segment itself is unchanged —
5
+ * still no internal whitespace or slash — so every existing no-argument caller parses identically
6
+ * to before this extension.
7
+ */
8
+ export function parseComposerSlashQuery(draft) {
9
+ const match = SLASH_QUERY_RE.exec(draft);
10
+ if (!match)
11
+ return null;
12
+ const [, command, separator, rest] = match;
13
+ return { command: command ?? '', argument: separator === undefined ? null : (rest ?? '') };
14
+ }
15
+ /**
16
+ * Once a separator has been typed, only an item whose declared `command` exactly equals the typed
17
+ * command word survives. Required so that typing `/mcp supabase` cannot still surface an unrelated
18
+ * `/mcp-docs` row (a substring match on "mcp" would keep it alive) and, worse, hand that row a
19
+ * `server-id` argument that was typed for a different command. An item with no `command` is
20
+ * dropped outright — it declared no argument grammar to lock onto.
21
+ */
22
+ function matchesLockedCommand(item, normalizedCommand) {
23
+ return item.command !== undefined && item.command.toLowerCase() === normalizedCommand;
24
+ }
25
+ /**
26
+ * Still typing the command word: every item — command-bearing or not — is eligible via the
27
+ * existing case-insensitive fuzzy match over `command`/`label`/`description`/`kind`/`keywords`.
28
+ */
29
+ function matchesFuzzyCommand(item, normalizedCommand) {
30
+ if (normalizedCommand === '')
31
+ return true;
32
+ const searchable = [item.command, item.label, item.description, item.kind, ...(item.keywords ?? [])]
33
+ .filter((value) => typeof value === 'string')
34
+ .join(' ')
35
+ .toLowerCase();
36
+ return searchable.includes(normalizedCommand);
37
+ }
38
+ /**
39
+ * Flattens non-empty groups while preserving host order, then filters.
40
+ *
41
+ * Two modes, selected by `query.argument`: {@link matchesFuzzyCommand} while the command word is
42
+ * still being typed (`argument === null`), {@link matchesLockedCommand} once a separator has been
43
+ * typed (`argument !== null`) — see each helper's own doc for why the rule changes at that point.
44
+ */
45
+ export function filterComposerDiscovery(groups, query) {
46
+ const normalizedCommand = query.command.trim().toLowerCase();
47
+ const matchesQuery = query.argument !== null ? matchesLockedCommand : matchesFuzzyCommand;
48
+ const matches = [];
49
+ for (const group of groups) {
50
+ for (const item of group.items) {
51
+ if (matchesQuery(item, normalizedCommand))
52
+ matches.push({ groupId: group.id, groupLabel: group.label, item });
53
+ }
54
+ }
55
+ return matches;
56
+ }
57
+ /**
58
+ * Decides what selecting `item` (via click, Enter, or Tab) should do against the current `draft`.
59
+ *
60
+ * A plain item (no `command`) is unaffected — always resolves to `'invoke'`, preserving today's
61
+ * one-step select-and-replace behavior exactly. A command-bearing item completes the trigger
62
+ * instead of invoking whenever invoking now would be premature or meaningless:
63
+ * - the typed command word is only a fuzzy/prefix match, not the declared word itself (Enter
64
+ * disambiguates rather than guessing which of several prefix-matched commands was meant);
65
+ * - the item takes an argument and none has been typed yet (no separator);
66
+ * - the argument is declared `required` and only whitespace follows the separator.
67
+ *
68
+ * Everything else invokes: a no-argument command the moment its exact word is typed, or an
69
+ * argument-taking command the moment a separator exists and (if required) the argument is
70
+ * non-blank.
71
+ */
72
+ export function resolveComposerSlashInvocation(draft, item) {
73
+ const query = parseComposerSlashQuery(draft);
74
+ if (!query)
75
+ return null;
76
+ if (!item.command)
77
+ return { type: 'invoke' };
78
+ const completeTo = () => ({
79
+ type: 'complete',
80
+ draft: `/${item.command}${item.argument ? ' ' : ''}`,
81
+ });
82
+ if (query.command.trim().toLowerCase() !== item.command.toLowerCase())
83
+ return completeTo();
84
+ if (!item.argument)
85
+ return { type: 'invoke', argument: query.argument };
86
+ if (query.argument === null)
87
+ return completeTo();
88
+ if (item.argument.required && query.argument.trim() === '')
89
+ return completeTo();
90
+ return { type: 'invoke', argument: query.argument };
91
+ }
92
+ /** Replaces the complete active slash token; callers only invoke this after the parser matches. */
93
+ export function replaceComposerSlashTrigger(draft, insertText) {
94
+ return parseComposerSlashQuery(draft) === null ? draft : insertText;
95
+ }
96
+ /** Adds a menu-selected resource to an existing prompt without concatenating words. */
97
+ export function appendComposerDiscovery(draft, insertText) {
98
+ if (draft.trim() === '')
99
+ return insertText;
100
+ return `${draft.trimEnd()} ${insertText}`;
101
+ }
102
+ /** Maps palette keys without owning React state; arrows are intentionally circular at the caller. */
103
+ export function resolveComposerSlashKeyAction(key, shiftKey) {
104
+ if (key === 'ArrowDown')
105
+ return { type: 'move', offset: 1 };
106
+ if (key === 'ArrowUp')
107
+ return { type: 'move', offset: -1 };
108
+ if ((key === 'Enter' || key === 'Tab') && !shiftKey)
109
+ return { type: 'select' };
110
+ if (key === 'Escape')
111
+ return { type: 'dismiss' };
112
+ return { type: 'none' };
113
+ }
114
+ /**
115
+ * Vertical half of a composer popover's viewport-fixed position, shared by
116
+ * {@link composerDiscoveryMenuPosition} and {@link composerSlashMenuPosition}.
117
+ *
118
+ * Both popovers were previously plain `position: absolute` descendants of `.jini-composer`, which
119
+ * is itself nested inside `.jini-chat-pane__body` — an ancestor that sets `overflow: hidden`
120
+ * unconditionally (`styles.ts`), plus whatever clipping box a host's own dock chrome adds on top
121
+ * (Tovu admin's `.admin-chat-dock` is `overflow: hidden` too, and its mobile "peek" sheet caps the
122
+ * whole dock at `58vh`). CSS alone cannot know how much room that leaves above the composer on a
123
+ * given host; when the popover's natural content is taller than the available space, the
124
+ * ancestor's hard clip boundary slices through whichever row sits at the clip line instead of the
125
+ * popover's own internal scroll doing so — reported as the list reading "clipped mid-item" rather
126
+ * than cleanly scrolled. `position: fixed` escapes every ancestor's `overflow` (none of them sets
127
+ * `transform`/`filter`/`contain`/`will-change: transform`, which is the only thing that would trap
128
+ * a fixed-position descendant), the same fix `useAgentRuntimePicker.hooks.ts`'s
129
+ * `runtimePopoverPosition('up', ...)` already applies to the sibling runtime popover for the
130
+ * identical reason.
131
+ *
132
+ * @complexity Time/space: O(1).
133
+ */
134
+ function verticalUpPosition(anchorTop) {
135
+ const gap = 6; // matches the reference stylesheet's `bottom: calc(100% + 6px)`
136
+ const margin = 8; // keeps the popover off the literal viewport edge on a very short window
137
+ const maxHeightCap = 280; // matches the reference stylesheet's unconditional `max-height: 280px`
138
+ return {
139
+ position: 'fixed',
140
+ bottom: Math.max(margin, window.innerHeight - anchorTop + gap),
141
+ maxHeight: Math.min(maxHeightCap, Math.max(0, anchorTop - gap - margin)),
142
+ zIndex: 8, // matches the reference stylesheet's `.jini-composer-discovery-menu`/`-slash-menu`
143
+ };
144
+ }
145
+ /**
146
+ * Viewport-fixed position for the "+" discovery menu, anchored to `.jini-composer`'s live rect.
147
+ * Keeps the menu's existing left-aligned, width-capped footprint (`inset-inline-start: 8px; width:
148
+ * min(280px, 100vw - 32px)` in the reference stylesheet) — only the escape-the-ancestor-clip and
149
+ * available-space clamp from {@link verticalUpPosition} are new.
150
+ *
151
+ * @complexity Time/space: O(1).
152
+ */
153
+ export function composerDiscoveryMenuPosition(composerRect) {
154
+ const inset = 8;
155
+ return {
156
+ ...verticalUpPosition(composerRect.top),
157
+ left: composerRect.left + inset,
158
+ width: Math.min(280, window.innerWidth - 32),
159
+ };
160
+ }
161
+ /**
162
+ * Viewport-fixed position for the slash-command palette, anchored to `.jini-composer`'s live
163
+ * rect. Keeps the palette's existing full-width-minus-insets footprint (`inset-inline: 8px` in
164
+ * the reference stylesheet).
165
+ *
166
+ * @complexity Time/space: O(1).
167
+ */
168
+ export function composerSlashMenuPosition(composerRect) {
169
+ const inset = 8;
170
+ return {
171
+ ...verticalUpPosition(composerRect.top),
172
+ left: composerRect.left + inset,
173
+ width: Math.max(0, composerRect.width - inset * 2),
174
+ };
175
+ }
176
+ //# sourceMappingURL=composer-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer-discovery.js","sourceRoot":"","sources":["../../../src/react/components/composer-discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @module ext-event-renderer-registry
3
+ *
4
+ * Per-name renderer registry for `AgentEvent`'s `kind: 'ext'` escape hatch — the sibling of
5
+ * `tool-renderer-registry.ts`, which does the same job for `tool_use`/`tool_result` pairs.
6
+ *
7
+ * `kind: 'ext'` exists precisely for host-specific event kinds chat-core doesn't know about (its
8
+ * own doc names `live_artifact`/`plugin_candidate` as examples). Before this module, `MessageRow`
9
+ * silently dropped every `ext` event — nothing rendered them. This registry is what lets a host
10
+ * (or a protocol package like `@jini-ai/a2ui`) claim a `name` and render every event carrying it,
11
+ * inline in the transcript, the same extensibility shape `registerToolRenderer` already gives
12
+ * tool calls.
13
+ *
14
+ * Unlike a tool renderer (one `tool_use`/`tool_result` pair per row), an ext-event renderer
15
+ * receives every event sharing its `name` for the whole message, in arrival order — some
16
+ * protocols (A2UI's `createSurface` → `updateComponents` → ... sequence) are a stream a single
17
+ * snapshot can't represent; the renderer owns folding that sequence into whatever live state it
18
+ * needs (e.g. by feeding each one through a stateful interpreter).
19
+ */
20
+ import type { ReactNode } from 'react';
21
+ /** Render-prop payload for one `name` group of `kind: 'ext'` events belonging to a message. */
22
+ export interface ExtEventRenderProps {
23
+ name: string;
24
+ /** Every matching event's `data`, in arrival order. Never empty. */
25
+ events: readonly unknown[];
26
+ /** Whether the owning run is still streaming — more events with this `name` may still arrive. */
27
+ runStreaming: boolean;
28
+ runSucceeded: boolean;
29
+ /** The owning message's `ChatMessage.runId`, if known — a renderer that needs to send something back to this specific run (e.g. an A2UI action) needs this; omitted (`undefined`) for a message with no run association. */
30
+ runId: string | undefined;
31
+ }
32
+ /**
33
+ * Ext-event render callback. Runs inline during `MessageRow`'s render — hook-free, like
34
+ * `ToolRenderer`. Return a component element (`(props) => <MyStatefulCard {...props} />`) if you
35
+ * need hooks/local state (e.g. a memoized interpreter instance).
36
+ *
37
+ * Returning `null`/`undefined`/`false` renders nothing for this group — there is no built-in
38
+ * fallback card the way `ToolCard` has one, since an unrecognized `ext` name has no generic
39
+ * rendering that makes sense (unlike an unrecognized tool, which can always fall back to a
40
+ * name+JSON card).
41
+ */
42
+ export type ExtEventRenderer = (props: ExtEventRenderProps) => ReactNode;
43
+ /**
44
+ * Register a renderer for an ext-event `name`. Returns an unregister handle so tests / hot-reloads
45
+ * can dispose cleanly. Re-registering the same name overwrites — last writer wins.
46
+ */
47
+ export declare function registerExtEventRenderer(name: string, renderer: ExtEventRenderer): () => void;
48
+ export declare function getExtEventRenderer(name: string): ExtEventRenderer | undefined;
49
+ /** Visible mainly for tests. */
50
+ export declare function clearExtEventRenderers(): void;
51
+ //# sourceMappingURL=ext-event-renderer-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ext-event-renderer-registry.d.ts","sourceRoot":"","sources":["../../src/react/ext-event-renderer-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,iGAAiG;IACjG,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,4NAA4N;IAC5N,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,SAAS,CAAC;AAIzE;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAK7F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE9E;AAED,gCAAgC;AAChC,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
@@ -0,0 +1,20 @@
1
+ const renderers = new Map();
2
+ /**
3
+ * Register a renderer for an ext-event `name`. Returns an unregister handle so tests / hot-reloads
4
+ * can dispose cleanly. Re-registering the same name overwrites — last writer wins.
5
+ */
6
+ export function registerExtEventRenderer(name, renderer) {
7
+ renderers.set(name, renderer);
8
+ return () => {
9
+ if (renderers.get(name) === renderer)
10
+ renderers.delete(name);
11
+ };
12
+ }
13
+ export function getExtEventRenderer(name) {
14
+ return renderers.get(name);
15
+ }
16
+ /** Visible mainly for tests. */
17
+ export function clearExtEventRenderers() {
18
+ renderers.clear();
19
+ }
20
+ //# sourceMappingURL=ext-event-renderer-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ext-event-renderer-registry.js","sourceRoot":"","sources":["../../src/react/ext-event-renderer-registry.ts"],"names":[],"mappings":"AA6CA,MAAM,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,QAA0B;IAC/E,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9B,OAAO,GAAG,EAAE;QACV,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,QAAQ;YAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,sBAAsB;IACpC,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type CapabilityDef, type CapabilityInputSchema, type CapabilityRisk } from '@jini-ai/agentic';
2
+ /** @deprecated Use `CapabilityRisk` from `@jini-ai/agentic`. */
3
+ export type ChatPaneAgentToolRisk = CapabilityRisk;
4
+ /** @deprecated Use `CapabilityInputSchema` from `@jini-ai/agentic`. */
5
+ export type ChatPaneAgentToolInputSchema = CapabilityInputSchema;
6
+ /** @deprecated Use `CapabilityDef` from `@jini-ai/agentic`. */
7
+ export type ChatPaneAgentToolDef = CapabilityDef;
8
+ /**
9
+ * The bounded, explicit set of chat-pane capabilities every transport surface hosts.
10
+ *
11
+ * @deprecated Use `CHAT_CAPABILITIES` from `@jini-ai/chat/core`.
12
+ */
13
+ export declare const CHAT_PANE_AGENT_TOOLS: readonly CapabilityDef[];
14
+ //# sourceMappingURL=agent-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/agent-tools.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvG,gEAAgE;AAChE,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACnD,uEAAuE;AACvE,MAAM,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AACjE,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,aAAa,EAAsB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module @jini-ai/chat-react/features/chat-pane/agent-tools
3
+ *
4
+ * The chat pane's capability manifest now lives in `@jini-ai/chat/core` (`CHAT_CAPABILITIES`,
5
+ * chat-specific) and `@jini-ai/agentic` (`CapabilityDef` and the rest of the vocabulary,
6
+ * framework-free and dependency-free) — a Node MCP server or HTTP route table can host the same
7
+ * list without pulling React and the component graph into its process, and a future Vue or
8
+ * Svelte binding reads the identical definitions.
9
+ *
10
+ * This file remains as the React package's view of that list, keeping the older
11
+ * `ChatPaneAgentTool*` names working for existing importers. New code should import from
12
+ * `@jini-ai/agentic` directly.
13
+ */
14
+ import { CHAT_CAPABILITIES } from '@jini-ai/chat/core';
15
+ import {} from '@jini-ai/agentic';
16
+ /**
17
+ * The bounded, explicit set of chat-pane capabilities every transport surface hosts.
18
+ *
19
+ * @deprecated Use `CHAT_CAPABILITIES` from `@jini-ai/chat/core`.
20
+ */
21
+ export const CHAT_PANE_AGENT_TOOLS = CHAT_CAPABILITIES;
22
+ //# sourceMappingURL=agent-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-tools.js","sourceRoot":"","sources":["../../../../src/react/features/chat-pane/agent-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAuE,MAAM,kBAAkB,CAAC;AASvG;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA6B,iBAAiB,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/components/AgentRuntimePicker.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,uBAAuB,EAEvB,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,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,EAIjB,iBAAiB,GAClB,EAAE,uBAAuB,+BA0HzB"}
@@ -0,0 +1,106 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { createPortal } from 'react-dom';
3
+ import { AgentIcon, RemixIcon, SearchableModelSelect } from '@jini-ai/ui';
4
+ import { useT } from '../../../hooks/context.js';
5
+ import { defaultChatPaneSelection } from '../rules.js';
6
+ import { runtimeOptionLabel, runtimePopoverPosition, useAgentRuntimePicker, } from '../hooks/useAgentRuntimePicker.hooks.js';
7
+ // Re-exported so this module's public surface is unchanged by the behavior extraction; both are
8
+ // pure and now live beside the hook that consumes them.
9
+ export { runtimeOptionLabel, runtimePopoverPosition };
10
+ export function runtimeAgentStatus(agent) {
11
+ if (agent.available === false)
12
+ return agent.diagnostic ?? 'Not found on PATH';
13
+ if (agent.authStatus === 'missing')
14
+ return 'Installed · sign-in required';
15
+ return agent.version ?? 'Installed';
16
+ }
17
+ function RuntimeModeButtons({ executionMode, daemonOnline, apiModeAvailable, onExecutionModeChange, t, }) {
18
+ return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: `jini-runtime-mode${executionMode === 'local' ? ' is-active' : ''}`, disabled: !daemonOnline && executionMode !== 'local', onClick: () => onExecutionModeChange?.('local'), children: [_jsx(RemixIcon, { name: "terminal-box-line", size: 18 }), _jsx("span", { children: t('Use Local CLI') }), _jsx("span", { className: "jini-runtime-mode__meta", children: !daemonOnline ? t('offline') : executionMode === 'local' ? t('active') : '' }), executionMode === 'local' ? (_jsx(RemixIcon, { name: "check-line", size: 19, className: "jini-runtime-check" })) : null] }), _jsxs("button", { type: "button", className: `jini-runtime-mode${executionMode === 'api' ? ' is-active' : ''}`, disabled: !apiModeAvailable, onClick: () => onExecutionModeChange?.('api'), children: [_jsx(RemixIcon, { name: "link", size: 18 }), _jsx("span", { children: t('Use API · BYOK') }), !apiModeAvailable ? _jsx("span", { className: "jini-runtime-mode__meta", children: t('not configured') }) : null, executionMode === 'api' ? (_jsx(RemixIcon, { name: "check-line", size: 19, className: "jini-runtime-check" })) : null] })] }));
19
+ }
20
+ function RuntimeAgentList({ orderedAgents, value, onChange, agentIconBasePath, t, }) {
21
+ if (orderedAgents.length === 0) {
22
+ return _jsx("div", { className: "jini-runtime-empty", children: t('No available code agents') });
23
+ }
24
+ return (_jsx(_Fragment, { children: orderedAgents.map((agent) => {
25
+ const active = agent.id === value.agentId;
26
+ const status = runtimeAgentStatus(agent);
27
+ return (_jsxs("button", { type: "button", role: "radio", "aria-checked": active, className: `jini-runtime-agent${active ? ' is-active' : ''}`, "aria-current": active ? 'true' : undefined, "aria-label": `${agent.name} · ${status}`, onClick: () => onChange(defaultChatPaneSelection(agent)), children: [_jsx(AgentIcon, { id: agent.id, size: 20, className: "jini-runtime-agent-icon", ...(agentIconBasePath === undefined ? {} : { basePath: agentIconBasePath }) }), _jsx("span", { className: "jini-runtime-agent__copy", children: _jsx("strong", { children: agent.name }) }), _jsx("span", { className: "jini-runtime-agent__status", children: active ? t('selected') : status }), active ? (_jsx(RemixIcon, { name: "check-line", size: 19, className: "jini-runtime-check" })) : null] }, agent.id));
28
+ }) }));
29
+ }
30
+ function RuntimeModelSelects({ selectedAgent, value, onChange, t }) {
31
+ if (!selectedAgent)
32
+ return null;
33
+ return (_jsxs("div", { className: "jini-runtime-models", children: [(selectedAgent.models?.length ?? 0) > 0 ? (_jsxs("label", { className: "jini-runtime-select", children: [_jsx("span", { children: t('Model') }), _jsx("select", { "aria-label": t('Model'), value: value.model ?? '', onChange: (event) => onChange({
34
+ agentId: value.agentId,
35
+ model: event.target.value,
36
+ ...(value.reasoning ? { reasoning: value.reasoning } : {}),
37
+ }), children: selectedAgent.models?.map((model) => (_jsx("option", { value: model.id, children: model.label }, model.id))) })] })) : null, (selectedAgent.reasoningOptions?.length ?? 0) > 0 ? (_jsxs("label", { className: "jini-runtime-select", children: [_jsx("span", { children: t('Reasoning') }), _jsx("select", { "aria-label": t('Reasoning'), value: value.reasoning ?? '', onChange: (event) => onChange({
38
+ agentId: value.agentId,
39
+ ...(value.model ? { model: value.model } : {}),
40
+ reasoning: event.target.value,
41
+ }), children: selectedAgent.reasoningOptions?.map((option) => (_jsx("option", { value: option.id, children: option.label }, option.id))) })] })) : null] }));
42
+ }
43
+ /**
44
+ * What the popover shows in place of the CLI inventory while `executionMode` is `'api'`: the model
45
+ * the credential will run, and nothing else.
46
+ *
47
+ * Everything this replaces (the agent radios, the "Default (CLI config)" select, Reasoning, Rescan
48
+ * PATH) is a property of a *detected CLI process* and has no effect on an API turn — rendering them
49
+ * here was the defect.
50
+ *
51
+ * ## Why the same `SearchableModelSelect` the settings screen uses
52
+ *
53
+ * Not a look-alike `<select>`. This is literally the control `ByokProviderForm`'s Model field
54
+ * renders, fed the same discovered list and writing back to the same stored config, so the two
55
+ * surfaces cannot drift: pick a model here and the settings screen shows it, and vice versa. Its
56
+ * search box also matters at this size — a live Gemini key discovers ~40 models, which is past the
57
+ * point where a plain dropdown in a 320px popover is usable.
58
+ *
59
+ * Falls back to plain text when the host supplies no `onByokModelChange` or no model list. That is
60
+ * a real state, not a degenerate one: a host without discovery has nothing to offer a picker, and a
61
+ * disabled dropdown would read as "editable once something is enabled" when nothing here will
62
+ * enable it.
63
+ */
64
+ function RuntimeByokDetails({ byokRuntime, onByokModelChange, t }) {
65
+ const model = byokRuntime?.model?.trim();
66
+ const models = byokRuntime?.models ?? [];
67
+ const editable = onByokModelChange !== undefined && models.length > 0;
68
+ return (_jsxs("div", { className: "jini-runtime-models", children: [_jsxs("div", { className: "jini-runtime-select jini-runtime-byok-model", children: [_jsx("span", { children: t('Model') }), editable ? (_jsx(SearchableModelSelect, { models: models, value: model ?? '', onChange: (next) => onByokModelChange(next), ariaLabel: t('Model'), searchPlaceholder: t('Search models'),
69
+ // The menu portals to `document.body` at the package default `z-index: 60`, while this
70
+ // popover positions itself at 1000 — so without this the model list opens BEHIND the
71
+ // popover that owns it. Raised here rather than in the shared stylesheet because 60 is
72
+ // right for every other consumer; only this one opens a portalled menu from inside an
73
+ // already-elevated surface.
74
+ menuClassName: "jini-runtime-model-menu" })) : (_jsx("strong", { children: model || t('No model configured') }))] }), !model && !editable ? (_jsx("div", { className: "jini-runtime-empty", children: t('Set a model in the BYOK settings before sending a message.') })) : null] }));
75
+ }
76
+ function RuntimeRescanFooter({ onRescan, scanning, t }) {
77
+ if (onRescan) {
78
+ return (_jsxs("button", { type: "button", className: "jini-runtime-rescan", disabled: scanning, onClick: onRescan, children: [_jsx(RemixIcon, { name: "refresh-line", size: 17, ...(scanning ? { className: 'jini-runtime-spinner' } : {}) }), _jsx("span", { children: scanning ? t('Scanning PATH…') : t('Rescan PATH') })] }));
79
+ }
80
+ if (scanning) {
81
+ return _jsx("div", { className: "jini-runtime-empty", children: t('Scanning PATH…') });
82
+ }
83
+ return null;
84
+ }
85
+ /**
86
+ * Renders the package-owned local/API, agent, model, and reasoning picker.
87
+ *
88
+ * @complexity Time: O(n) in the runtime inventory; space: O(n) for ordering.
89
+ * @overallScore 100/100
90
+ */
91
+ export function AgentRuntimePicker({ agents, value, onChange, onRescan, scanning = false, daemonOnline = true, placement = 'up', executionMode = 'local', apiModeAvailable = false, onExecutionModeChange, byokRuntime, onByokModelChange,
92
+ // No default here (was '/agent-icons'): omitted means "let AgentIcon fall back to its own
93
+ // bundled icon set" — see AgentIcon.tsx's BUNDLED_ICON_URLS. A host that still wants to vendor
94
+ // its own asset directory can pass this explicitly, same as before.
95
+ agentIconBasePath, }) {
96
+ const t = useT();
97
+ const { dialogId, open, position, triggerRef, popoverRef, orderedAgents, selectedAgent, modelLabel, runtimeSummary, triggerTitle, originTheme, toggleOpen, handlePopoverKeyDown, } = useAgentRuntimePicker({ agents, value, placement, t, executionMode, byokRuntime });
98
+ // The one branch this component makes. Everything below the mode buttons describes a detected CLI
99
+ // — the agent radios, its model and reasoning selects, and the PATH rescan — and none of it is
100
+ // true of, or has any effect on, an API turn. Previously all of it rendered in both modes, so an
101
+ // operator on BYOK saw a CLI named as "selected" and a model reading "Default (CLI config)"
102
+ // while their messages went to a provider over an API key.
103
+ const isApi = executionMode === 'api';
104
+ return (_jsxs("div", { className: "jini-runtime-picker", children: [_jsxs("button", { ref: triggerRef, type: "button", className: "jini-runtime-trigger", "aria-label": t('Choose AI runtime'), "aria-haspopup": "dialog", "aria-expanded": open, "aria-controls": dialogId, onClick: toggleOpen, children: [isApi ? (byokRuntime?.iconId ? (_jsx(AgentIcon, { id: byokRuntime.iconId, size: 22, className: "jini-runtime-agent-icon", ...(agentIconBasePath === undefined ? {} : { basePath: agentIconBasePath }) })) : (_jsx(RemixIcon, { name: "link", size: 20, className: "jini-runtime-agent-icon" }))) : (_jsx(AgentIcon, { id: selectedAgent?.id ?? '', size: 22, className: "jini-runtime-agent-icon", ...(agentIconBasePath === undefined ? {} : { basePath: agentIconBasePath }) })), _jsxs("span", { className: "jini-runtime-trigger__copy", children: [_jsx("strong", { children: triggerTitle }), _jsx("small", { children: modelLabel })] }), _jsx(RemixIcon, { name: "arrow-down-s-line", size: 15, className: "jini-runtime-trigger__chevron" })] }), open && position ? createPortal(_jsxs("div", { ref: popoverRef, className: "jini-runtime-popover", ...(originTheme ? { 'data-theme': originTheme } : {}), id: dialogId, role: "dialog", "aria-label": t('Choose AI runtime'), "aria-modal": "false", style: position, onKeyDown: handlePopoverKeyDown, children: [_jsxs("div", { className: "jini-runtime-popover__head", children: [_jsx("strong", { children: executionMode === 'local' ? t('Local CLI') : t('API · BYOK') }), _jsx("span", { children: runtimeSummary })] }), _jsx(RuntimeModeButtons, { executionMode: executionMode, daemonOnline: daemonOnline, apiModeAvailable: apiModeAvailable, onExecutionModeChange: onExecutionModeChange, t: t }), isApi ? (_jsx(RuntimeByokDetails, { byokRuntime: byokRuntime, onByokModelChange: onByokModelChange, t: t })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "jini-runtime-section-label", children: t('Code agent') }), _jsx("div", { role: "radiogroup", "aria-label": t('Code agent'), children: _jsx(RuntimeAgentList, { orderedAgents: orderedAgents, value: value, onChange: onChange, ...(agentIconBasePath === undefined ? {} : { agentIconBasePath }), t: t }) }), _jsx(RuntimeModelSelects, { selectedAgent: selectedAgent, value: value, onChange: onChange, t: t }), _jsx(RuntimeRescanFooter, { onRescan: onRescan, scanning: scanning, t: t })] }))] }), document.body) : null] }));
105
+ }
106
+ //# sourceMappingURL=AgentRuntimePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentRuntimePicker.js","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/AgentRuntimePicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ChatPaneProps } from '../types.js';
2
+ /**
3
+ * Renders the self-contained chat-pane composition, including runtime and
4
+ * working-directory orchestration owned by `@jini-ai/chat-react`.
5
+ *
6
+ * @complexity Time/space: O(n) in rendered messages, agents, and suggestions.
7
+ * @overallScore 100/100
8
+ */
9
+ export declare function ChatPane({ transport, agents: injectedAgents, runtimeAccess, runtimeStatusPollMs, title, variant, initialMessages, conversationId, initialSelection, selection: controlledSelection, onSelectionChange, runContext, agentControl, onActivityChange, onMessagesChange, onRescanAgents, scanningAgents, daemonOnline, executionMode, apiModeAvailable, onExecutionModeChange, byokRuntime, onByokModelChange, initialDraft, composerHandle, placeholder, suggestions, workingDirectory, initialWorkingDirectory, onChangeWorkingDirectory, workingDirectoryAccess, projectFileNames, uploadAttachments, attachmentAccept, disabled, runtimePickerPlacement, composerSlots, header, leadingAccessory, footer, className, style, }: ChatPaneProps): import("react").JSX.Element;
10
+ //# sourceMappingURL=ChatPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatPane.d.ts","sourceRoot":"","sources":["../../../../../src/react/features/chat-pane/components/ChatPane.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,aAAa,EAId,MAAM,aAAa,CAAC;AA0SrB;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,MAAM,EAAE,cAA6B,EACrC,aAAa,EACb,mBAA2B,EAC3B,KAAK,EACL,OAAqB,EACrB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EAAE,mBAAmB,EAC9B,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAsB,EACtB,YAAmB,EACnB,aAAuB,EACvB,gBAAwB,EACxB,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,QAAgB,EAChB,sBAA6B,EAC7B,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,aAAa,+BAgJf"}