@supernal/interface 1.0.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 (519) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +165 -0
  3. package/dist/cjs/names/API.js +104 -0
  4. package/dist/cjs/names/API.js.map +1 -0
  5. package/dist/cjs/names/Components.js +104 -0
  6. package/dist/cjs/names/Components.js.map +1 -0
  7. package/dist/cjs/names/Containers.js +99 -0
  8. package/dist/cjs/names/Containers.js.map +1 -0
  9. package/dist/cjs/names/Functions.js +114 -0
  10. package/dist/cjs/names/Functions.js.map +1 -0
  11. package/dist/cjs/names/index.js +118 -0
  12. package/dist/cjs/names/index.js.map +1 -0
  13. package/dist/cjs/src/adapters/ChatUIProvider.js +176 -0
  14. package/dist/cjs/src/adapters/ChatUIProvider.js.map +1 -0
  15. package/dist/cjs/src/adapters/bridge.js +225 -0
  16. package/dist/cjs/src/adapters/bridge.js.map +1 -0
  17. package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js +289 -0
  18. package/dist/cjs/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -0
  19. package/dist/cjs/src/adapters/copilotkit/index.js +10 -0
  20. package/dist/cjs/src/adapters/copilotkit/index.js.map +1 -0
  21. package/dist/cjs/src/adapters/index.js +63 -0
  22. package/dist/cjs/src/adapters/index.js.map +1 -0
  23. package/dist/cjs/src/adapters/native/NativeAdapter.js +268 -0
  24. package/dist/cjs/src/adapters/native/NativeAdapter.js.map +1 -0
  25. package/dist/cjs/src/adapters/native/index.js +10 -0
  26. package/dist/cjs/src/adapters/native/index.js.map +1 -0
  27. package/dist/cjs/src/adapters/types/index.js +9 -0
  28. package/dist/cjs/src/adapters/types/index.js.map +1 -0
  29. package/dist/cjs/src/ai/ToolExecutor.js +211 -0
  30. package/dist/cjs/src/ai/ToolExecutor.js.map +1 -0
  31. package/dist/cjs/src/ai/ToolMatcher.js +202 -0
  32. package/dist/cjs/src/ai/ToolMatcher.js.map +1 -0
  33. package/dist/cjs/src/ai/index.js +29 -0
  34. package/dist/cjs/src/ai/index.js.map +1 -0
  35. package/dist/cjs/src/architecture/createContainer.js +106 -0
  36. package/dist/cjs/src/architecture/createContainer.js.map +1 -0
  37. package/dist/cjs/src/architecture/initialize.js +125 -0
  38. package/dist/cjs/src/architecture/initialize.js.map +1 -0
  39. package/dist/cjs/src/architecture/registry.js +111 -0
  40. package/dist/cjs/src/architecture/registry.js.map +1 -0
  41. package/dist/cjs/src/background/architecture/ArchitectureInitializer.js +174 -0
  42. package/dist/cjs/src/background/architecture/ArchitectureInitializer.js.map +1 -0
  43. package/dist/cjs/src/background/architecture/Containers.js +46 -0
  44. package/dist/cjs/src/background/architecture/Containers.js.map +1 -0
  45. package/dist/cjs/src/background/architecture/DataContractTypes.js +28 -0
  46. package/dist/cjs/src/background/architecture/DataContractTypes.js.map +1 -0
  47. package/dist/cjs/src/background/architecture/index.js +24 -0
  48. package/dist/cjs/src/background/architecture/index.js.map +1 -0
  49. package/dist/cjs/src/background/navigation/NavigationGraph.js +71 -0
  50. package/dist/cjs/src/background/navigation/NavigationGraph.js.map +1 -0
  51. package/dist/cjs/src/background/navigation/RuntimeTreeBuilder.js +66 -0
  52. package/dist/cjs/src/background/navigation/RuntimeTreeBuilder.js.map +1 -0
  53. package/dist/cjs/src/background/navigation/useComponentTracking.js +20 -0
  54. package/dist/cjs/src/background/navigation/useComponentTracking.js.map +1 -0
  55. package/dist/cjs/src/background/registry/ComponentRegistry.js +340 -0
  56. package/dist/cjs/src/background/registry/ComponentRegistry.js.map +1 -0
  57. package/dist/cjs/src/background/registry/ToolRegistry.js +668 -0
  58. package/dist/cjs/src/background/registry/ToolRegistry.js.map +1 -0
  59. package/dist/cjs/src/browser.js +70 -0
  60. package/dist/cjs/src/browser.js.map +1 -0
  61. package/dist/cjs/src/components/ComponentScanner.js +362 -0
  62. package/dist/cjs/src/components/ComponentScanner.js.map +1 -0
  63. package/dist/cjs/src/components/index.js +24 -0
  64. package/dist/cjs/src/components/index.js.map +1 -0
  65. package/dist/cjs/src/data/TestDataManager.js +187 -0
  66. package/dist/cjs/src/data/TestDataManager.js.map +1 -0
  67. package/dist/cjs/src/data/index.js +23 -0
  68. package/dist/cjs/src/data/index.js.map +1 -0
  69. package/dist/cjs/src/decorators/Component.js +108 -0
  70. package/dist/cjs/src/decorators/Component.js.map +1 -0
  71. package/dist/cjs/src/decorators/ContainerHelpers.js +45 -0
  72. package/dist/cjs/src/decorators/ContainerHelpers.js.map +1 -0
  73. package/dist/cjs/src/decorators/SpecializedTools.js +386 -0
  74. package/dist/cjs/src/decorators/SpecializedTools.js.map +1 -0
  75. package/dist/cjs/src/decorators/Tool.js +700 -0
  76. package/dist/cjs/src/decorators/Tool.js.map +1 -0
  77. package/dist/cjs/src/decorators/ToolHelpers.js +261 -0
  78. package/dist/cjs/src/decorators/ToolHelpers.js.map +1 -0
  79. package/dist/cjs/src/decorators/ToolPreset.js +270 -0
  80. package/dist/cjs/src/decorators/ToolPreset.js.map +1 -0
  81. package/dist/cjs/src/decorators/ToolProvider.js +86 -0
  82. package/dist/cjs/src/decorators/ToolProvider.js.map +1 -0
  83. package/dist/cjs/src/decorators/index.js +44 -0
  84. package/dist/cjs/src/decorators/index.js.map +1 -0
  85. package/dist/cjs/src/execution/DOMExecutor.js +233 -0
  86. package/dist/cjs/src/execution/DOMExecutor.js.map +1 -0
  87. package/dist/cjs/src/execution/PlaywrightExecutor.js +196 -0
  88. package/dist/cjs/src/execution/PlaywrightExecutor.js.map +1 -0
  89. package/dist/cjs/src/exposure/ExposureCollector.js +358 -0
  90. package/dist/cjs/src/exposure/ExposureCollector.js.map +1 -0
  91. package/dist/cjs/src/exposure/index.js +26 -0
  92. package/dist/cjs/src/exposure/index.js.map +1 -0
  93. package/dist/cjs/src/index.js +187 -0
  94. package/dist/cjs/src/index.js.map +1 -0
  95. package/dist/cjs/src/interfaces/StatefulComponent.js +50 -0
  96. package/dist/cjs/src/interfaces/StatefulComponent.js.map +1 -0
  97. package/dist/cjs/src/name-contracts/ContractScanner.js +15 -0
  98. package/dist/cjs/src/name-contracts/ContractScanner.js.map +1 -0
  99. package/dist/cjs/src/name-contracts/RouteContractScanner.js +225 -0
  100. package/dist/cjs/src/name-contracts/RouteContractScanner.js.map +1 -0
  101. package/dist/cjs/src/name-contracts/index.js +15 -0
  102. package/dist/cjs/src/name-contracts/index.js.map +1 -0
  103. package/dist/cjs/src/names/createNames.js +86 -0
  104. package/dist/cjs/src/names/createNames.js.map +1 -0
  105. package/dist/cjs/src/react/hooks/useChatWithContext.js +221 -0
  106. package/dist/cjs/src/react/hooks/useChatWithContext.js.map +1 -0
  107. package/dist/cjs/src/react/index.js +28 -0
  108. package/dist/cjs/src/react/index.js.map +1 -0
  109. package/dist/cjs/src/react/useNavigationHandler.js +88 -0
  110. package/dist/cjs/src/react/useNavigationHandler.js.map +1 -0
  111. package/dist/cjs/src/react/usePersistedState.js +72 -0
  112. package/dist/cjs/src/react/usePersistedState.js.map +1 -0
  113. package/dist/cjs/src/react/useToolBinding.js +110 -0
  114. package/dist/cjs/src/react/useToolBinding.js.map +1 -0
  115. package/dist/cjs/src/routes/RouteContractGenerator.js +119 -0
  116. package/dist/cjs/src/routes/RouteContractGenerator.js.map +1 -0
  117. package/dist/cjs/src/routes/RouteContractsConfig.js +39 -0
  118. package/dist/cjs/src/routes/RouteContractsConfig.js.map +1 -0
  119. package/dist/cjs/src/routes/index.js +20 -0
  120. package/dist/cjs/src/routes/index.js.map +1 -0
  121. package/dist/cjs/src/routes/scanners/NameExtractor.js +193 -0
  122. package/dist/cjs/src/routes/scanners/NameExtractor.js.map +1 -0
  123. package/dist/cjs/src/routes/scanners/NextjsDynamicScanner.js +102 -0
  124. package/dist/cjs/src/routes/scanners/NextjsDynamicScanner.js.map +1 -0
  125. package/dist/cjs/src/routes/scanners/RouteScanner.js +13 -0
  126. package/dist/cjs/src/routes/scanners/RouteScanner.js.map +1 -0
  127. package/dist/cjs/src/storage/LocalStorageAdapter.js +87 -0
  128. package/dist/cjs/src/storage/LocalStorageAdapter.js.map +1 -0
  129. package/dist/cjs/src/storage/StateManager.js +299 -0
  130. package/dist/cjs/src/storage/StateManager.js.map +1 -0
  131. package/dist/cjs/src/storage/StorageAdapter.js +164 -0
  132. package/dist/cjs/src/storage/StorageAdapter.js.map +1 -0
  133. package/dist/cjs/src/storage/index.js +37 -0
  134. package/dist/cjs/src/storage/index.js.map +1 -0
  135. package/dist/cjs/src/testing/BrowserStateInjection.js +130 -0
  136. package/dist/cjs/src/testing/BrowserStateInjection.js.map +1 -0
  137. package/dist/cjs/src/testing/ComponentStateHelpers.js +200 -0
  138. package/dist/cjs/src/testing/ComponentStateHelpers.js.map +1 -0
  139. package/dist/cjs/src/testing/GherkinParser.js +252 -0
  140. package/dist/cjs/src/testing/GherkinParser.js.map +1 -0
  141. package/dist/cjs/src/testing/PlaywrightStateHelpers.js +254 -0
  142. package/dist/cjs/src/testing/PlaywrightStateHelpers.js.map +1 -0
  143. package/dist/cjs/src/testing/TestRunner.js +158 -0
  144. package/dist/cjs/src/testing/TestRunner.js.map +1 -0
  145. package/dist/cjs/src/testing/index.js +46 -0
  146. package/dist/cjs/src/testing/index.js.map +1 -0
  147. package/dist/cjs/src/testing/selectors.js +84 -0
  148. package/dist/cjs/src/testing/selectors.js.map +1 -0
  149. package/dist/cjs/src/tools/SystemTools.js +262 -0
  150. package/dist/cjs/src/tools/SystemTools.js.map +1 -0
  151. package/dist/cjs/src/types/ClassifiedTool.js +50 -0
  152. package/dist/cjs/src/types/ClassifiedTool.js.map +1 -0
  153. package/dist/cjs/src/types/ComponentState.js +30 -0
  154. package/dist/cjs/src/types/ComponentState.js.map +1 -0
  155. package/dist/cjs/src/types/DiscoverableToolProvider.js +9 -0
  156. package/dist/cjs/src/types/DiscoverableToolProvider.js.map +1 -0
  157. package/dist/cjs/src/types/ExposureState.js +25 -0
  158. package/dist/cjs/src/types/ExposureState.js.map +1 -0
  159. package/dist/cjs/src/types/NavigationGraph.js +8 -0
  160. package/dist/cjs/src/types/NavigationGraph.js.map +1 -0
  161. package/dist/cjs/src/types/OperationType.js +49 -0
  162. package/dist/cjs/src/types/OperationType.js.map +1 -0
  163. package/dist/cjs/src/types/StateManagers.js +39 -0
  164. package/dist/cjs/src/types/StateManagers.js.map +1 -0
  165. package/dist/cjs/src/types/Tool.js +41 -0
  166. package/dist/cjs/src/types/Tool.js.map +1 -0
  167. package/dist/cjs/src/types/ToolPermissions.js +54 -0
  168. package/dist/cjs/src/types/ToolPermissions.js.map +1 -0
  169. package/dist/cjs/src/types/ToolResult.js +25 -0
  170. package/dist/cjs/src/types/ToolResult.js.map +1 -0
  171. package/dist/cjs/src/types/index.js +59 -0
  172. package/dist/cjs/src/types/index.js.map +1 -0
  173. package/dist/cjs/src/ui/react/chat/ChatBubble.js +221 -0
  174. package/dist/cjs/src/ui/react/chat/ChatBubble.js.map +1 -0
  175. package/dist/esm/names/API.d.ts +77 -0
  176. package/dist/esm/names/API.d.ts.map +1 -0
  177. package/dist/esm/names/API.js +99 -0
  178. package/dist/esm/names/API.js.map +1 -0
  179. package/dist/esm/names/Components.d.ts +77 -0
  180. package/dist/esm/names/Components.d.ts.map +1 -0
  181. package/dist/esm/names/Components.js +99 -0
  182. package/dist/esm/names/Components.js.map +1 -0
  183. package/dist/esm/names/Containers.d.ts +84 -0
  184. package/dist/esm/names/Containers.d.ts.map +1 -0
  185. package/dist/esm/names/Containers.js +94 -0
  186. package/dist/esm/names/Containers.js.map +1 -0
  187. package/dist/esm/names/Functions.d.ts +87 -0
  188. package/dist/esm/names/Functions.d.ts.map +1 -0
  189. package/dist/esm/names/Functions.js +109 -0
  190. package/dist/esm/names/Functions.js.map +1 -0
  191. package/dist/esm/names/index.d.ts +187 -0
  192. package/dist/esm/names/index.d.ts.map +1 -0
  193. package/dist/esm/names/index.js +99 -0
  194. package/dist/esm/names/index.js.map +1 -0
  195. package/dist/esm/src/adapters/ChatUIProvider.d.ts +76 -0
  196. package/dist/esm/src/adapters/ChatUIProvider.d.ts.map +1 -0
  197. package/dist/esm/src/adapters/ChatUIProvider.js +136 -0
  198. package/dist/esm/src/adapters/ChatUIProvider.js.map +1 -0
  199. package/dist/esm/src/adapters/bridge.d.ts +145 -0
  200. package/dist/esm/src/adapters/bridge.d.ts.map +1 -0
  201. package/dist/esm/src/adapters/bridge.js +218 -0
  202. package/dist/esm/src/adapters/bridge.js.map +1 -0
  203. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.d.ts +49 -0
  204. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.d.ts.map +1 -0
  205. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js +251 -0
  206. package/dist/esm/src/adapters/copilotkit/CopilotKitAdapter.js.map +1 -0
  207. package/dist/esm/src/adapters/copilotkit/index.d.ts +6 -0
  208. package/dist/esm/src/adapters/copilotkit/index.d.ts.map +1 -0
  209. package/dist/esm/src/adapters/copilotkit/index.js +5 -0
  210. package/dist/esm/src/adapters/copilotkit/index.js.map +1 -0
  211. package/dist/esm/src/adapters/index.d.ts +31 -0
  212. package/dist/esm/src/adapters/index.d.ts.map +1 -0
  213. package/dist/esm/src/adapters/index.js +32 -0
  214. package/dist/esm/src/adapters/index.js.map +1 -0
  215. package/dist/esm/src/adapters/native/NativeAdapter.d.ts +47 -0
  216. package/dist/esm/src/adapters/native/NativeAdapter.d.ts.map +1 -0
  217. package/dist/esm/src/adapters/native/NativeAdapter.js +230 -0
  218. package/dist/esm/src/adapters/native/NativeAdapter.js.map +1 -0
  219. package/dist/esm/src/adapters/native/index.d.ts +6 -0
  220. package/dist/esm/src/adapters/native/index.d.ts.map +1 -0
  221. package/dist/esm/src/adapters/native/index.js +5 -0
  222. package/dist/esm/src/adapters/native/index.js.map +1 -0
  223. package/dist/esm/src/adapters/types/index.d.ts +155 -0
  224. package/dist/esm/src/adapters/types/index.d.ts.map +1 -0
  225. package/dist/esm/src/adapters/types/index.js +8 -0
  226. package/dist/esm/src/adapters/types/index.js.map +1 -0
  227. package/dist/esm/src/ai/ToolExecutor.d.ts +49 -0
  228. package/dist/esm/src/ai/ToolExecutor.d.ts.map +1 -0
  229. package/dist/esm/src/ai/ToolExecutor.js +174 -0
  230. package/dist/esm/src/ai/ToolExecutor.js.map +1 -0
  231. package/dist/esm/src/ai/ToolMatcher.d.ts +61 -0
  232. package/dist/esm/src/ai/ToolMatcher.d.ts.map +1 -0
  233. package/dist/esm/src/ai/ToolMatcher.js +198 -0
  234. package/dist/esm/src/ai/ToolMatcher.js.map +1 -0
  235. package/dist/esm/src/ai/index.d.ts +9 -0
  236. package/dist/esm/src/ai/index.d.ts.map +1 -0
  237. package/dist/esm/src/ai/index.js +13 -0
  238. package/dist/esm/src/ai/index.js.map +1 -0
  239. package/dist/esm/src/architecture/createContainer.d.ts +60 -0
  240. package/dist/esm/src/architecture/createContainer.d.ts.map +1 -0
  241. package/dist/esm/src/architecture/createContainer.js +102 -0
  242. package/dist/esm/src/architecture/createContainer.js.map +1 -0
  243. package/dist/esm/src/architecture/initialize.d.ts +81 -0
  244. package/dist/esm/src/architecture/initialize.d.ts.map +1 -0
  245. package/dist/esm/src/architecture/initialize.js +121 -0
  246. package/dist/esm/src/architecture/initialize.js.map +1 -0
  247. package/dist/esm/src/architecture/registry.d.ts +61 -0
  248. package/dist/esm/src/architecture/registry.d.ts.map +1 -0
  249. package/dist/esm/src/architecture/registry.js +107 -0
  250. package/dist/esm/src/architecture/registry.js.map +1 -0
  251. package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts +95 -0
  252. package/dist/esm/src/background/architecture/ArchitectureInitializer.d.ts.map +1 -0
  253. package/dist/esm/src/background/architecture/ArchitectureInitializer.js +170 -0
  254. package/dist/esm/src/background/architecture/ArchitectureInitializer.js.map +1 -0
  255. package/dist/esm/src/background/architecture/Containers.d.ts +52 -0
  256. package/dist/esm/src/background/architecture/Containers.d.ts.map +1 -0
  257. package/dist/esm/src/background/architecture/Containers.js +40 -0
  258. package/dist/esm/src/background/architecture/Containers.js.map +1 -0
  259. package/dist/esm/src/background/architecture/DataContractTypes.d.ts +33 -0
  260. package/dist/esm/src/background/architecture/DataContractTypes.d.ts.map +1 -0
  261. package/dist/esm/src/background/architecture/DataContractTypes.js +22 -0
  262. package/dist/esm/src/background/architecture/DataContractTypes.js.map +1 -0
  263. package/dist/esm/src/background/architecture/index.d.ts +12 -0
  264. package/dist/esm/src/background/architecture/index.d.ts.map +1 -0
  265. package/dist/esm/src/background/architecture/index.js +13 -0
  266. package/dist/esm/src/background/architecture/index.js.map +1 -0
  267. package/dist/esm/src/background/navigation/NavigationGraph.d.ts +48 -0
  268. package/dist/esm/src/background/navigation/NavigationGraph.d.ts.map +1 -0
  269. package/dist/esm/src/background/navigation/NavigationGraph.js +67 -0
  270. package/dist/esm/src/background/navigation/NavigationGraph.js.map +1 -0
  271. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.d.ts +30 -0
  272. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.d.ts.map +1 -0
  273. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.js +60 -0
  274. package/dist/esm/src/background/navigation/RuntimeTreeBuilder.js.map +1 -0
  275. package/dist/esm/src/background/navigation/useComponentTracking.d.ts +10 -0
  276. package/dist/esm/src/background/navigation/useComponentTracking.d.ts.map +1 -0
  277. package/dist/esm/src/background/navigation/useComponentTracking.js +17 -0
  278. package/dist/esm/src/background/navigation/useComponentTracking.js.map +1 -0
  279. package/dist/esm/src/background/registry/ComponentRegistry.d.ts +192 -0
  280. package/dist/esm/src/background/registry/ComponentRegistry.d.ts.map +1 -0
  281. package/dist/esm/src/background/registry/ComponentRegistry.js +336 -0
  282. package/dist/esm/src/background/registry/ComponentRegistry.js.map +1 -0
  283. package/dist/esm/src/background/registry/ToolRegistry.d.ts +232 -0
  284. package/dist/esm/src/background/registry/ToolRegistry.d.ts.map +1 -0
  285. package/dist/esm/src/background/registry/ToolRegistry.js +664 -0
  286. package/dist/esm/src/background/registry/ToolRegistry.js.map +1 -0
  287. package/dist/esm/src/browser.d.ts +21 -0
  288. package/dist/esm/src/browser.d.ts.map +1 -0
  289. package/dist/esm/src/browser.js +31 -0
  290. package/dist/esm/src/browser.js.map +1 -0
  291. package/dist/esm/src/components/ComponentScanner.d.ts +99 -0
  292. package/dist/esm/src/components/ComponentScanner.d.ts.map +1 -0
  293. package/dist/esm/src/components/ComponentScanner.js +325 -0
  294. package/dist/esm/src/components/ComponentScanner.js.map +1 -0
  295. package/dist/esm/src/components/index.d.ts +9 -0
  296. package/dist/esm/src/components/index.d.ts.map +1 -0
  297. package/dist/esm/src/components/index.js +8 -0
  298. package/dist/esm/src/components/index.js.map +1 -0
  299. package/dist/esm/src/data/TestDataManager.d.ts +125 -0
  300. package/dist/esm/src/data/TestDataManager.d.ts.map +1 -0
  301. package/dist/esm/src/data/TestDataManager.js +183 -0
  302. package/dist/esm/src/data/TestDataManager.js.map +1 -0
  303. package/dist/esm/src/data/index.d.ts +7 -0
  304. package/dist/esm/src/data/index.d.ts.map +1 -0
  305. package/dist/esm/src/data/index.js +7 -0
  306. package/dist/esm/src/data/index.js.map +1 -0
  307. package/dist/esm/src/decorators/Component.d.ts +59 -0
  308. package/dist/esm/src/decorators/Component.d.ts.map +1 -0
  309. package/dist/esm/src/decorators/Component.js +103 -0
  310. package/dist/esm/src/decorators/Component.js.map +1 -0
  311. package/dist/esm/src/decorators/ContainerHelpers.d.ts +26 -0
  312. package/dist/esm/src/decorators/ContainerHelpers.d.ts.map +1 -0
  313. package/dist/esm/src/decorators/ContainerHelpers.js +42 -0
  314. package/dist/esm/src/decorators/ContainerHelpers.js.map +1 -0
  315. package/dist/esm/src/decorators/SpecializedTools.d.ts +218 -0
  316. package/dist/esm/src/decorators/SpecializedTools.d.ts.map +1 -0
  317. package/dist/esm/src/decorators/SpecializedTools.js +383 -0
  318. package/dist/esm/src/decorators/SpecializedTools.js.map +1 -0
  319. package/dist/esm/src/decorators/Tool.d.ts +210 -0
  320. package/dist/esm/src/decorators/Tool.d.ts.map +1 -0
  321. package/dist/esm/src/decorators/Tool.js +694 -0
  322. package/dist/esm/src/decorators/Tool.js.map +1 -0
  323. package/dist/esm/src/decorators/ToolHelpers.d.ts +74 -0
  324. package/dist/esm/src/decorators/ToolHelpers.d.ts.map +1 -0
  325. package/dist/esm/src/decorators/ToolHelpers.js +219 -0
  326. package/dist/esm/src/decorators/ToolHelpers.js.map +1 -0
  327. package/dist/esm/src/decorators/ToolPreset.d.ts +138 -0
  328. package/dist/esm/src/decorators/ToolPreset.d.ts.map +1 -0
  329. package/dist/esm/src/decorators/ToolPreset.js +259 -0
  330. package/dist/esm/src/decorators/ToolPreset.js.map +1 -0
  331. package/dist/esm/src/decorators/ToolProvider.d.ts +65 -0
  332. package/dist/esm/src/decorators/ToolProvider.d.ts.map +1 -0
  333. package/dist/esm/src/decorators/ToolProvider.js +81 -0
  334. package/dist/esm/src/decorators/ToolProvider.js.map +1 -0
  335. package/dist/esm/src/decorators/index.d.ts +13 -0
  336. package/dist/esm/src/decorators/index.d.ts.map +1 -0
  337. package/dist/esm/src/decorators/index.js +14 -0
  338. package/dist/esm/src/decorators/index.js.map +1 -0
  339. package/dist/esm/src/execution/DOMExecutor.d.ts +43 -0
  340. package/dist/esm/src/execution/DOMExecutor.d.ts.map +1 -0
  341. package/dist/esm/src/execution/DOMExecutor.js +229 -0
  342. package/dist/esm/src/execution/DOMExecutor.js.map +1 -0
  343. package/dist/esm/src/execution/PlaywrightExecutor.d.ts +38 -0
  344. package/dist/esm/src/execution/PlaywrightExecutor.d.ts.map +1 -0
  345. package/dist/esm/src/execution/PlaywrightExecutor.js +192 -0
  346. package/dist/esm/src/execution/PlaywrightExecutor.js.map +1 -0
  347. package/dist/esm/src/exposure/ExposureCollector.d.ts +88 -0
  348. package/dist/esm/src/exposure/ExposureCollector.d.ts.map +1 -0
  349. package/dist/esm/src/exposure/ExposureCollector.js +354 -0
  350. package/dist/esm/src/exposure/ExposureCollector.js.map +1 -0
  351. package/dist/esm/src/exposure/index.d.ts +8 -0
  352. package/dist/esm/src/exposure/index.d.ts.map +1 -0
  353. package/dist/esm/src/exposure/index.js +10 -0
  354. package/dist/esm/src/exposure/index.js.map +1 -0
  355. package/dist/esm/src/index.d.ts +49 -0
  356. package/dist/esm/src/index.d.ts.map +1 -0
  357. package/dist/esm/src/index.js +79 -0
  358. package/dist/esm/src/index.js.map +1 -0
  359. package/dist/esm/src/interfaces/StatefulComponent.d.ts +72 -0
  360. package/dist/esm/src/interfaces/StatefulComponent.d.ts.map +1 -0
  361. package/dist/esm/src/interfaces/StatefulComponent.js +47 -0
  362. package/dist/esm/src/interfaces/StatefulComponent.js.map +1 -0
  363. package/dist/esm/src/name-contracts/ContractScanner.d.ts +61 -0
  364. package/dist/esm/src/name-contracts/ContractScanner.d.ts.map +1 -0
  365. package/dist/esm/src/name-contracts/ContractScanner.js +11 -0
  366. package/dist/esm/src/name-contracts/ContractScanner.js.map +1 -0
  367. package/dist/esm/src/name-contracts/RouteContractScanner.d.ts +30 -0
  368. package/dist/esm/src/name-contracts/RouteContractScanner.d.ts.map +1 -0
  369. package/dist/esm/src/name-contracts/RouteContractScanner.js +188 -0
  370. package/dist/esm/src/name-contracts/RouteContractScanner.js.map +1 -0
  371. package/dist/esm/src/name-contracts/index.d.ts +10 -0
  372. package/dist/esm/src/name-contracts/index.d.ts.map +1 -0
  373. package/dist/esm/src/name-contracts/index.js +10 -0
  374. package/dist/esm/src/name-contracts/index.js.map +1 -0
  375. package/dist/esm/src/names/createNames.d.ts +49 -0
  376. package/dist/esm/src/names/createNames.d.ts.map +1 -0
  377. package/dist/esm/src/names/createNames.js +81 -0
  378. package/dist/esm/src/names/createNames.js.map +1 -0
  379. package/dist/esm/src/react/hooks/useChatWithContext.d.ts +68 -0
  380. package/dist/esm/src/react/hooks/useChatWithContext.d.ts.map +1 -0
  381. package/dist/esm/src/react/hooks/useChatWithContext.js +218 -0
  382. package/dist/esm/src/react/hooks/useChatWithContext.js.map +1 -0
  383. package/dist/esm/src/react/index.d.ts +12 -0
  384. package/dist/esm/src/react/index.d.ts.map +1 -0
  385. package/dist/esm/src/react/index.js +21 -0
  386. package/dist/esm/src/react/index.js.map +1 -0
  387. package/dist/esm/src/react/useNavigationHandler.d.ts +42 -0
  388. package/dist/esm/src/react/useNavigationHandler.d.ts.map +1 -0
  389. package/dist/esm/src/react/useNavigationHandler.js +85 -0
  390. package/dist/esm/src/react/useNavigationHandler.js.map +1 -0
  391. package/dist/esm/src/react/usePersistedState.d.ts +13 -0
  392. package/dist/esm/src/react/usePersistedState.d.ts.map +1 -0
  393. package/dist/esm/src/react/usePersistedState.js +69 -0
  394. package/dist/esm/src/react/usePersistedState.js.map +1 -0
  395. package/dist/esm/src/react/useToolBinding.d.ts +8 -0
  396. package/dist/esm/src/react/useToolBinding.d.ts.map +1 -0
  397. package/dist/esm/src/react/useToolBinding.js +107 -0
  398. package/dist/esm/src/react/useToolBinding.js.map +1 -0
  399. package/dist/esm/src/routes/RouteContractGenerator.d.ts +37 -0
  400. package/dist/esm/src/routes/RouteContractGenerator.d.ts.map +1 -0
  401. package/dist/esm/src/routes/RouteContractGenerator.js +115 -0
  402. package/dist/esm/src/routes/RouteContractGenerator.js.map +1 -0
  403. package/dist/esm/src/routes/RouteContractsConfig.d.ts +93 -0
  404. package/dist/esm/src/routes/RouteContractsConfig.d.ts.map +1 -0
  405. package/dist/esm/src/routes/RouteContractsConfig.js +36 -0
  406. package/dist/esm/src/routes/RouteContractsConfig.js.map +1 -0
  407. package/dist/esm/src/routes/index.d.ts +13 -0
  408. package/dist/esm/src/routes/index.d.ts.map +1 -0
  409. package/dist/esm/src/routes/index.js +13 -0
  410. package/dist/esm/src/routes/index.js.map +1 -0
  411. package/dist/esm/src/routes/scanners/NameExtractor.d.ts +36 -0
  412. package/dist/esm/src/routes/scanners/NameExtractor.d.ts.map +1 -0
  413. package/dist/esm/src/routes/scanners/NameExtractor.js +156 -0
  414. package/dist/esm/src/routes/scanners/NameExtractor.js.map +1 -0
  415. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.d.ts +35 -0
  416. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.d.ts.map +1 -0
  417. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.js +98 -0
  418. package/dist/esm/src/routes/scanners/NextjsDynamicScanner.js.map +1 -0
  419. package/dist/esm/src/routes/scanners/RouteScanner.d.ts +64 -0
  420. package/dist/esm/src/routes/scanners/RouteScanner.d.ts.map +1 -0
  421. package/dist/esm/src/routes/scanners/RouteScanner.js +9 -0
  422. package/dist/esm/src/routes/scanners/RouteScanner.js.map +1 -0
  423. package/dist/esm/src/storage/LocalStorageAdapter.d.ts +29 -0
  424. package/dist/esm/src/storage/LocalStorageAdapter.d.ts.map +1 -0
  425. package/dist/esm/src/storage/LocalStorageAdapter.js +83 -0
  426. package/dist/esm/src/storage/LocalStorageAdapter.js.map +1 -0
  427. package/dist/esm/src/storage/StateManager.d.ts +175 -0
  428. package/dist/esm/src/storage/StateManager.d.ts.map +1 -0
  429. package/dist/esm/src/storage/StateManager.js +295 -0
  430. package/dist/esm/src/storage/StateManager.js.map +1 -0
  431. package/dist/esm/src/storage/StorageAdapter.d.ts +94 -0
  432. package/dist/esm/src/storage/StorageAdapter.d.ts.map +1 -0
  433. package/dist/esm/src/storage/StorageAdapter.js +158 -0
  434. package/dist/esm/src/storage/StorageAdapter.js.map +1 -0
  435. package/dist/esm/src/storage/index.d.ts +12 -0
  436. package/dist/esm/src/storage/index.d.ts.map +1 -0
  437. package/dist/esm/src/storage/index.js +17 -0
  438. package/dist/esm/src/storage/index.js.map +1 -0
  439. package/dist/esm/src/testing/BrowserStateInjection.d.ts +74 -0
  440. package/dist/esm/src/testing/BrowserStateInjection.d.ts.map +1 -0
  441. package/dist/esm/src/testing/BrowserStateInjection.js +126 -0
  442. package/dist/esm/src/testing/BrowserStateInjection.js.map +1 -0
  443. package/dist/esm/src/testing/ComponentStateHelpers.d.ts +121 -0
  444. package/dist/esm/src/testing/ComponentStateHelpers.d.ts.map +1 -0
  445. package/dist/esm/src/testing/ComponentStateHelpers.js +190 -0
  446. package/dist/esm/src/testing/ComponentStateHelpers.js.map +1 -0
  447. package/dist/esm/src/testing/GherkinParser.d.ts +87 -0
  448. package/dist/esm/src/testing/GherkinParser.d.ts.map +1 -0
  449. package/dist/esm/src/testing/GherkinParser.js +248 -0
  450. package/dist/esm/src/testing/GherkinParser.js.map +1 -0
  451. package/dist/esm/src/testing/PlaywrightStateHelpers.d.ts +163 -0
  452. package/dist/esm/src/testing/PlaywrightStateHelpers.d.ts.map +1 -0
  453. package/dist/esm/src/testing/PlaywrightStateHelpers.js +242 -0
  454. package/dist/esm/src/testing/PlaywrightStateHelpers.js.map +1 -0
  455. package/dist/esm/src/testing/TestRunner.d.ts +50 -0
  456. package/dist/esm/src/testing/TestRunner.d.ts.map +1 -0
  457. package/dist/esm/src/testing/TestRunner.js +121 -0
  458. package/dist/esm/src/testing/TestRunner.js.map +1 -0
  459. package/dist/esm/src/testing/index.d.ts +12 -0
  460. package/dist/esm/src/testing/index.d.ts.map +1 -0
  461. package/dist/esm/src/testing/index.js +25 -0
  462. package/dist/esm/src/testing/index.js.map +1 -0
  463. package/dist/esm/src/testing/selectors.d.ts +65 -0
  464. package/dist/esm/src/testing/selectors.d.ts.map +1 -0
  465. package/dist/esm/src/testing/selectors.js +76 -0
  466. package/dist/esm/src/testing/selectors.js.map +1 -0
  467. package/dist/esm/src/tools/SystemTools.d.ts +139 -0
  468. package/dist/esm/src/tools/SystemTools.d.ts.map +1 -0
  469. package/dist/esm/src/tools/SystemTools.js +258 -0
  470. package/dist/esm/src/tools/SystemTools.js.map +1 -0
  471. package/dist/esm/src/types/ClassifiedTool.d.ts +61 -0
  472. package/dist/esm/src/types/ClassifiedTool.d.ts.map +1 -0
  473. package/dist/esm/src/types/ClassifiedTool.js +47 -0
  474. package/dist/esm/src/types/ClassifiedTool.js.map +1 -0
  475. package/dist/esm/src/types/ComponentState.d.ts +207 -0
  476. package/dist/esm/src/types/ComponentState.d.ts.map +1 -0
  477. package/dist/esm/src/types/ComponentState.js +25 -0
  478. package/dist/esm/src/types/ComponentState.js.map +1 -0
  479. package/dist/esm/src/types/DiscoverableToolProvider.d.ts +59 -0
  480. package/dist/esm/src/types/DiscoverableToolProvider.d.ts.map +1 -0
  481. package/dist/esm/src/types/DiscoverableToolProvider.js +8 -0
  482. package/dist/esm/src/types/DiscoverableToolProvider.js.map +1 -0
  483. package/dist/esm/src/types/ExposureState.d.ts +75 -0
  484. package/dist/esm/src/types/ExposureState.d.ts.map +1 -0
  485. package/dist/esm/src/types/ExposureState.js +22 -0
  486. package/dist/esm/src/types/ExposureState.js.map +1 -0
  487. package/dist/esm/src/types/NavigationGraph.d.ts +98 -0
  488. package/dist/esm/src/types/NavigationGraph.d.ts.map +1 -0
  489. package/dist/esm/src/types/NavigationGraph.js +7 -0
  490. package/dist/esm/src/types/NavigationGraph.js.map +1 -0
  491. package/dist/esm/src/types/OperationType.d.ts +45 -0
  492. package/dist/esm/src/types/OperationType.d.ts.map +1 -0
  493. package/dist/esm/src/types/OperationType.js +46 -0
  494. package/dist/esm/src/types/OperationType.js.map +1 -0
  495. package/dist/esm/src/types/StateManagers.d.ts +35 -0
  496. package/dist/esm/src/types/StateManagers.d.ts.map +1 -0
  497. package/dist/esm/src/types/StateManagers.js +36 -0
  498. package/dist/esm/src/types/StateManagers.js.map +1 -0
  499. package/dist/esm/src/types/Tool.d.ts +162 -0
  500. package/dist/esm/src/types/Tool.d.ts.map +1 -0
  501. package/dist/esm/src/types/Tool.js +38 -0
  502. package/dist/esm/src/types/Tool.js.map +1 -0
  503. package/dist/esm/src/types/ToolPermissions.d.ts +73 -0
  504. package/dist/esm/src/types/ToolPermissions.d.ts.map +1 -0
  505. package/dist/esm/src/types/ToolPermissions.js +51 -0
  506. package/dist/esm/src/types/ToolPermissions.js.map +1 -0
  507. package/dist/esm/src/types/ToolResult.d.ts +129 -0
  508. package/dist/esm/src/types/ToolResult.d.ts.map +1 -0
  509. package/dist/esm/src/types/ToolResult.js +22 -0
  510. package/dist/esm/src/types/ToolResult.js.map +1 -0
  511. package/dist/esm/src/types/index.d.ts +47 -0
  512. package/dist/esm/src/types/index.d.ts.map +1 -0
  513. package/dist/esm/src/types/index.js +42 -0
  514. package/dist/esm/src/types/index.js.map +1 -0
  515. package/dist/esm/src/ui/react/chat/ChatBubble.d.ts +23 -0
  516. package/dist/esm/src/ui/react/chat/ChatBubble.d.ts.map +1 -0
  517. package/dist/esm/src/ui/react/chat/ChatBubble.js +184 -0
  518. package/dist/esm/src/ui/react/chat/ChatBubble.js.map +1 -0
  519. package/package.json +118 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Tool Interface
