@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,863 @@
1
+ export const CHAT_PANE_STYLES = `
2
+ .jini-chat-pane {
3
+ --jini-chat-bg: #faf9f7;
4
+ --jini-chat-panel: #fdfcfa;
5
+ --jini-chat-text: #1a1916;
6
+ --jini-chat-text-strong: #0d0c0a;
7
+ --jini-chat-muted: #74716b;
8
+ --jini-chat-faint: #b3b0a8;
9
+ --jini-chat-border: #e1e5eb;
10
+ --jini-chat-border-strong: #c9d0da;
11
+ --jini-chat-border-soft: #edf0f4;
12
+ --jini-chat-subtle: #f4f5f7;
13
+ --jini-chat-accent: #c96442;
14
+ --jini-chat-accent-soft: #fbeee5;
15
+ --bg-panel: var(--jini-chat-panel);
16
+ --bg-subtle: var(--jini-chat-subtle);
17
+ --border: var(--jini-chat-border);
18
+ --border-strong: var(--jini-chat-border-strong);
19
+ --text: var(--jini-chat-text);
20
+ --text-strong: var(--jini-chat-text-strong);
21
+ --text-muted: var(--jini-chat-muted);
22
+ --danger: #e5484d;
23
+ --radius: 8px;
24
+ --radius-lg: 12px;
25
+ position: relative;
26
+ display: grid;
27
+ grid-template-rows: auto minmax(0, 1fr) auto;
28
+ min-width: 0;
29
+ min-height: 0;
30
+ height: 100%;
31
+ overflow: hidden;
32
+ color: var(--jini-chat-text);
33
+ background: var(--jini-chat-bg);
34
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei UI", "Noto Sans", Roboto, "Helvetica Neue", Arial, sans-serif;
35
+ font-size: 13.5px;
36
+ line-height: 1.5;
37
+ -webkit-font-smoothing: antialiased;
38
+ -moz-osx-font-smoothing: grayscale;
39
+ }
40
+ .jini-chat-pane button,
41
+ .jini-runtime-popover button,
42
+ .jini-runtime-popover select {
43
+ font: inherit;
44
+ }
45
+ .jini-chat-pane__header {
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: space-between;
49
+ min-height: 74px;
50
+ padding: 18px 22px 14px;
51
+ border-bottom: 1px solid var(--jini-chat-border-soft);
52
+ }
53
+ .jini-chat-pane__heading { min-width: 0; }
54
+ .jini-chat-pane__eyebrow {
55
+ display: block;
56
+ margin-bottom: 4px;
57
+ color: var(--jini-chat-muted);
58
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
59
+ font-size: 10px;
60
+ letter-spacing: .1em;
61
+ text-transform: uppercase;
62
+ }
63
+ .jini-chat-pane__title {
64
+ overflow: hidden;
65
+ margin: 0;
66
+ font-size: 21px;
67
+ font-weight: 650;
68
+ letter-spacing: -.025em;
69
+ text-overflow: ellipsis;
70
+ white-space: nowrap;
71
+ }
72
+ .jini-chat-pane__new-thread {
73
+ padding: 8px 12px;
74
+ color: var(--jini-chat-muted);
75
+ background: var(--jini-chat-panel);
76
+ border: 1px solid var(--jini-chat-border);
77
+ border-radius: 8px;
78
+ cursor: pointer;
79
+ }
80
+ .jini-chat-pane__body {
81
+ position: relative;
82
+ min-height: 0;
83
+ overflow: hidden;
84
+ }
85
+ .jini-chat-pane .jini-message-list {
86
+ height: 100%;
87
+ overflow-y: auto;
88
+ /*
89
+ * .jini-chat-pane__controls is an absolutely-positioned overlay (not a flex/grid sibling that
90
+ * pushes this list up), so its real height has to be reserved here instead. Measured against a
91
+ * live render: the composer + footer + working-directory row alone is already 179.75px, above
92
+ * the 170px this used to reserve -- the last message's tail rendered clipped under the overlay as
93
+ * a direct result. 240px adds real margin above that measurement rather than matching it exactly,
94
+ * because the composer also grows conditionally (a suggestions row, an attachment tray) that
95
+ * this measurement did not have present.
96
+ */
97
+ padding: 20px 22px 240px;
98
+ scrollbar-width: thin;
99
+ }
100
+ .jini-chat-pane .jini-message {
101
+ margin-bottom: 20px;
102
+ color: var(--jini-chat-text);
103
+ font-size: 14px;
104
+ line-height: 1.62;
105
+ }
106
+ /*
107
+ * Bubble on the content, not the row: MessageRow.tsx renders attachments as siblings of
108
+ * .jini-message-content inside .jini-message-user, each with their own chip styling -- bubbling
109
+ * the whole row would nest one background box inside another. This replaces a dead rule this file
110
+ * shipped with (.jini-message-row[data-role="user"] / .jini-message-row.user): MessageRow.tsx
111
+ * has never rendered a jini-message-row class or a data-role attribute, and a user message's
112
+ * root class is jini-message-user, not bare "user" -- the selector never matched anything real.
113
+ */
114
+ .jini-chat-pane .jini-message-user .jini-message-content {
115
+ margin-left: auto;
116
+ padding: 10px 13px;
117
+ width: fit-content;
118
+ max-width: 88%;
119
+ background: var(--jini-chat-subtle);
120
+ border-radius: 12px 12px 3px 12px;
121
+ }
122
+ .jini-chat-pane .jini-message-user .jini-message-attachments {
123
+ display: flex;
124
+ flex-wrap: wrap;
125
+ gap: 6px;
126
+ justify-content: flex-end;
127
+ margin-bottom: 4px;
128
+ }
129
+ .jini-chat-pane .jini-message-user .jini-message-attachment-chip {
130
+ font-size: 11px;
131
+ color: var(--jini-chat-muted);
132
+ background: var(--jini-chat-subtle);
133
+ border: 1px solid var(--jini-chat-border);
134
+ border-radius: 999px;
135
+ padding: 3px 10px;
136
+ }
137
+ .jini-chat-pane .jini-message-agent {
138
+ font-size: 11px;
139
+ font-weight: 700;
140
+ letter-spacing: .02em;
141
+ text-transform: uppercase;
142
+ color: var(--jini-chat-faint);
143
+ margin-bottom: 4px;
144
+ }
145
+ .jini-chat-pane .jini-message-error { color: var(--danger); font-size: 13px; }
146
+ .jini-chat-pane .jini-message-pending { color: var(--jini-chat-muted); font-size: 13px; font-style: italic; }
147
+ .jini-chat-pane__controls {
148
+ position: absolute;
149
+ right: 0;
150
+ bottom: 0;
151
+ left: 0;
152
+ z-index: 4;
153
+ padding: 0 16px 14px;
154
+ background: linear-gradient(to bottom, transparent, var(--jini-chat-bg) 22px);
155
+ }
156
+ .jini-chat-pane__suggestions {
157
+ display: flex;
158
+ gap: 8px;
159
+ margin: 0 2px 8px;
160
+ overflow-x: auto;
161
+ }
162
+ .jini-chat-pane__suggestion {
163
+ flex: 0 0 auto;
164
+ max-width: 290px;
165
+ overflow: hidden;
166
+ padding: 7px 11px;
167
+ color: var(--jini-chat-muted);
168
+ background: color-mix(in srgb, var(--jini-chat-panel) 92%, transparent);
169
+ border: 1px solid var(--jini-chat-border);
170
+ border-radius: 999px;
171
+ font-size: 11px;
172
+ text-overflow: ellipsis;
173
+ white-space: nowrap;
174
+ cursor: pointer;
175
+ }
176
+ .jini-chat-pane__error {
177
+ margin: 0 2px 8px;
178
+ padding: 8px 10px;
179
+ color: #8c2f20;
180
+ background: #fff1ed;
181
+ border: 1px solid #f2c8bb;
182
+ border-radius: 8px;
183
+ font-size: 12px;
184
+ }
185
+ .jini-chat-pane__status {
186
+ margin: 0 2px 8px;
187
+ padding: 8px 10px;
188
+ color: var(--jini-chat-muted);
189
+ background: var(--jini-chat-subtle);
190
+ border: 1px solid var(--jini-chat-border);
191
+ border-radius: 8px;
192
+ font-size: 12px;
193
+ }
194
+ .jini-chat-pane__drop-target {
195
+ position: relative;
196
+ margin: -8px -8px -8px;
197
+ padding: 6px;
198
+ border: 2px dashed transparent;
199
+ border-radius: 16px;
200
+ transition:
201
+ background-color .14s ease,
202
+ border-color .14s ease,
203
+ box-shadow .14s ease;
204
+ }
205
+ .jini-chat-pane__drop-target.is-dragging-files {
206
+ background: color-mix(in srgb, var(--jini-chat-accent-soft) 72%, transparent);
207
+ border-color: var(--jini-chat-accent);
208
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--jini-chat-accent) 15%, transparent);
209
+ }
210
+ .jini-chat-pane__drop-target.is-dragging-files .jini-composer {
211
+ background: color-mix(in srgb, var(--jini-chat-accent-soft) 58%, var(--jini-chat-panel));
212
+ border-color: color-mix(in srgb, var(--jini-chat-accent) 68%, var(--jini-chat-border));
213
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--jini-chat-accent) 10%, transparent);
214
+ }
215
+ .jini-chat-pane__drop-announcement {
216
+ position: absolute;
217
+ width: 1px;
218
+ height: 1px;
219
+ overflow: hidden;
220
+ clip: rect(0, 0, 0, 0);
221
+ white-space: nowrap;
222
+ clip-path: inset(50%);
223
+ }
224
+ .jini-chat-pane .jini-composer {
225
+ position: relative;
226
+ overflow: visible;
227
+ padding: 0;
228
+ background: var(--jini-chat-subtle);
229
+ border: 1px solid var(--jini-chat-border);
230
+ border-radius: 12px;
231
+ box-shadow: none;
232
+ transition: border-color .16s ease, box-shadow .16s ease;
233
+ }
234
+ .jini-chat-pane .jini-composer:focus-within {
235
+ background: var(--jini-chat-panel);
236
+ border-color: color-mix(in srgb, var(--jini-chat-accent) 22%, var(--jini-chat-border-strong));
237
+ box-shadow: 0 1px 2px rgba(26, 25, 22, .06), 0 0 0 1px rgba(201, 100, 66, .06);
238
+ }
239
+ .jini-chat-pane .jini-composer-leading {
240
+ padding: 8px 12px 0;
241
+ }
242
+ .jini-chat-pane .jini-attachment-tray {
243
+ display: flex;
244
+ flex-wrap: wrap;
245
+ gap: 6px;
246
+ max-height: 88px;
247
+ overflow-y: auto;
248
+ padding: 8px 10px 0;
249
+ scrollbar-width: thin;
250
+ }
251
+ .jini-chat-pane .jini-attachment-tray:empty { display: none; }
252
+ .jini-chat-pane .jini-attachment-chip {
253
+ display: inline-flex;
254
+ align-items: center;
255
+ box-sizing: border-box;
256
+ min-width: 0;
257
+ max-width: min(100%, 290px);
258
+ height: 36px;
259
+ padding: 3px 4px 3px 5px;
260
+ color: var(--jini-chat-text);
261
+ background: color-mix(in srgb, var(--jini-chat-panel) 88%, var(--jini-chat-subtle));
262
+ border: 1px solid var(--jini-chat-border);
263
+ border-radius: 9px;
264
+ box-shadow: 0 1px 1px rgba(13, 12, 10, .025);
265
+ }
266
+ .jini-chat-pane .jini-attachment-chip-body {
267
+ display: flex;
268
+ align-items: center;
269
+ min-width: 0;
270
+ gap: 7px;
271
+ }
272
+ .jini-chat-pane .jini-attachment-chip-icon {
273
+ display: grid;
274
+ flex: 0 0 auto;
275
+ place-items: center;
276
+ width: 26px;
277
+ height: 26px;
278
+ color: var(--jini-chat-muted);
279
+ background: var(--jini-chat-subtle);
280
+ border-radius: 7px;
281
+ }
282
+ .jini-chat-pane .jini-attachment-chip-icon.is-image {
283
+ color: var(--jini-chat-accent);
284
+ background: var(--jini-chat-accent-soft);
285
+ }
286
+ .jini-chat-pane .jini-attachment-chip-copy {
287
+ display: flex;
288
+ min-width: 0;
289
+ flex-direction: column;
290
+ line-height: 1.15;
291
+ }
292
+ .jini-chat-pane .jini-attachment-chip-name {
293
+ overflow: hidden;
294
+ font-size: 11.5px;
295
+ font-weight: 550;
296
+ text-overflow: ellipsis;
297
+ white-space: nowrap;
298
+ }
299
+ .jini-chat-pane .jini-attachment-chip-size {
300
+ color: var(--jini-chat-muted);
301
+ font-size: 9.5px;
302
+ }
303
+ .jini-chat-pane .jini-attachment-remove {
304
+ display: grid;
305
+ flex: 0 0 auto;
306
+ place-items: center;
307
+ width: 25px;
308
+ height: 25px;
309
+ margin-left: 4px;
310
+ padding: 0;
311
+ color: var(--jini-chat-muted);
312
+ background: transparent;
313
+ border: 0;
314
+ border-radius: 7px;
315
+ cursor: pointer;
316
+ }
317
+ .jini-chat-pane .jini-attachment-remove:hover,
318
+ .jini-chat-pane .jini-attachment-remove:focus-visible {
319
+ color: var(--jini-chat-text-strong);
320
+ background: var(--jini-chat-subtle);
321
+ outline: none;
322
+ }
323
+ .jini-chat-pane .jini-composer-input {
324
+ display: block;
325
+ box-sizing: border-box;
326
+ width: 100%;
327
+ min-height: 92px;
328
+ resize: none;
329
+ padding: 12px 14px 8px;
330
+ color: var(--jini-chat-text);
331
+ background: transparent;
332
+ border: 0;
333
+ outline: 0;
334
+ font-size: 13.5px;
335
+ line-height: 1.6;
336
+ }
337
+ .jini-chat-pane .jini-composer-input::placeholder { color: var(--jini-chat-faint); }
338
+ .jini-chat-pane .jini-composer-footer {
339
+ display: flex;
340
+ align-items: center;
341
+ justify-content: space-between;
342
+ min-height: 42px;
343
+ gap: 6px;
344
+ padding: 6px 8px 8px;
345
+ border-top: 1px solid var(--jini-chat-border-soft);
346
+ }
347
+ .jini-chat-pane .jini-composer-attachment-picker { display: inline-flex; }
348
+ .jini-chat-pane .jini-composer-file-input {
349
+ position: absolute;
350
+ width: 1px;
351
+ height: 1px;
352
+ overflow: hidden;
353
+ clip: rect(0, 0, 0, 0);
354
+ white-space: nowrap;
355
+ clip-path: inset(50%);
356
+ }
357
+ .jini-chat-pane .jini-composer-attach {
358
+ display: inline-flex;
359
+ align-items: center;
360
+ justify-content: center;
361
+ width: 32px;
362
+ height: 32px;
363
+ padding: 0;
364
+ color: var(--jini-chat-muted);
365
+ background: transparent;
366
+ border: 1px solid transparent;
367
+ border-radius: 8px;
368
+ cursor: pointer;
369
+ }
370
+ .jini-chat-pane .jini-composer-attach:hover:not(:disabled) {
371
+ color: var(--jini-chat-text);
372
+ background: var(--jini-chat-panel);
373
+ border-color: var(--jini-chat-border);
374
+ }
375
+ .jini-chat-pane .jini-composer-attach:disabled { opacity: .45; cursor: default; }
376
+ .jini-composer-spinner,
377
+ .jini-runtime-spinner { animation: jini-chat-spin .8s linear infinite; }
378
+ @keyframes jini-chat-spin { to { transform: rotate(360deg); } }
379
+ .jini-chat-pane .jini-composer-footer-accessories {
380
+ display: flex;
381
+ margin-left: auto;
382
+ min-width: 0;
383
+ }
384
+ .jini-chat-pane .jini-composer-send {
385
+ display: grid;
386
+ place-items: center;
387
+ width: 32px;
388
+ height: 32px;
389
+ padding: 0;
390
+ color: white;
391
+ background: var(--jini-chat-text-strong);
392
+ border: 0;
393
+ border-radius: 8px;
394
+ cursor: pointer;
395
+ }
396
+ .jini-chat-pane .jini-composer-send:disabled {
397
+ color: #aaa59e;
398
+ background: #ece8e2;
399
+ cursor: default;
400
+ }
401
+ .jini-chat-pane__cancel {
402
+ position: absolute;
403
+ right: 48px;
404
+ bottom: 22px;
405
+ padding: 5px 9px;
406
+ color: var(--jini-chat-muted);
407
+ background: var(--jini-chat-panel);
408
+ border: 1px solid var(--jini-chat-border);
409
+ border-radius: 7px;
410
+ cursor: pointer;
411
+ }
412
+ .jini-chat-pane__workdir {
413
+ display: flex;
414
+ align-items: center;
415
+ gap: 7px;
416
+ min-width: 0;
417
+ padding: 5px 4px 0;
418
+ color: var(--jini-chat-muted);
419
+ font-size: 13px;
420
+ }
421
+ .jini-chat-pane__workdir code {
422
+ overflow: hidden;
423
+ text-overflow: ellipsis;
424
+ white-space: nowrap;
425
+ }
426
+ .jini-chat-pane .jini-working-dir-picker {
427
+ position: relative;
428
+ display: inline-flex;
429
+ align-items: flex-start;
430
+ }
431
+ .jini-chat-pane .jini-working-dir-trigger-row {
432
+ display: inline-flex;
433
+ align-items: center;
434
+ gap: 2px;
435
+ }
436
+ .jini-chat-pane .jini-working-dir-trigger {
437
+ appearance: none;
438
+ display: inline-flex;
439
+ align-items: center;
440
+ gap: 6px;
441
+ padding: 4px 6px;
442
+ color: var(--jini-chat-muted);
443
+ background: transparent;
444
+ border: 0;
445
+ border-radius: 8px;
446
+ font: inherit;
447
+ font-size: 13px;
448
+ cursor: pointer;
449
+ }
450
+ .jini-chat-pane .jini-working-dir-trigger:hover,
451
+ .jini-chat-pane .jini-working-dir-trigger:focus-visible {
452
+ color: var(--jini-chat-text-strong);
453
+ background: var(--jini-chat-subtle);
454
+ outline: none;
455
+ }
456
+ .jini-chat-pane .jini-working-dir-trigger.invalid { color: var(--danger); }
457
+ .jini-chat-pane .jini-working-dir-trigger-icon { flex: 0 0 auto; opacity: .75; }
458
+ .jini-chat-pane .jini-working-dir-trigger.invalid .jini-working-dir-trigger-icon {
459
+ color: var(--danger);
460
+ opacity: 1;
461
+ }
462
+ .jini-chat-pane .jini-working-dir-trigger-label {
463
+ max-width: 240px;
464
+ overflow: hidden;
465
+ text-overflow: ellipsis;
466
+ white-space: nowrap;
467
+ }
468
+ .jini-chat-pane .jini-working-dir-trigger-chevron { flex: 0 0 auto; opacity: .55; }
469
+ .jini-chat-pane .jini-working-dir-panel,
470
+ .jini-chat-pane .jini-working-dir-flyout {
471
+ position: absolute;
472
+ z-index: 90;
473
+ display: flex;
474
+ flex-direction: column;
475
+ min-width: 210px;
476
+ padding: 5px;
477
+ background: var(--jini-chat-panel);
478
+ border: 1px solid var(--jini-chat-border-strong);
479
+ border-radius: 12px;
480
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 10px 28px -10px rgba(0, 0, 0, .18);
481
+ }
482
+ .jini-chat-pane .jini-working-dir-panel {
483
+ top: calc(100% + 6px);
484
+ left: 0;
485
+ }
486
+ .jini-chat-pane .jini-working-dir-panel.up {
487
+ top: auto;
488
+ bottom: calc(100% + 6px);
489
+ }
490
+ .jini-chat-pane .jini-working-dir-item {
491
+ appearance: none;
492
+ display: flex;
493
+ align-items: center;
494
+ gap: 9px;
495
+ width: 100%;
496
+ min-height: 32px;
497
+ padding: 0 9px;
498
+ color: var(--jini-chat-text-strong);
499
+ background: transparent;
500
+ border: 0;
501
+ border-radius: 8px;
502
+ font: inherit;
503
+ font-size: 13px;
504
+ text-align: left;
505
+ cursor: pointer;
506
+ }
507
+ .jini-chat-pane .jini-working-dir-item:hover,
508
+ .jini-chat-pane .jini-working-dir-item:focus-visible,
509
+ .jini-chat-pane .jini-working-dir-recent-item:hover,
510
+ .jini-chat-pane .jini-working-dir-recent-item:focus-visible {
511
+ background: var(--jini-chat-subtle);
512
+ outline: none;
513
+ }
514
+ .jini-chat-pane .jini-working-dir-item-icon { flex: 0 0 auto; opacity: .8; }
515
+ .jini-chat-pane .jini-working-dir-item > span {
516
+ flex: 1 1 auto;
517
+ min-width: 0;
518
+ overflow: hidden;
519
+ text-overflow: ellipsis;
520
+ white-space: nowrap;
521
+ }
522
+ .jini-chat-pane .jini-working-dir-item-chevron { margin-left: auto; opacity: .55; }
523
+ .jini-chat-pane .jini-working-dir-submenu-row { position: relative; }
524
+ .jini-chat-pane .jini-working-dir-flyout {
525
+ top: -5px;
526
+ left: 100%;
527
+ z-index: 91;
528
+ min-width: 220px;
529
+ max-width: 320px;
530
+ margin-left: 4px;
531
+ }
532
+ .jini-chat-pane .jini-working-dir-flyout.up { top: auto; bottom: -5px; }
533
+ .jini-chat-pane .jini-working-dir-flyout::before {
534
+ position: absolute;
535
+ top: 0;
536
+ left: -8px;
537
+ width: 8px;
538
+ height: 100%;
539
+ content: "";
540
+ }
541
+ .jini-chat-pane .jini-working-dir-recent-item {
542
+ appearance: none;
543
+ display: grid;
544
+ grid-template-rows: auto auto;
545
+ grid-template-columns: auto 1fr;
546
+ align-items: center;
547
+ width: 100%;
548
+ min-height: 36px;
549
+ padding: 4px 9px;
550
+ color: var(--jini-chat-text-strong);
551
+ background: transparent;
552
+ border: 0;
553
+ border-radius: 8px;
554
+ font: inherit;
555
+ text-align: left;
556
+ cursor: pointer;
557
+ column-gap: 9px;
558
+ }
559
+ .jini-chat-pane .jini-working-dir-recent-item .jini-working-dir-item-icon {
560
+ grid-row: 1 / span 2;
561
+ }
562
+ .jini-chat-pane .jini-working-dir-recent-name,
563
+ .jini-chat-pane .jini-working-dir-recent-path {
564
+ grid-column: 2;
565
+ overflow: hidden;
566
+ text-overflow: ellipsis;
567
+ white-space: nowrap;
568
+ }
569
+ .jini-chat-pane .jini-working-dir-recent-name { font-size: 13px; }
570
+ .jini-chat-pane .jini-working-dir-recent-path {
571
+ color: var(--jini-chat-muted);
572
+ font-size: 11px;
573
+ opacity: .7;
574
+ }
575
+ .jini-chat-pane .jini-working-dir-empty {
576
+ padding: 8px 10px;
577
+ color: var(--jini-chat-muted);
578
+ font-size: 12px;
579
+ white-space: nowrap;
580
+ opacity: .7;
581
+ }
582
+ .jini-runtime-picker { position: relative; }
583
+ .jini-runtime-trigger {
584
+ display: inline-grid;
585
+ grid-template-columns: 24px 14px;
586
+ align-items: center;
587
+ gap: 7px;
588
+ height: 32px;
589
+ min-width: 0;
590
+ padding: 3px 7px 3px 5px;
591
+ color: var(--jini-chat-text);
592
+ background: transparent;
593
+ border: 0;
594
+ border-radius: 8px;
595
+ cursor: pointer;
596
+ }
597
+ .jini-runtime-trigger:hover { background: var(--jini-chat-subtle); }
598
+ .jini-runtime-trigger__copy { display: none; }
599
+ .jini-runtime-trigger__copy strong {
600
+ overflow: hidden;
601
+ max-width: 122px;
602
+ font-size: 11px;
603
+ font-weight: 650;
604
+ text-overflow: ellipsis;
605
+ white-space: nowrap;
606
+ }
607
+ .jini-runtime-trigger__copy small {
608
+ overflow: hidden;
609
+ max-width: 122px;
610
+ color: var(--jini-chat-muted);
611
+ font-size: 9px;
612
+ text-overflow: ellipsis;
613
+ white-space: nowrap;
614
+ }
615
+ .jini-runtime-trigger__chevron { color: var(--jini-chat-muted); font-size: 12px; }
616
+ .jini-runtime-agent-icon.agent-icon { flex: 0 0 auto; object-fit: contain; }
617
+ .jini-runtime-agent-icon.agent-icon-mono {
618
+ display: inline-block;
619
+ background-color: currentColor;
620
+ -webkit-mask-repeat: no-repeat;
621
+ mask-repeat: no-repeat;
622
+ -webkit-mask-position: center;
623
+ mask-position: center;
624
+ -webkit-mask-size: contain;
625
+ mask-size: contain;
626
+ }
627
+ .jini-runtime-agent-icon.agent-icon-fallback {
628
+ display: inline-flex;
629
+ align-items: center;
630
+ justify-content: center;
631
+ color: #74716b;
632
+ background: #f4f5f7;
633
+ border: 1px solid #e1e5eb;
634
+ border-radius: 6px;
635
+ font-weight: 700;
636
+ }
637
+ .jini-runtime-popover {
638
+ --jini-chat-panel: #fdfcfa;
639
+ --jini-chat-text: #1a1916;
640
+ --jini-chat-text-strong: #0d0c0a;
641
+ --jini-chat-muted: #74716b;
642
+ --jini-chat-faint: #b3b0a8;
643
+ --jini-chat-border: #e1e5eb;
644
+ --jini-chat-border-soft: #edf0f4;
645
+ --jini-chat-subtle: #f4f5f7;
646
+ box-sizing: border-box;
647
+ padding: 8px;
648
+ color: var(--jini-chat-text);
649
+ background: var(--jini-chat-panel);
650
+ border: 1px solid var(--jini-chat-border);
651
+ border-radius: 12px;
652
+ box-shadow: 0 18px 46px rgba(13, 12, 10, .15), 0 2px 8px rgba(13, 12, 10, .06);
653
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei UI", "Noto Sans", Roboto, "Helvetica Neue", Arial, sans-serif;
654
+ font-size: 13.5px;
655
+ line-height: 1.5;
656
+ -webkit-font-smoothing: antialiased;
657
+ }
658
+ .jini-runtime-popover__head {
659
+ display: flex;
660
+ flex-direction: column;
661
+ gap: 3px;
662
+ padding: 10px 12px 12px;
663
+ border-bottom: 1px solid var(--jini-chat-border-soft);
664
+ }
665
+ .jini-runtime-popover__head strong { color: var(--jini-chat-text-strong); font-size: 14px; font-weight: 650; }
666
+ .jini-runtime-popover__head span { color: var(--jini-chat-muted); font-size: 12px; }
667
+ .jini-runtime-mode,
668
+ .jini-runtime-agent,
669
+ .jini-runtime-rescan {
670
+ display: flex;
671
+ align-items: center;
672
+ gap: 11px;
673
+ box-sizing: border-box;
674
+ width: 100%;
675
+ min-height: 40px;
676
+ padding: 8px 11px;
677
+ color: var(--jini-chat-text);
678
+ background: transparent;
679
+ border: 0;
680
+ border-radius: 8px;
681
+ text-align: left;
682
+ cursor: pointer;
683
+ }
684
+ .jini-runtime-mode:hover,
685
+ .jini-runtime-agent:hover:not(:disabled),
686
+ .jini-runtime-rescan:hover:not(:disabled) { background: var(--jini-chat-subtle); }
687
+ .jini-runtime-mode.is-active { font-weight: 650; }
688
+ .jini-runtime-mode:disabled,
689
+ .jini-runtime-agent:disabled,
690
+ .jini-runtime-rescan:disabled { color: var(--jini-chat-faint); cursor: default; }
691
+ .jini-runtime-mode__meta,
692
+ .jini-runtime-agent__status {
693
+ margin-left: auto;
694
+ color: var(--jini-chat-muted);
695
+ font-size: 12px;
696
+ white-space: nowrap;
697
+ }
698
+ .jini-runtime-check { flex: 0 0 auto; color: var(--jini-chat-text); }
699
+ .jini-runtime-section-label {
700
+ padding: 12px 11px 5px;
701
+ color: var(--jini-chat-faint);
702
+ font-size: 11px;
703
+ font-weight: 650;
704
+ letter-spacing: .08em;
705
+ text-transform: uppercase;
706
+ }
707
+ .jini-runtime-agent.is-active { background: transparent; }
708
+ .jini-runtime-agent__copy {
709
+ display: flex;
710
+ flex: 1;
711
+ flex-direction: column;
712
+ min-width: 0;
713
+ }
714
+ .jini-runtime-agent__copy strong { font-size: 13.5px; font-weight: 500; }
715
+ .jini-runtime-agent__copy small {
716
+ overflow: hidden;
717
+ color: #8b857e;
718
+ font-size: 10px;
719
+ text-overflow: ellipsis;
720
+ white-space: nowrap;
721
+ }
722
+ .jini-runtime-empty { padding: 10px 11px; color: var(--jini-chat-muted); font-size: 12px; }
723
+ .jini-runtime-models {
724
+ display: flex;
725
+ flex-direction: column;
726
+ gap: 9px;
727
+ margin-top: 5px;
728
+ padding: 10px 11px 8px;
729
+ border-top: 1px dashed var(--jini-chat-border);
730
+ }
731
+ .jini-runtime-select {
732
+ display: flex;
733
+ flex-direction: column;
734
+ gap: 5px;
735
+ color: var(--jini-chat-muted);
736
+ font-size: 13px;
737
+ }
738
+ .jini-runtime-select select {
739
+ box-sizing: border-box;
740
+ width: 100%;
741
+ min-height: 40px;
742
+ padding: 7px 10px;
743
+ color: var(--jini-chat-text);
744
+ background: var(--jini-chat-panel);
745
+ border: 1px solid var(--jini-chat-border);
746
+ border-radius: 8px;
747
+ }
748
+ /*
749
+ * The BYOK model, rendered as a value rather than a control — see RuntimeByokDetails for why it
750
+ * is not a disabled select. It occupies the same box the sibling selects do so the row still
751
+ * reads as part of the same list, but carries no border: a bordered box with no affordance is
752
+ * exactly the "looks editable, isn't" shape the plain text exists to avoid.
753
+ */
754
+ /*
755
+ * The BYOK model list, which CustomSelect portals to document.body. runtimePopoverPosition puts
756
+ * the runtime popover at z-index 1000; the shared .jini-select-menu default is 60, which is right
757
+ * everywhere else and puts this menu behind the very popover that opened it. One above the
758
+ * popover, not far above: it must clear its own surface and nothing else.
759
+ */
760
+ .jini-select-menu.jini-runtime-model-menu {
761
+ z-index: 1001;
762
+ }
763
+ .jini-runtime-byok-model strong {
764
+ box-sizing: border-box;
765
+ display: flex;
766
+ align-items: center;
767
+ min-height: 40px;
768
+ padding: 7px 10px;
769
+ color: var(--jini-chat-text);
770
+ font-weight: 600;
771
+ word-break: break-all;
772
+ }
773
+ /*
774
+ * Tool-call cards (ToolCard.tsx) and the per-turn usage summary (MessageRow.tsx) ship no CSS of
775
+ * their own — see this file's own header note on why the package supplies a default theme at all.
776
+ * Collapsed by default (.op-card-head is the only always-visible part), so a run with a dozen tool
777
+ * calls reads as a dozen one-line rows, not a page of raw JSON.
778
+ */
779
+ .jini-chat-pane .jini-message-tools {
780
+ display: flex;
781
+ flex-direction: column;
782
+ gap: 6px;
783
+ width: 100%;
784
+ }
785
+ .jini-chat-pane .op-card {
786
+ border: 1px solid var(--jini-chat-border);
787
+ border-radius: var(--radius);
788
+ background: var(--jini-chat-subtle);
789
+ overflow: hidden;
790
+ font-size: 13px;
791
+ }
792
+ .jini-chat-pane .op-card-head {
793
+ display: flex;
794
+ align-items: center;
795
+ gap: 8px;
796
+ width: 100%;
797
+ padding: 7px 10px;
798
+ background: none;
799
+ border: 0;
800
+ font: inherit;
801
+ text-align: left;
802
+ cursor: pointer;
803
+ color: inherit;
804
+ }
805
+ .jini-chat-pane .op-status { display: inline-flex; flex-shrink: 0; }
806
+ .jini-chat-pane .op-status-ok { color: #4e875f; }
807
+ .jini-chat-pane .op-status-error { color: var(--danger); }
808
+ .jini-chat-pane .op-status-running { color: var(--jini-chat-accent); }
809
+ .jini-chat-pane .op-title { font-weight: 600; flex-shrink: 0; }
810
+ .jini-chat-pane .shimmer-text { opacity: .6; }
811
+ .jini-chat-pane .op-meta {
812
+ color: var(--jini-chat-muted);
813
+ overflow: hidden;
814
+ text-overflow: ellipsis;
815
+ white-space: nowrap;
816
+ flex: 1;
817
+ min-width: 0;
818
+ }
819
+ .jini-chat-pane .op-expand-chev { flex-shrink: 0; color: var(--jini-chat-faint); }
820
+ /* Collapsed by default: 0 max-height clips the inner content, no display:none — keeps the height
821
+ transition instead of an instant jump cut. */
822
+ .jini-chat-pane .accordion-collapsible { max-height: 0; overflow: hidden; transition: max-height .15s ease; }
823
+ .jini-chat-pane .accordion-collapsible.open { max-height: 480px; overflow-y: auto; }
824
+ .jini-chat-pane .accordion-collapsible-inner { padding: 0 10px 10px; }
825
+ .jini-chat-pane .op-card-detail { display: flex; flex-direction: column; gap: 6px; }
826
+ .jini-chat-pane .op-path,
827
+ .jini-chat-pane .op-command,
828
+ .jini-chat-pane .op-output {
829
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
830
+ font-size: 12px;
831
+ background: var(--jini-chat-panel);
832
+ border: 1px solid var(--jini-chat-border);
833
+ border-radius: 6px;
834
+ padding: 6px 8px;
835
+ margin: 0;
836
+ white-space: pre-wrap;
837
+ word-break: break-word;
838
+ }
839
+ .jini-chat-pane .op-open {
840
+ border: 1px solid var(--jini-chat-border-strong);
841
+ border-radius: 6px;
842
+ background: var(--jini-chat-panel);
843
+ padding: 2px 8px;
844
+ font-size: 11px;
845
+ cursor: pointer;
846
+ }
847
+ /* The "Done · 6m 29s · 2612 out · $0.4028" line — real numbers from the run's own kind:'usage' event. */
848
+ .jini-chat-pane .jini-message-usage {
849
+ display: flex;
850
+ align-items: center;
851
+ gap: 6px;
852
+ font-size: 11px;
853
+ color: var(--jini-chat-muted);
854
+ margin-top: 2px;
855
+ }
856
+ .jini-chat-pane .jini-message-usage-dot { font-size: 8px; color: #4e875f; }
857
+ @media (max-width: 560px) {
858
+ .jini-chat-pane__header { padding-inline: 16px; }
859
+ .jini-chat-pane .jini-message-list { padding-inline: 16px; }
860
+ .jini-chat-pane__controls { padding-inline: 10px; }
861
+ }
862
+ `;
863
+ //# sourceMappingURL=styles.js.map