@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,174 @@
1
+ /**
2
+ * ToolExecutor - Universal execution engine for tools
3
+ *
4
+ * Supports multiple execution strategies:
5
+ * - Programmatic (direct method call)
6
+ * - DOM-based (Playwright/browser automation)
7
+ * - Navigation (route changes)
8
+ */
9
+ /**
10
+ * Main ToolExecutor orchestrator
11
+ */
12
+ export class ToolExecutor {
13
+ constructor() {
14
+ this.strategies = [];
15
+ // Register default strategies (order matters - first match wins)
16
+ this.registerStrategy(new ProgrammaticExecutor());
17
+ this.registerStrategy(new NavigationExecutor());
18
+ this.registerStrategy(new DOMExecutor());
19
+ }
20
+ /**
21
+ * Register a new execution strategy
22
+ */
23
+ registerStrategy(strategy) {
24
+ this.strategies.push(strategy);
25
+ }
26
+ /**
27
+ * Execute a tool using the appropriate strategy
28
+ */
29
+ async execute(tool, parameters = []) {
30
+ const startTime = Date.now();
31
+ // Find first strategy that can execute this tool
32
+ for (const strategy of this.strategies) {
33
+ if (strategy.canExecute(tool)) {
34
+ // console.log(`🔧 [ToolExecutor] Using strategy: ${strategy.name}`);
35
+ try {
36
+ const result = await strategy.execute(tool, parameters);
37
+ result.timing = Date.now() - startTime;
38
+ return result;
39
+ }
40
+ catch (error) {
41
+ // console.error(`[ToolExecutor] Strategy ${strategy.name} failed:`, error);
42
+ return {
43
+ success: false,
44
+ message: `Execution failed: ${error instanceof Error ? error.message : String(error)}`,
45
+ error: error instanceof Error ? error : new Error(String(error)),
46
+ timing: Date.now() - startTime
47
+ };
48
+ }
49
+ }
50
+ }
51
+ // No strategy could execute
52
+ return {
53
+ success: false,
54
+ message: `No execution strategy available for tool: ${tool.name}`,
55
+ timing: Date.now() - startTime
56
+ };
57
+ }
58
+ }
59
+ /**
60
+ * Programmatic execution - direct method calls
61
+ */
62
+ class ProgrammaticExecutor {
63
+ constructor() {
64
+ this.name = 'programmatic';
65
+ }
66
+ canExecute(tool) {
67
+ // Can execute if tool has instance and method name
68
+ return !!(tool.instance && tool.methodName);
69
+ }
70
+ async execute(tool, parameters) {
71
+ // console.log(`🎯 [Programmatic] Executing: ${tool.name}`, parameters);
72
+ const result = await tool.instance[tool.methodName](...parameters);
73
+ // Handle different return types
74
+ if (typeof result === 'object' && result !== null) {
75
+ if ('success' in result && 'message' in result) {
76
+ // Already in ExecutionResult format
77
+ return result;
78
+ }
79
+ // Convert to ExecutionResult
80
+ return {
81
+ success: true,
82
+ message: result.message || `${tool.name} executed successfully`,
83
+ data: result
84
+ };
85
+ }
86
+ // Primitive return value
87
+ return {
88
+ success: true,
89
+ message: `${tool.name} executed successfully`,
90
+ data: result
91
+ };
92
+ }
93
+ }
94
+ /**
95
+ * Navigation execution - route changes
96
+ */
97
+ class NavigationExecutor {
98
+ constructor() {
99
+ this.name = 'navigation';
100
+ }
101
+ canExecute(tool) {
102
+ // Check if tool is navigation-related
103
+ const isNavCategory = tool.category === 'navigation';
104
+ const hasNavKeywords = tool.name.toLowerCase().includes('navigate') ||
105
+ tool.name.toLowerCase().includes('go to') ||
106
+ tool.description?.toLowerCase().includes('navigate');
107
+ return isNavCategory || hasNavKeywords;
108
+ }
109
+ async execute(tool, parameters) {
110
+ // console.log(`🗺️ [Navigation] Executing: ${tool.name}`, parameters);
111
+ // Use programmatic executor first (navigation tools typically have instance methods)
112
+ if (tool.instance && tool.methodName) {
113
+ const programmatic = new ProgrammaticExecutor();
114
+ return programmatic.execute(tool, parameters);
115
+ }
116
+ // Fallback: try to extract route from tool metadata
117
+ const route = tool.route || tool.elementId;
118
+ if (route) {
119
+ // Get NavigationGraph singleton and use its handler
120
+ const { NavigationGraph } = await import('../background/navigation/NavigationGraph');
121
+ const graph = NavigationGraph.getInstance();
122
+ // Use the public getRouteForContext method and the handler
123
+ const handler = graph.navigationHandler;
124
+ if (handler) {
125
+ await handler(route);
126
+ return {
127
+ success: true,
128
+ message: `Navigated to ${tool.name}`
129
+ };
130
+ }
131
+ }
132
+ throw new Error('No navigation method available');
133
+ }
134
+ }
135
+ /**
136
+ * DOM execution - browser automation (Playwright, etc.)
137
+ */
138
+ class DOMExecutor {
139
+ constructor() {
140
+ this.name = 'dom';
141
+ }
142
+ canExecute(tool) {
143
+ // Can execute if tool has elementId (DOM target)
144
+ return !!tool.elementId && !tool.instance;
145
+ }
146
+ async execute(tool, _parameters) {
147
+ // console.log(`🌐 [DOM] Executing: ${tool.name}`, _parameters);
148
+ // Find element in DOM
149
+ const element = document.querySelector(`[data-testid="${tool.elementId}"]`);
150
+ if (!element) {
151
+ throw new Error(`Could not find element with data-testid="${tool.elementId}"`);
152
+ }
153
+ // Determine action type
154
+ if (element.tagName === 'BUTTON' || element.tagName === 'A') {
155
+ element.click();
156
+ return {
157
+ success: true,
158
+ message: `Clicked ${tool.name}`
159
+ };
160
+ }
161
+ if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA') {
162
+ if (_parameters.length > 0) {
163
+ element.value = String(_parameters[0]);
164
+ element.dispatchEvent(new Event('input', { bubbles: true }));
165
+ return {
166
+ success: true,
167
+ message: `Entered text into ${tool.name}`
168
+ };
169
+ }
170
+ }
171
+ throw new Error(`Unsupported element type: ${element.tagName}`);
172
+ }
173
+ }
174
+ //# sourceMappingURL=ToolExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolExecutor.js","sourceRoot":"","sources":["../../../../src/ai/ToolExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * ToolMatcher - Pluggable strategy for matching user queries to tools
3
+ *
4
+ * Supports multiple matching strategies with priority-based selection:
5
+ * - Exact match (priority 100)
6
+ * - Fuzzy string matching (priority 60)
7
+ * - LLM-based semantic matching (priority 50)
8
+ * - Keyword-based heuristics (priority 30)
9
+ */
10
+ import type { ToolMetadata } from '../decorators/Tool';
11
+ /**
12
+ * Match result with confidence score and extracted parameters
13
+ */
14
+ export interface ToolMatch {
15
+ tool: ToolMetadata;
16
+ confidence: number;
17
+ parameters?: any[];
18
+ reasoning?: string;
19
+ }
20
+ /**
21
+ * Base interface for all matching strategies
22
+ */
23
+ export interface MatcherStrategy {
24
+ name: string;
25
+ priority: number;
26
+ /**
27
+ * Match a query against available tools
28
+ * @returns Array of matches sorted by confidence (highest first)
29
+ */
30
+ match(query: string, tools: ToolMetadata[], context?: MatchContext): Promise<ToolMatch[]>;
31
+ }
32
+ /**
33
+ * Context passed to matchers for better matching
34
+ */
35
+ export interface MatchContext {
36
+ currentContainer?: string;
37
+ currentPage?: string;
38
+ conversationHistory?: string[];
39
+ userPreferences?: Record<string, any>;
40
+ }
41
+ /**
42
+ * Main ToolMatcher orchestrator
43
+ */
44
+ export declare class ToolMatcher {
45
+ private strategies;
46
+ constructor();
47
+ /**
48
+ * Register a new matching strategy
49
+ */
50
+ registerStrategy(strategy: MatcherStrategy): void;
51
+ /**
52
+ * Find best matches for a query using all strategies
53
+ * @returns Top N matches sorted by confidence
54
+ */
55
+ findMatches(query: string, tools: ToolMetadata[], context?: MatchContext, topN?: number): Promise<ToolMatch[]>;
56
+ /**
57
+ * Get suggestions for invalid/ambiguous queries
58
+ */
59
+ getSuggestions(query: string, tools: ToolMetadata[], context?: MatchContext): Promise<string[]>;
60
+ }
61
+ //# sourceMappingURL=ToolMatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolMatcher.d.ts","sourceRoot":"","sources":["../../../../src/ai/ToolMatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;CAC3F;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAyB;;IAQ3C;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAMjD;;;OAGG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,YAAY,EACtB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,SAAS,EAAE,CAAC;IA8BvB;;OAEG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC;CAiBrB"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * ToolMatcher - Pluggable strategy for matching user queries to tools
3
+ *
4
+ * Supports multiple matching strategies with priority-based selection:
5
+ * - Exact match (priority 100)
6
+ * - Fuzzy string matching (priority 60)
7
+ * - LLM-based semantic matching (priority 50)
8
+ * - Keyword-based heuristics (priority 30)
9
+ */
10
+ /**
11
+ * Main ToolMatcher orchestrator
12
+ */
13
+ export class ToolMatcher {
14
+ constructor() {
15
+ this.strategies = [];
16
+ // Register default strategies (more added via registerStrategy)
17
+ this.registerStrategy(new ExactMatcher());
18
+ this.registerStrategy(new FuzzyMatcher());
19
+ }
20
+ /**
21
+ * Register a new matching strategy
22
+ */
23
+ registerStrategy(strategy) {
24
+ this.strategies.push(strategy);
25
+ // Sort by priority (highest first)
26
+ this.strategies.sort((a, b) => b.priority - a.priority);
27
+ }
28
+ /**
29
+ * Find best matches for a query using all strategies
30
+ * @returns Top N matches sorted by confidence
31
+ */
32
+ async findMatches(query, tools, context, topN = 5) {
33
+ const allMatches = [];
34
+ // Try each strategy in priority order
35
+ for (const strategy of this.strategies) {
36
+ try {
37
+ const matches = await strategy.match(query, tools, context);
38
+ allMatches.push(...matches);
39
+ }
40
+ catch (error) {
41
+ console.warn(`[ToolMatcher] Strategy ${strategy.name} failed:`, error);
42
+ }
43
+ }
44
+ // Deduplicate by tool ID and keep highest confidence
45
+ const deduped = new Map();
46
+ for (const match of allMatches) {
47
+ const key = match.tool.elementId || match.tool.name;
48
+ const existing = deduped.get(key);
49
+ if (!existing || match.confidence > existing.confidence) {
50
+ deduped.set(key, match);
51
+ }
52
+ }
53
+ // Sort by confidence and return top N
54
+ return Array.from(deduped.values())
55
+ .sort((a, b) => b.confidence - a.confidence)
56
+ .slice(0, topN);
57
+ }
58
+ /**
59
+ * Get suggestions for invalid/ambiguous queries
60
+ */
61
+ async getSuggestions(query, tools, context) {
62
+ // Find close matches (confidence 30-60%)
63
+ const matches = await this.findMatches(query, tools, context, 10);
64
+ const suggestions = matches
65
+ .filter(m => m.confidence >= 30 && m.confidence < 70)
66
+ .map(m => {
67
+ const toolName = m.tool.name;
68
+ const examples = m.tool.examples;
69
+ if (examples && examples.length > 0) {
70
+ return `"${examples[0]}"`;
71
+ }
72
+ return `"${toolName}"`;
73
+ })
74
+ .slice(0, 5);
75
+ return suggestions;
76
+ }
77
+ }
78
+ /**
79
+ * Exact match strategy - checks for exact tool name or example match
80
+ */
81
+ class ExactMatcher {
82
+ constructor() {
83
+ this.name = 'exact';
84
+ this.priority = 100;
85
+ }
86
+ async match(query, tools) {
87
+ const lowerQuery = query.toLowerCase().trim();
88
+ const matches = [];
89
+ for (const tool of tools) {
90
+ const toolName = tool.name.toLowerCase();
91
+ const examples = tool.examples || [];
92
+ // Check exact name match
93
+ if (lowerQuery === toolName) {
94
+ matches.push({
95
+ tool,
96
+ confidence: 100,
97
+ reasoning: 'Exact name match'
98
+ });
99
+ continue;
100
+ }
101
+ // Check exact example match
102
+ for (const example of examples) {
103
+ const exampleLower = example.toLowerCase();
104
+ if (lowerQuery === exampleLower) {
105
+ matches.push({
106
+ tool,
107
+ confidence: 95,
108
+ reasoning: `Exact example match: "${example}"`
109
+ });
110
+ break;
111
+ }
112
+ }
113
+ }
114
+ return matches;
115
+ }
116
+ }
117
+ /**
118
+ * Fuzzy match strategy - uses Levenshtein distance and keyword matching
119
+ */
120
+ class FuzzyMatcher {
121
+ constructor() {
122
+ this.name = 'fuzzy';
123
+ this.priority = 60;
124
+ }
125
+ async match(query, tools) {
126
+ const lowerQuery = query.toLowerCase().trim();
127
+ const matches = [];
128
+ for (const tool of tools) {
129
+ let bestScore = 0;
130
+ let bestMatch = '';
131
+ // Check tool name similarity
132
+ const nameScore = this.similarity(lowerQuery, tool.name.toLowerCase());
133
+ if (nameScore > bestScore) {
134
+ bestScore = nameScore;
135
+ bestMatch = tool.name;
136
+ }
137
+ // Check examples similarity
138
+ const examples = tool.examples || [];
139
+ for (const example of examples) {
140
+ const exampleScore = this.similarity(lowerQuery, example.toLowerCase());
141
+ if (exampleScore > bestScore) {
142
+ bestScore = exampleScore;
143
+ bestMatch = example;
144
+ }
145
+ }
146
+ // Check keyword overlap
147
+ const keywords = tool.description?.toLowerCase().split(/\s+/) || [];
148
+ const queryWords = lowerQuery.split(/\s+/);
149
+ const keywordScore = queryWords.filter(w => keywords.includes(w)).length / queryWords.length;
150
+ if (keywordScore > bestScore) {
151
+ bestScore = keywordScore;
152
+ bestMatch = 'keyword overlap';
153
+ }
154
+ // Only include if confidence > 50%
155
+ if (bestScore > 0.5) {
156
+ matches.push({
157
+ tool,
158
+ confidence: Math.round(bestScore * 100),
159
+ reasoning: `Fuzzy match: ${bestMatch}`
160
+ });
161
+ }
162
+ }
163
+ return matches;
164
+ }
165
+ /**
166
+ * Calculate similarity between two strings (0-1)
167
+ * Uses Levenshtein distance normalized by string length
168
+ */
169
+ similarity(a, b) {
170
+ const distance = this.levenshtein(a, b);
171
+ const maxLength = Math.max(a.length, b.length);
172
+ return 1 - (distance / maxLength);
173
+ }
174
+ /**
175
+ * Levenshtein distance algorithm
176
+ */
177
+ levenshtein(a, b) {
178
+ const matrix = [];
179
+ for (let i = 0; i <= b.length; i++) {
180
+ matrix[i] = [i];
181
+ }
182
+ for (let j = 0; j <= a.length; j++) {
183
+ matrix[0][j] = j;
184
+ }
185
+ for (let i = 1; i <= b.length; i++) {
186
+ for (let j = 1; j <= a.length; j++) {
187
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
188
+ matrix[i][j] = matrix[i - 1][j - 1];
189
+ }
190
+ else {
191
+ matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j] + 1);
192
+ }
193
+ }
194
+ }
195
+ return matrix[b.length][a.length];
196
+ }
197
+ }
198
+ //# sourceMappingURL=ToolMatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolMatcher.js","sourceRoot":"","sources":["../../../../src/ai/ToolMatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * AI Command Interface - Core exports (Open Source Edition)
3
+ *
4
+ * Basic AI matching and execution. Advanced features (LLMProvider,
5
+ * ParameterExtractor, SuggestionEngine) available in enterprise edition.
6
+ */
7
+ export * from './ToolMatcher';
8
+ export * from './ToolExecutor';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * AI Command Interface - Core exports (Open Source Edition)
3
+ *
4
+ * Basic AI matching and execution. Advanced features (LLMProvider,
5
+ * ParameterExtractor, SuggestionEngine) available in enterprise edition.
6
+ */
7
+ export * from './ToolMatcher.js';
8
+ export * from './ToolExecutor.js';
9
+ // Enterprise features - available at https://supernal.ai/enterprise
10
+ // export * from './ParameterExtractor.js';
11
+ // export * from './LLMProvider.js';
12
+ // export * from './SuggestionEngine.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAE/B,oEAAoE;AACpE,wCAAwC;AACxC,iCAAiC;AACjC,sCAAsC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Create Container Helper
3
+ *
4
+ * Creates a container configuration and registers it with the architecture registry.
5
+ * Supports multiple formats from minimal to fully configured.
6
+ *
7
+ * @example Minimal format (infers most fields)
8
+ * ```typescript
9
+ * export const BlogContainer = createContainer('Blog', 'page');
10
+ * // Result: { id: 'blog', name: 'Blog', type: 'page', route: '/blog' }
11
+ * ```
12
+ *
13
+ * @example With route override
14
+ * ```typescript
15
+ * export const BlogContainer = createContainer('Blog', 'page', '/posts');
16
+ * // Result: { id: 'blog', name: 'Blog', type: 'page', route: '/posts' }
17
+ * ```
18
+ *
19
+ * @example Full config object (maximum control)
20
+ * ```typescript
21
+ * export const BlogContainer = createContainer({
22
+ * id: 'blog-archive',
23
+ * name: 'Blog',
24
+ * type: 'page',
25
+ * route: '/archive',
26
+ * description: 'Blog archive page',
27
+ * metadata: { category: 'content' }
28
+ * });
29
+ * ```
30
+ */
31
+ export interface ContainerConfig {
32
+ id: string;
33
+ name: string;
34
+ type: 'page' | 'modal' | 'drawer' | 'section';
35
+ route?: string;
36
+ description?: string;
37
+ parent?: string;
38
+ metadata?: Record<string, any>;
39
+ }
40
+ export declare function createContainer(name: string, type: 'page' | 'modal' | 'drawer' | 'section', route?: string): ContainerConfig;
41
+ export declare function createContainer(config: ContainerConfig): ContainerConfig;
42
+ /**
43
+ * Create multiple containers at once
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * export const Containers = createContainers({
48
+ * Blog: { id: 'blog', name: 'Blog', type: 'page', route: '/blog' },
49
+ * Demo: { id: 'demo', name: 'Demo', type: 'page', route: '/demo' },
50
+ * });
51
+ * ```
52
+ */
53
+ export declare function createContainers<T extends Record<string, ContainerConfig>>(configs: T): T;
54
+ /**
55
+ * Type helper for container names
56
+ */
57
+ export type ContainerName<T> = T extends {
58
+ name: infer N;
59
+ } ? N : never;
60
+ //# sourceMappingURL=createContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContainer.d.ts","sourceRoot":"","sources":["../../../../src/architecture/createContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAqBD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,EAC7C,KAAK,CAAC,EAAE,MAAM,GACb,eAAe,CAAC;AAGnB,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAAC;AAkD1E;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACxE,OAAO,EAAE,CAAC,GACT,CAAC,CAQH;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Create Container Helper
3
+ *
4
+ * Creates a container configuration and registers it with the architecture registry.
5
+ * Supports multiple formats from minimal to fully configured.
6
+ *
7
+ * @example Minimal format (infers most fields)
8
+ * ```typescript
9
+ * export const BlogContainer = createContainer('Blog', 'page');
10
+ * // Result: { id: 'blog', name: 'Blog', type: 'page', route: '/blog' }
11
+ * ```
12
+ *
13
+ * @example With route override
14
+ * ```typescript
15
+ * export const BlogContainer = createContainer('Blog', 'page', '/posts');
16
+ * // Result: { id: 'blog', name: 'Blog', type: 'page', route: '/posts' }
17
+ * ```
18
+ *
19
+ * @example Full config object (maximum control)
20
+ * ```typescript
21
+ * export const BlogContainer = createContainer({
22
+ * id: 'blog-archive',
23
+ * name: 'Blog',
24
+ * type: 'page',
25
+ * route: '/archive',
26
+ * description: 'Blog archive page',
27
+ * metadata: { category: 'content' }
28
+ * });
29
+ * ```
30
+ */
31
+ import { architectureRegistry } from '../architecture/registry.js';
32
+ /**
33
+ * Convert name to kebab-case ID
34
+ */
35
+ function nameToId(name) {
36
+ return name
37
+ .replace(/([A-Z])/g, '-$1')
38
+ .toLowerCase()
39
+ .replace(/^-/, '');
40
+ }
41
+ /**
42
+ * Convert name to default route
43
+ */
44
+ function nameToRoute(name) {
45
+ return '/' + nameToId(name);
46
+ }
47
+ /**
48
+ * Create and register a container with flexible input formats
49
+ */
50
+ // eslint-disable-next-line no-redeclare
51
+ export function createContainer(nameOrConfig, type, route) {
52
+ let config;
53
+ if (typeof nameOrConfig === 'string') {
54
+ // Minimal format: createContainer('Blog', 'page', '/custom-route')
55
+ if (!type) {
56
+ throw new Error('Type is required when using string format');
57
+ }
58
+ const name = nameOrConfig;
59
+ const id = nameToId(name);
60
+ const inferredRoute = route || nameToRoute(name);
61
+ config = {
62
+ id,
63
+ name,
64
+ type,
65
+ route: inferredRoute,
66
+ };
67
+ }
68
+ else {
69
+ // Full config object format
70
+ config = nameOrConfig;
71
+ // Validate required fields
72
+ if (!config.id || !config.name || !config.type) {
73
+ throw new Error('Container must have id, name, and type');
74
+ }
75
+ // Infer route if not provided and type is page
76
+ if (!config.route && config.type === 'page') {
77
+ config.route = nameToRoute(config.name);
78
+ }
79
+ }
80
+ // Register with architecture
81
+ architectureRegistry.registerContainer(config.name, config);
82
+ return config;
83
+ }
84
+ /**
85
+ * Create multiple containers at once
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * export const Containers = createContainers({
90
+ * Blog: { id: 'blog', name: 'Blog', type: 'page', route: '/blog' },
91
+ * Demo: { id: 'demo', name: 'Demo', type: 'page', route: '/demo' },
92
+ * });
93
+ * ```
94
+ */
95
+ export function createContainers(configs) {
96
+ const result = {};
97
+ for (const [key, config] of Object.entries(configs)) {
98
+ result[key] = createContainer(config);
99
+ }
100
+ return result;
101
+ }
102
+ //# sourceMappingURL=createContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createContainer.js","sourceRoot":"","sources":["../../../../src/architecture/createContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAYhE;;GAEG;AACH,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI;SACR,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAaD;;GAEG;AACH,wCAAwC;AACxC,MAAM,UAAU,eAAe,CAC7B,YAAsC,EACtC,IAA8C,EAC9C,KAAc;IAEd,IAAI,MAAuB,CAAC;IAE5B,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,mEAAmE;QACnE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAEjD,MAAM,GAAG;YACP,EAAE;YACF,IAAI;YACJ,IAAI;YACJ,KAAK,EAAE,aAAa;SACrB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,MAAM,GAAG,YAAY,CAAC;QAEtB,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5C,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,oBAAoB,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE5D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAU;IAEV,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}