3
+ *
4
+ * This interface defines the structure for callable tools that can be used by LLMs.
5
+ * Tools are exposed by ToolProviders and follow industry standards for compatibility
6
+ * with OpenAI, Anthropic, and LangChain.
7
+ */
8
+ /**
9
+ * Category of tool functionality
10
+ */
11
+ export var ToolCategory;
12
+ (function (ToolCategory) {
13
+ // Original categories
14
+ ToolCategory["CONTENT_CREATION"] = "content_creation";
15
+ ToolCategory["CONTENT_RETRIEVAL"] = "content_retrieval";
16
+ ToolCategory["DATA_MANIPULATION"] = "data_manipulation";
17
+ ToolCategory["EXTERNAL_SERVICE"] = "external_service";
18
+ ToolCategory["SYSTEM"] = "system";
19
+ ToolCategory["USER_INTERACTION"] = "user_interaction";
20
+ // Extended categories from ClassifiedTool
21
+ ToolCategory["MEMORY"] = "memory";
22
+ ToolCategory["DATA"] = "data";
23
+ ToolCategory["SEARCH"] = "search";
24
+ ToolCategory["UTILITY"] = "utility";
25
+ ToolCategory["TIME"] = "time";
26
+ ToolCategory["DOM"] = "dom";
27
+ ToolCategory["API"] = "api";
28
+ ToolCategory["FILE"] = "file";
29
+ ToolCategory["COMMUNICATION"] = "communication";
30
+ ToolCategory["CONTEXT_APP"] = "context-app";
31
+ ToolCategory["WORKFLOW"] = "workflow";
32
+ // New categories for specialized tools
33
+ ToolCategory["CHAT"] = "chat";
34
+ ToolCategory["SETTINGS"] = "settings";
35
+ ToolCategory["NAVIGATION"] = "navigation";
36
+ ToolCategory["ONBOARDING"] = "onboarding";
37
+ })(ToolCategory || (ToolCategory = {}));
38
+ //# sourceMappingURL=Tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tool.js","sourceRoot":"","sources":["../../../../src/types/Tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,YA2BX;AA3BD,WAAY,YAAY;IACtB,sBAAsB;IACtB,qDAAqC,CAAA;IACrC,uDAAuC,CAAA;IACvC,uDAAuC,CAAA;IACvC,qDAAqC,CAAA;IACrC,iCAAiB,CAAA;IACjB,qDAAqC,CAAA;IAErC,0CAA0C;IAC1C,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,+CAA+B,CAAA;IAC/B,2CAA2B,CAAA;IAC3B,qCAAqB,CAAA;IAErB,uCAAuC;IACvC,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,yCAAyB,CAAA;IACzB,yCAAyB,CAAA;AAC3B,CAAC,EA3BW,YAAY,KAAZ,YAAY,QA2BvB"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Tool Permissions Interface
3
+ *
4
+ * This interface defines the permission model for tools that can be called by LLMs.
5
+ * It follows a standardized approach to tool access control and security.
6
+ */
7
+ /**
8
+ * Permission level for tool execution
9
+ */
10
+ export declare enum ToolPermissionLevel {
11
+ /**
12
+ * User must approve each tool execution
13
+ */
14
+ ALWAYS_REQUIRE_APPROVAL = "always_require_approval",
15
+ /**
16
+ * User approves once, then allowed for session
17
+ */
18
+ APPROVE_ONCE = "approve_once",
19
+ /**
20
+ * Automatically approved for non-sensitive tools
21
+ */
22
+ AUTO_APPROVE = "auto_approve",
23
+ /**
24
+ * Can only be called by system components, not LLMs
25
+ */
26
+ SYSTEM_ONLY = "system_only"
27
+ }
28
+ /**
29
+ * Permission scope for tools
30
+ */
31
+ export declare enum ToolPermissionScope {
32
+ DATA_READ = "data:read",
33
+ DATA_WRITE = "data:write",
34
+ DATA_DELETE = "data:delete",
35
+ CONTENT_READ = "content:read",
36
+ CONTENT_WRITE = "content:write",
37
+ CONTENT_DELETE = "content:delete",
38
+ EXTERNAL_SERVICE = "external:service",
39
+ NETWORK_ACCESS = "network:access",
40
+ USER_INTERACTION = "user:interaction",
41
+ USER_NOTIFICATION = "user:notification",
42
+ SYSTEM_ACCESS = "system:access"
43
+ }
44
+ /**
45
+ * Permission model for a tool
46
+ */
47
+ export interface ToolPermissions {
48
+ /**
49
+ * Permission level required for the tool
50
+ */
51
+ level: ToolPermissionLevel;
52
+ /**
53
+ * Required permission scopes
54
+ */
55
+ requiredScopes: string[];
56
+ /**
57
+ * Whether the tool accesses sensitive data
58
+ */
59
+ sensitiveDataAccess: boolean;
60
+ /**
61
+ * Whether permanent storage changes are made
62
+ */
63
+ persistentChanges?: boolean;
64
+ /**
65
+ * Whether the tool can access network resources
66
+ */
67
+ networkAccess?: boolean;
68
+ /**
69
+ * Custom permission validator function (defined at runtime)
70
+ */
71
+ customValidator?: boolean;
72
+ }
73
+ //# sourceMappingURL=ToolPermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolPermissions.d.ts","sourceRoot":"","sources":["../../../../src/types/ToolPermissions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,uBAAuB,4BAA4B;IAEnD;;OAEG;IACH,YAAY,iBAAiB;IAE7B;;OAEG;IACH,YAAY,iBAAiB;IAE7B;;OAEG;IACH,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAE7B,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAG3B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IAGjC,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IAGjC,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IAGvC,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,mBAAmB,CAAC;IAE3B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Tool Permissions Interface
3
+ *
4
+ * This interface defines the permission model for tools that can be called by LLMs.
5
+ * It follows a standardized approach to tool access control and security.
6
+ */
7
+ /**
8
+ * Permission level for tool execution
9
+ */
10
+ export var ToolPermissionLevel;
11
+ (function (ToolPermissionLevel) {
12
+ /**
13
+ * User must approve each tool execution
14
+ */
15
+ ToolPermissionLevel["ALWAYS_REQUIRE_APPROVAL"] = "always_require_approval";
16
+ /**
17
+ * User approves once, then allowed for session
18
+ */
19
+ ToolPermissionLevel["APPROVE_ONCE"] = "approve_once";
20
+ /**
21
+ * Automatically approved for non-sensitive tools
22
+ */
23
+ ToolPermissionLevel["AUTO_APPROVE"] = "auto_approve";
24
+ /**
25
+ * Can only be called by system components, not LLMs
26
+ */
27
+ ToolPermissionLevel["SYSTEM_ONLY"] = "system_only";
28
+ })(ToolPermissionLevel || (ToolPermissionLevel = {}));
29
+ /**
30
+ * Permission scope for tools
31
+ */
32
+ export var ToolPermissionScope;
33
+ (function (ToolPermissionScope) {
34
+ // Data access scopes
35
+ ToolPermissionScope["DATA_READ"] = "data:read";
36
+ ToolPermissionScope["DATA_WRITE"] = "data:write";
37
+ ToolPermissionScope["DATA_DELETE"] = "data:delete";
38
+ // Content scopes
39
+ ToolPermissionScope["CONTENT_READ"] = "content:read";
40
+ ToolPermissionScope["CONTENT_WRITE"] = "content:write";
41
+ ToolPermissionScope["CONTENT_DELETE"] = "content:delete";
42
+ // External service scopes
43
+ ToolPermissionScope["EXTERNAL_SERVICE"] = "external:service";
44
+ ToolPermissionScope["NETWORK_ACCESS"] = "network:access";
45
+ // User interaction scopes
46
+ ToolPermissionScope["USER_INTERACTION"] = "user:interaction";
47
+ ToolPermissionScope["USER_NOTIFICATION"] = "user:notification";
48
+ // System scopes
49
+ ToolPermissionScope["SYSTEM_ACCESS"] = "system:access";
50
+ })(ToolPermissionScope || (ToolPermissionScope = {}));
51
+ //# sourceMappingURL=ToolPermissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolPermissions.js","sourceRoot":"","sources":["../../../../src/types/ToolPermissions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,mBAoBX;AApBD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,0EAAmD,CAAA;IAEnD;;OAEG;IACH,oDAA6B,CAAA;IAE7B;;OAEG;IACH,oDAA6B,CAAA;IAE7B;;OAEG;IACH,kDAA2B,CAAA;AAC7B,CAAC,EApBW,mBAAmB,KAAnB,mBAAmB,QAoB9B;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,mBAqBX;AArBD,WAAY,mBAAmB;IAC7B,qBAAqB;IACrB,8CAAuB,CAAA;IACvB,gDAAyB,CAAA;IACzB,kDAA2B,CAAA;IAE3B,iBAAiB;IACjB,oDAA6B,CAAA;IAC7B,sDAA+B,CAAA;IAC/B,wDAAiC,CAAA;IAEjC,0BAA0B;IAC1B,4DAAqC,CAAA;IACrC,wDAAiC,CAAA;IAEjC,0BAA0B;IAC1B,4DAAqC,CAAA;IACrC,8DAAuC,CAAA;IAEvC,gBAAgB;IAChB,sDAA+B,CAAA;AACjC,CAAC,EArBW,mBAAmB,KAAnB,mBAAmB,QAqB9B"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Tool Result Interface
3
+ *
4
+ * This interface defines the structure for results returned from tool executions.
5
+ * It is designed to be compatible with various LLM providers while maintaining
6
+ * a standardized structure across our platform.
7
+ */
8
+ /**
9
+ * Status of a tool execution
10
+ */
11
+ export declare enum ToolExecutionStatus {
12
+ SUCCESS = "success",
13
+ ERROR = "error",
14
+ PARTIAL = "partial",
15
+ CANCELLED = "cancelled",
16
+ TIMEOUT = "timeout",
17
+ PERMISSION_DENIED = "permission_denied",
18
+ PENDING = "pending",
19
+ RUNNING = "running"
20
+ }
21
+ /**
22
+ * Record of a tool call execution, used for tracking and displaying tool usage
23
+ */
24
+ export interface ToolCallRecord {
25
+ /**
26
+ * Unique identifier for this tool call
27
+ */
28
+ id: string;
29
+ /**
30
+ * ID of the tool that was called
31
+ */
32
+ toolId: string;
33
+ /**
34
+ * Name of the tool for display purposes
35
+ */
36
+ toolName: string;
37
+ /**
38
+ * Input parameters provided to the tool
39
+ */
40
+ input: any;
41
+ /**
42
+ * Output returned by the tool execution
43
+ */
44
+ output: any | null;
45
+ /**
46
+ * Current status of the tool execution
47
+ */
48
+ status: ToolExecutionStatus;
49
+ /**
50
+ * Timestamp when the execution was initiated
51
+ */
52
+ timestamp: number;
53
+ /**
54
+ * Error message if the execution failed
55
+ */
56
+ error?: string;
57
+ }
58
+ /**
59
+ * Basic tool result interface
60
+ */
61
+ export interface ToolResult {
62
+ /**
63
+ * Whether the operation was successful
64
+ */
65
+ success: boolean;
66
+ /**
67
+ * Output data from the tool execution
68
+ * This can be any valid JSON data, depending on the tool
69
+ */
70
+ output?: any;
71
+ /**
72
+ * Error message if the operation failed
73
+ */
74
+ error?: string;
75
+ /**
76
+ * Error code if applicable
77
+ */
78
+ errorCode?: string;
79
+ /**
80
+ * Detailed status of the execution
81
+ */
82
+ status?: ToolExecutionStatus;
83
+ /**
84
+ * Timestamp when the tool execution completed
85
+ */
86
+ timestamp?: number;
87
+ /**
88
+ * Time taken to execute the tool in milliseconds
89
+ */
90
+ executionTime?: number;
91
+ /**
92
+ * Whether the result should be cached
93
+ */
94
+ cacheable?: boolean;
95
+ /**
96
+ * Tool's declared return format (markdown or json)
97
+ */
98
+ returnType?: 'markdown' | 'json';
99
+ }
100
+ /**
101
+ * Extended tool result with provider-specific fields
102
+ */
103
+ export interface EnhancedToolResult extends ToolResult {
104
+ /**
105
+ * Additional metadata about the execution
106
+ */
107
+ metadata?: Record<string, any>;
108
+ /**
109
+ * References to any resources created or modified
110
+ */
111
+ references?: string[];
112
+ /**
113
+ * Permissions that were used during execution
114
+ */
115
+ usedPermissions?: string[];
116
+ /**
117
+ * Whether the user was prompted for permission
118
+ */
119
+ userPrompted?: boolean;
120
+ /**
121
+ * Whether the result has been truncated
122
+ */
123
+ truncated?: boolean;
124
+ /**
125
+ * Suggestions for follow-up actions
126
+ */
127
+ suggestions?: string[];
128
+ }
129
+ //# sourceMappingURL=ToolResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolResult.d.ts","sourceRoot":"","sources":["../../../../src/types/ToolResult.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,iBAAiB,sBAAsB;IACvC,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,mBAAmB,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,GAAG,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Tool Result Interface
3
+ *
4
+ * This interface defines the structure for results returned from tool executions.
5
+ * It is designed to be compatible with various LLM providers while maintaining
6
+ * a standardized structure across our platform.
7
+ */
8
+ /**
9
+ * Status of a tool execution
10
+ */
11
+ export var ToolExecutionStatus;
12
+ (function (ToolExecutionStatus) {
13
+ ToolExecutionStatus["SUCCESS"] = "success";
14
+ ToolExecutionStatus["ERROR"] = "error";
15
+ ToolExecutionStatus["PARTIAL"] = "partial";
16
+ ToolExecutionStatus["CANCELLED"] = "cancelled";
17
+ ToolExecutionStatus["TIMEOUT"] = "timeout";
18
+ ToolExecutionStatus["PERMISSION_DENIED"] = "permission_denied";
19
+ ToolExecutionStatus["PENDING"] = "pending";
20
+ ToolExecutionStatus["RUNNING"] = "running";
21
+ })(ToolExecutionStatus || (ToolExecutionStatus = {}));
22
+ //# sourceMappingURL=ToolResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolResult.js","sourceRoot":"","sources":["../../../../src/types/ToolResult.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,mBASX;AATD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,8CAAuB,CAAA;IACvB,0CAAmB,CAAA;IACnB,8DAAuC,CAAA;IACvC,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;AACrB,CAAC,EATW,mBAAmB,KAAnB,mBAAmB,QAS9B"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Tools Types - Index File
3
+ *
4
+ * This is the main entry point for all tool-related types.
5
+ * It re-exports all tool types from their specialized modules.
6
+ */
7
+ export * from './Tool';
8
+ export * from './ToolPermissions';
9
+ export * from './ToolResult';
10
+ export * from './ExposureState';
11
+ export * from './NavigationGraph';
12
+ export * from './ClassifiedTool';
13
+ export * from './DiscoverableToolProvider';
14
+ export * from './StateManagers';
15
+ export * from './OperationType';
16
+ export * from './ComponentState';
17
+ export interface ComponentInfo {
18
+ constantName: string;
19
+ testId: string;
20
+ elementType: ElementType;
21
+ actionType: ActionType;
22
+ methodName: string;
23
+ confidence: number;
24
+ source: string;
25
+ }
26
+ export declare enum ElementType {
27
+ BUTTON = "button",
28
+ INPUT = "input",
29
+ SELECT = "select",
30
+ TEXTAREA = "textarea",
31
+ LINK = "link",
32
+ DIV = "div"
33
+ }
34
+ export declare enum ActionType {
35
+ CLICK = "click",
36
+ TYPE = "type",
37
+ SELECT = "select",
38
+ NAVIGATE = "navigate",
39
+ HOVER = "hover",
40
+ SCROLL = "scroll"
41
+ }
42
+ /**
43
+ * Tools Types
44
+ *
45
+ * Export of all tool-related types, interfaces and constants
46
+ */
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAGjC,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED;;;;GAIG"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Tools Types - Index File
3
+ *
4
+ * This is the main entry point for all tool-related types.
5
+ * It re-exports all tool types from their specialized modules.
6
+ */
7
+ // Export tool types
8
+ export * from './Tool.js';
9
+ export * from './ToolPermissions.js';
10
+ export * from './ToolResult.js';
11
+ export * from './ExposureState.js';
12
+ export * from './NavigationGraph.js';
13
+ export * from './ClassifiedTool.js';
14
+ export * from './DiscoverableToolProvider.js';
15
+ // Export state system types
16
+ export * from './StateManagers.js';
17
+ export * from './OperationType.js';
18
+ export * from './ComponentState.js';
19
+ export var ElementType;
20
+ (function (ElementType) {
21
+ ElementType["BUTTON"] = "button";
22
+ ElementType["INPUT"] = "input";
23
+ ElementType["SELECT"] = "select";
24
+ ElementType["TEXTAREA"] = "textarea";
25
+ ElementType["LINK"] = "link";
26
+ ElementType["DIV"] = "div";
27
+ })(ElementType || (ElementType = {}));
28
+ export var ActionType;
29
+ (function (ActionType) {
30
+ ActionType["CLICK"] = "click";
31
+ ActionType["TYPE"] = "type";
32
+ ActionType["SELECT"] = "select";
33
+ ActionType["NAVIGATE"] = "navigate";
34
+ ActionType["HOVER"] = "hover";
35
+ ActionType["SCROLL"] = "scroll";
36
+ })(ActionType || (ActionType = {}));
37
+ /**
38
+ * Tools Types
39
+ *
40
+ * Export of all tool-related types, interfaces and constants
41
+ */
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAE3C,4BAA4B;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAajC,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,0BAAW,CAAA;AACb,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACnB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB;AAED;;;;GAIG"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Persistent Chat Bubble Component
3
+ *
4
+ * Fixed position chat bubble in lower right corner that:
5
+ * - Appears on every page
6
+ * - Expands/collapses without blocking content
7
+ * - Provides AI interface for tool execution
8
+ */
9
+ import React from 'react';
10
+ interface Message {
11
+ id: string;
12
+ text: string;
13
+ type: 'user' | 'ai' | 'system';
14
+ timestamp: string;
15
+ }
16
+ interface ChatBubbleProps {
17
+ messages: Message[];
18
+ onSendMessage: (message: string) => void;
19
+ onClearChat?: () => void;
20
+ }
21
+ export declare const ChatBubble: React.FC<ChatBubbleProps>;
22
+ export {};
23
+ //# sourceMappingURL=ChatBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatBubble.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/react/chat/ChatBubble.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgB3D,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAID,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0RhD,CAAC"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Persistent Chat Bubble Component
3
+ *
4
+ * Fixed position chat bubble in lower right corner that:
5
+ * - Appears on every page
6
+ * - Expands/collapses without blocking content
7
+ * - Provides AI interface for tool execution
8
+ */
9
+ import React, { useState, useRef, useEffect } from 'react';
10
+ import { Components } from '../../../../names/Components.js';
11
+ // Chat component names (use the flat Components namespace)
12
+ const ChatNames = {
13
+ bubble: Components.ChatToggleButton,
14
+ input: Components.ChatInput,
15
+ sendButton: Components.ChatSendButton,
16
+ clearButton: Components.ChatClearButton,
17
+ };
18
+ // Mock useChatInput for now - this should be injected via props or context
19
+ const useChatInput = () => ({
20
+ registerInput: (callback) => { }
21
+ });
22
+ const CHAT_EXPANDED_KEY = 'supernal-chat-expanded';
23
+ export const ChatBubble = ({ messages, onSendMessage, onClearChat }) => {
24
+ // Initialize with default value (true) for both server and client to prevent hydration mismatch
25
+ const [isExpanded, setIsExpanded] = useState(true);
26
+ const [inputValue, setInputValue] = useState('');
27
+ const [lastReadMessageCount, setLastReadMessageCount] = useState(0);
28
+ const [showWelcome, setShowWelcome] = useState(messages.length === 0);
29
+ const messagesEndRef = useRef(null);
30
+ const inputRef = useRef(null);
31
+ // Load expanded state from localStorage after hydration
32
+ useEffect(() => {
33
+ try {
34
+ const stored = localStorage.getItem(CHAT_EXPANDED_KEY);
35
+ if (stored !== null) {
36
+ setIsExpanded(JSON.parse(stored));
37
+ }
38
+ }
39
+ catch {
40
+ // Keep default value
41
+ }
42
+ }, []);
43
+ // Register with chat input context
44
+ const { registerInput } = useChatInput();
45
+ useEffect(() => {
46
+ registerInput((text, submit = false) => {
47
+ setInputValue(text);
48
+ if (!isExpanded) {
49
+ setIsExpanded(true);
50
+ }
51
+ // Auto-focus and submit if requested
52
+ setTimeout(() => {
53
+ inputRef.current?.focus();
54
+ if (submit) {
55
+ onSendMessage(text);
56
+ setInputValue('');
57
+ }
58
+ }, 100);
59
+ });
60
+ }, [registerInput, onSendMessage, isExpanded]);
61
+ // Track unread messages
62
+ const unreadCount = Math.max(0, messages.length - lastReadMessageCount);
63
+ const hasUnread = unreadCount > 0 && !isExpanded;
64
+ useEffect(() => {
65
+ if (isExpanded) {
66
+ // Position at bottom without scrolling animation
67
+ messagesEndRef.current?.scrollIntoView({ behavior: 'auto' });
68
+ // Mark all messages as read when chat is expanded
69
+ setLastReadMessageCount(messages.length);
70
+ // Hide welcome if messages exist
71
+ if (messages.length > 0) {
72
+ setShowWelcome(false);
73
+ }
74
+ // Auto-focus input when expanded
75
+ inputRef.current?.focus();
76
+ }
77
+ }, [messages, isExpanded]);
78
+ // Auto-focus on mount
79
+ useEffect(() => {
80
+ if (isExpanded) {
81
+ inputRef.current?.focus();
82
+ }
83
+ }, [isExpanded]);
84
+ // Command+/ keyboard shortcut to focus input
85
+ useEffect(() => {
86
+ const handleKeyDown = (e) => {
87
+ if ((e.metaKey || e.ctrlKey) && e.key === '/') {
88
+ e.preventDefault();
89
+ if (!isExpanded) {
90
+ setIsExpanded(true);
91
+ }
92
+ inputRef.current?.focus();
93
+ }
94
+ };
95
+ window.addEventListener('keydown', handleKeyDown);
96
+ return () => window.removeEventListener('keydown', handleKeyDown);
97
+ }, [isExpanded]);
98
+ const handleSend = (e) => {
99
+ e.preventDefault();
100
+ if (!inputValue.trim())
101
+ return;
102
+ onSendMessage(inputValue.trim());
103
+ setInputValue('');
104
+ // Re-focus input after sending
105
+ setTimeout(() => inputRef.current?.focus(), 0);
106
+ };
107
+ const handleToggle = () => {
108
+ const newExpandedState = !isExpanded;
109
+ setIsExpanded(newExpandedState);
110
+ // Persist the expanded state to localStorage
111
+ try {
112
+ localStorage.setItem(CHAT_EXPANDED_KEY, JSON.stringify(newExpandedState));
113
+ }
114
+ catch (error) {
115
+ console.error('Failed to save chat expanded state:', error);
116
+ }
117
+ };
118
+ return (React.createElement(React.Fragment, null,
119
+ React.createElement("div", { className: "fixed bottom-4 right-4 sm:bottom-6 sm:right-6 z-50" },
120
+ isExpanded && (React.createElement("div", { className: "absolute bottom-16 right-0 w-[calc(100vw-2rem)] sm:w-[500px] lg:w-[600px] h-[calc(100vh-10rem)] sm:h-[600px] lg:h-[700px] bg-white rounded-lg shadow-2xl border border-gray-200 flex flex-col" },
121
+ React.createElement("div", { className: "flex items-center justify-between p-3 sm:p-4 border-b border-gray-200 bg-gradient-to-r from-blue-50 to-purple-50 rounded-t-lg" },
122
+ React.createElement("div", { className: "flex items-center space-x-2 sm:space-x-3" },
123
+ React.createElement("div", { className: "relative" },
124
+ React.createElement("div", { className: "w-8 h-8 sm:w-10 sm:h-10 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center" },
125
+ React.createElement("span", { className: "text-white text-base sm:text-lg" }, "\uD83E\uDD16")),
126
+ React.createElement("div", { className: "absolute -bottom-1 -right-1 w-3 h-3 sm:w-4 sm:h-4 bg-green-500 rounded-full border-2 border-white" })),
127
+ React.createElement("div", null,
128
+ React.createElement("h3", { className: "font-bold text-gray-900 text-sm sm:text-base" }, "Supernal AI Interface"),
129
+ React.createElement("p", { className: "text-xs text-gray-600 hidden sm:block" }, "I'm a TOOL system AI can use to control this site"))),
130
+ React.createElement("div", { className: "flex items-center space-x-1" },
131
+ onClearChat && (React.createElement("button", { onClick: onClearChat, className: "p-1 text-gray-400 hover:text-gray-600 transition-colors", title: "Clear chat", "data-testid": ChatNames.clearButton },
132
+ React.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
133
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" })))),
134
+ React.createElement("button", { onClick: handleToggle, className: "p-1 text-gray-400 hover:text-gray-600 transition-colors", title: "Minimize chat" },
135
+ React.createElement("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
136
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))))),
137
+ React.createElement("div", { className: "flex-1 overflow-y-auto p-3 sm:p-4 space-y-3" },
138
+ showWelcome && messages.length === 0 && (React.createElement("div", { className: "bg-gradient-to-br from-blue-50 to-purple-50 p-3 sm:p-4 rounded-lg border border-blue-200 mb-4" },
139
+ React.createElement("h4", { className: "font-bold text-gray-900 mb-2 text-xs sm:text-sm" }, "\uD83D\uDC4B Welcome! I'm NOT an AI"),
140
+ React.createElement("p", { className: "text-xs text-gray-700 mb-3" },
141
+ "I'm a ",
142
+ React.createElement("strong", null, "tool system"),
143
+ " that AI assistants (like Claude, GPT) can use to navigate and control this site. This enables ",
144
+ React.createElement("strong", null, "agentic UX"),
145
+ " \u2014 instead of clicking around, you tell an AI what you want, and it uses me to do it."),
146
+ React.createElement("div", { className: "bg-white p-2 sm:p-3 rounded border border-gray-200 mb-3" },
147
+ React.createElement("p", { className: "text-xs font-medium text-gray-900 mb-2" }, "Try these commands:"),
148
+ React.createElement("div", { className: "space-y-1" }, [
149
+ { text: 'open the docs', desc: 'Navigate to documentation' },
150
+ { text: 'show me the story system', desc: 'View story system guide' },
151
+ { text: 'go to examples', desc: 'Browse code examples' },
152
+ ].map((cmd, idx) => (React.createElement("button", { key: idx, onClick: () => {
153
+ setInputValue(cmd.text);
154
+ setShowWelcome(false);
155
+ setTimeout(() => inputRef.current?.focus(), 0);
156
+ }, className: "w-full text-left px-2 py-1.5 rounded hover:bg-blue-50 transition-colors group" },
157
+ React.createElement("div", { className: "text-xs font-mono text-blue-700 group-hover:text-blue-900" },
158
+ "\"",
159
+ cmd.text,
160
+ "\""),
161
+ React.createElement("div", { className: "text-xs text-gray-500 hidden sm:block" }, cmd.desc)))))),
162
+ React.createElement("p", { className: "text-xs text-gray-600 italic" }, "Type a command or click a suggestion above to start"))),
163
+ messages.map((message) => (React.createElement("div", { key: message.id, className: "flex flex-col" },
164
+ React.createElement("div", { className: `inline-block px-3 py-2 rounded-lg max-w-[85%] sm:max-w-xs text-xs sm:text-sm ${message.type === 'user'
165
+ ? 'bg-blue-600 text-white ml-auto'
166
+ : message.type === 'ai'
167
+ ? 'bg-gray-200 text-gray-800'
168
+ : 'bg-yellow-100 text-yellow-800 text-xs'}`, "data-testid": `chat-message-${message.type}` }, message.text),
169
+ React.createElement("div", { className: "text-xs text-gray-400 mt-1 px-1" }, typeof window !== 'undefined' ? new Date(message.timestamp).toLocaleTimeString() : '')))),
170
+ React.createElement("div", { ref: messagesEndRef })),
171
+ React.createElement("form", { onSubmit: handleSend, className: "p-3 sm:p-4 border-t border-gray-200" },
172
+ React.createElement("div", { className: "flex space-x-2" },
173
+ React.createElement("input", { ref: inputRef, type: "text", value: inputValue, onChange: (e) => setInputValue(e.target.value), placeholder: "Try: toggle notifications", className: "flex-1 px-3 py-2 text-xs sm:text-sm border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent text-gray-800", "data-testid": ChatNames.input }),
174
+ React.createElement("button", { type: "submit", disabled: !inputValue.trim(), className: "px-3 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:bg-gray-300 disabled:cursor-not-allowed transition-colors text-xs sm:text-sm font-medium", "data-testid": ChatNames.sendButton }, "Execute")),
175
+ React.createElement("div", { className: "mt-2 text-xs text-gray-500 hidden sm:block" },
176
+ React.createElement("strong", null, "Demo:"),
177
+ " Commands execute @Tool methods and update widgets above")))),
178
+ React.createElement("button", { onClick: handleToggle, className: "absolute bottom-0 right-0 w-12 h-12 sm:w-14 sm:h-14 bg-blue-600 hover:bg-blue-700 text-white rounded-full shadow-lg transition-all duration-200 flex items-center justify-center", "data-testid": ChatNames.bubble, title: isExpanded ? 'Minimize chat' : 'Open AI chat' }, isExpanded ? (React.createElement("svg", { className: "w-5 h-5 sm:w-6 sm:h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
179
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))) : (React.createElement("svg", { className: "w-5 h-5 sm:w-6 sm:h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
180
+ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" })))),
181
+ hasUnread && (React.createElement("div", { className: "absolute -top-1 -right-1 w-4 h-4 sm:w-5 sm:h-5 bg-red-500 rounded-full flex items-center justify-center animate-pulse", "data-testid": "unread-indicator" },
182
+ React.createElement("span", { className: "text-xs text-white font-bold" }, unreadCount > 9 ? '9+' : unreadCount))))));
183
+ };
184
+ //# sourceMappingURL=ChatBubble.js.map