@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,200 @@
1
+ "use strict";
2
+ /**
3
+ * Generalized State-Based Test Helpers
4
+ *
5
+ * Utilities for testing ANY component using data contracts instead of UI text.
6
+ * These helpers provide a component-agnostic way to assert state.
7
+ *
8
+ * @module tests/generalized-state-helpers
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.getComponentState = getComponentState;
12
+ exports.assertComponentState = assertComponentState;
13
+ exports.setComponentState = setComponentState;
14
+ exports.waitForComponentState = waitForComponentState;
15
+ exports.assertStateAttribute = assertStateAttribute;
16
+ exports.getRegisteredComponents = getRegisteredComponents;
17
+ exports.debugComponentState = debugComponentState;
18
+ exports.debugAllComponentStates = debugAllComponentStates;
19
+ const test_1 = require("@playwright/test");
20
+ /**
21
+ * Get state from any component that exposes it
22
+ *
23
+ * @param page - Playwright page
24
+ * @param componentId - Component identifier (e.g., 'demo-widgets', 'chat', 'counter')
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const state = await getComponentState(page, 'demo-widgets');
29
+ * ```
30
+ */
31
+ async function getComponentState(page, componentId) {
32
+ return await page.evaluate((id) => {
33
+ if (window.__componentState__?.[id]) {
34
+ return window.__componentState__[id].get();
35
+ }
36
+ throw new Error(`Component state not exposed for: ${id}\n` +
37
+ `Available components: ${Object.keys(window.__componentState__ || {}).join(', ')}\n` +
38
+ `Make sure the component exposes state via window.__componentState__['${id}']`);
39
+ }, componentId);
40
+ }
41
+ /**
42
+ * Assert component state matches expected values
43
+ *
44
+ * @param page - Playwright page
45
+ * @param componentId - Component identifier
46
+ * @param expected - Partial state to match
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * await assertComponentState(page, 'demo-widgets', { menuOpen: true });
51
+ * await assertComponentState(page, 'counter', { count: 5 });
52
+ * await assertComponentState(page, 'chat', { isMinimized: false });
53
+ * ```
54
+ */
55
+ async function assertComponentState(page, componentId, expected) {
56
+ const actual = await getComponentState(page, componentId);
57
+ // Check each expected key matches
58
+ for (const key of Object.keys(expected)) {
59
+ const expectedValue = expected[key];
60
+ const actualValue = actual[key];
61
+ if (JSON.stringify(actualValue) !== JSON.stringify(expectedValue)) {
62
+ throw new Error(`State mismatch for component "${componentId}".\n` +
63
+ `Field: ${key}\n` +
64
+ `Expected: ${JSON.stringify(expectedValue)}\n` +
65
+ `Actual: ${JSON.stringify(actualValue)}\n` +
66
+ `Full state: ${JSON.stringify(actual, null, 2)}`);
67
+ }
68
+ }
69
+ }
70
+ /**
71
+ * Set component state (if component supports it)
72
+ *
73
+ * @param page - Playwright page
74
+ * @param componentId - Component identifier
75
+ * @param updates - Partial state to set
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * await setComponentState(page, 'demo-widgets', { theme: 'dark' });
80
+ * ```
81
+ */
82
+ async function setComponentState(page, componentId, updates) {
83
+ await page.evaluate(({ id, state }) => {
84
+ if (window.__componentState__?.[id]?.update) {
85
+ window.__componentState__[id].update(state);
86
+ }
87
+ else {
88
+ throw new Error(`Component ${id} does not support state updates or is not exposed`);
89
+ }
90
+ }, { id: componentId, state: updates });
91
+ }
92
+ /**
93
+ * Wait for component state to match condition
94
+ *
95
+ * @param page - Playwright page
96
+ * @param componentId - Component identifier
97
+ * @param condition - Function that returns true when state is ready
98
+ * @param options - Timeout and polling options
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * await waitForComponentState(page, 'chat',
103
+ * state => state.messages.length > 0
104
+ * );
105
+ * ```
106
+ */
107
+ async function waitForComponentState(page, componentId, condition, options = {}) {
108
+ const { timeout = 5000, pollInterval = 100 } = options;
109
+ const startTime = Date.now();
110
+ while (Date.now() - startTime < timeout) {
111
+ const state = await getComponentState(page, componentId);
112
+ if (condition(state)) {
113
+ return;
114
+ }
115
+ await page.waitForTimeout(pollInterval);
116
+ }
117
+ const currentState = await getComponentState(page, componentId);
118
+ throw new Error(`Timeout waiting for component state condition after ${timeout}ms.\n` +
119
+ `Component: ${componentId}\n` +
120
+ `Current state: ${JSON.stringify(currentState, null, 2)}`);
121
+ }
122
+ /**
123
+ * Assert state via data-state attributes (alternative approach)
124
+ * Useful when component doesn't expose JS state but adds data attributes
125
+ *
126
+ * @param page - Playwright page
127
+ * @param selector - CSS selector for component
128
+ * @param attribute - data-state-* attribute name
129
+ * @param expectedValue - Expected attribute value
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * await assertStateAttribute(page, '[data-testid="menu"]', 'data-state-open', 'true');
134
+ * ```
135
+ */
136
+ async function assertStateAttribute(page, selector, attribute, expectedValue) {
137
+ const element = page.locator(selector);
138
+ await (0, test_1.expect)(element).toHaveAttribute(attribute, expectedValue);
139
+ }
140
+ /**
141
+ * Get all registered component state IDs
142
+ * Useful for debugging
143
+ *
144
+ * @param page - Playwright page
145
+ * @returns Array of component IDs that expose state
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const components = await getRegisteredComponents(page);
150
+ * console.log('Available:', components); // ['demo-widgets', 'chat', 'counter']
151
+ * ```
152
+ */
153
+ async function getRegisteredComponents(page) {
154
+ return await page.evaluate(() => {
155
+ return Object.keys(window.__componentState__ || {});
156
+ });
157
+ }
158
+ /**
159
+ * Debug helper: Print current state of a component
160
+ *
161
+ * @param page - Playwright page
162
+ * @param componentId - Component identifier
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * await debugComponentState(page, 'demo-widgets');
167
+ * ```
168
+ */
169
+ async function debugComponentState(page, componentId) {
170
+ const state = await getComponentState(page, componentId);
171
+ console.log(`=== ${componentId} State ===`);
172
+ console.log(JSON.stringify(state, null, 2));
173
+ console.log('========================');
174
+ }
175
+ /**
176
+ * Debug helper: Print all component states
177
+ *
178
+ * @param page - Playwright page
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * await debugAllComponentStates(page);
183
+ * ```
184
+ */
185
+ async function debugAllComponentStates(page) {
186
+ const components = await getRegisteredComponents(page);
187
+ console.log(`\n=== All Component States (${components.length} found) ===`);
188
+ for (const id of components) {
189
+ try {
190
+ const state = await getComponentState(page, id);
191
+ console.log(`\n[${id}]:`);
192
+ console.log(JSON.stringify(state, null, 2));
193
+ }
194
+ catch (error) {
195
+ console.log(`\n[${id}]: Error - ${error}`);
196
+ }
197
+ }
198
+ console.log('\n========================================\n');
199
+ }
200
+ //# sourceMappingURL=ComponentStateHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentStateHelpers.js","sourceRoot":"","sources":["../../../../src/testing/ComponentStateHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ /**
3
+ * Gherkin Parser
4
+ *
5
+ * Parses Gherkin .feature files and converts them to executable test scenarios.
6
+ * Basic open-source version (Story system is enterprise edition).
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.GherkinParser = void 0;
10
+ // Story system moved to enterprise edition
11
+ // import { StoryBuilder, StoryDefinition, StoryRegistry } from '../background/stories';
12
+ const ToolRegistry_1 = require("../background/registry/ToolRegistry");
13
+ class GherkinParser {
14
+ /**
15
+ * Parse a Gherkin feature file content
16
+ */
17
+ static parseFeature(content) {
18
+ const lines = content.split('\n').map(l => l.trim()).filter(l => l && !l.startsWith('#'));
19
+ let feature = {
20
+ scenarios: []
21
+ };
22
+ let currentScenario = null;
23
+ let tags = [];
24
+ for (const line of lines) {
25
+ // Parse tags
26
+ if (line.startsWith('@')) {
27
+ tags = line.split(/\s+/).map(t => t.substring(1));
28
+ continue;
29
+ }
30
+ // Parse feature
31
+ if (line.startsWith('Feature:')) {
32
+ feature.name = line.substring(8).trim();
33
+ if (tags.length > 0) {
34
+ feature.tags = tags;
35
+ tags = [];
36
+ }
37
+ continue;
38
+ }
39
+ // Parse scenario
40
+ if (line.startsWith('Scenario:')) {
41
+ if (currentScenario) {
42
+ feature.scenarios.push(currentScenario);
43
+ }
44
+ currentScenario = {
45
+ name: line.substring(9).trim(),
46
+ tags: tags.length > 0 ? tags : undefined,
47
+ steps: []
48
+ };
49
+ tags = [];
50
+ continue;
51
+ }
52
+ // Parse steps
53
+ const stepMatch = line.match(/^(Given|When|Then|And|But)\s+(.+)$/);
54
+ if (stepMatch && currentScenario) {
55
+ const [, keyword, text] = stepMatch;
56
+ currentScenario.steps.push({
57
+ keyword: keyword,
58
+ text
59
+ });
60
+ }
61
+ // Description (lines after Feature: but before Scenario:)
62
+ if (!line.startsWith('Feature:') && !line.startsWith('Scenario:') && !stepMatch && feature.name && !currentScenario) {
63
+ feature.description = (feature.description || '') + line + ' ';
64
+ }
65
+ }
66
+ // Add last scenario
67
+ if (currentScenario) {
68
+ feature.scenarios.push(currentScenario);
69
+ }
70
+ return feature;
71
+ }
72
+ /**
73
+ * Resolve tool IDs from step text using natural language matching
74
+ */
75
+ static resolveSteps(steps) {
76
+ return steps.map(step => {
77
+ // Extract the command text (without Given/When/Then)
78
+ const commandText = step.text.toLowerCase();
79
+ // Try to find matching tool
80
+ const tools = ToolRegistry_1.ToolRegistry.searchTools(commandText);
81
+ if (tools.length > 0) {
82
+ // Use best match (first result)
83
+ const tool = tools[0];
84
+ // Extract parameters from step text
85
+ const params = this.extractParameters(step.text, tool.examples || []);
86
+ return {
87
+ ...step,
88
+ toolId: tool.toolId,
89
+ params
90
+ };
91
+ }
92
+ return step;
93
+ });
94
+ }
95
+ /**
96
+ * Extract parameters from step text
97
+ */
98
+ static extractParameters(text, examples) {
99
+ const params = {};
100
+ // Look for quoted strings
101
+ const quotedMatch = text.match(/"([^"]+)"/g);
102
+ if (quotedMatch) {
103
+ params.value = quotedMatch[0].replace(/"/g, '');
104
+ }
105
+ // Look for numbers
106
+ const numberMatch = text.match(/\b\d+\b/);
107
+ if (numberMatch) {
108
+ params.count = parseInt(numberMatch[0]);
109
+ }
110
+ return params;
111
+ }
112
+ /**
113
+ * Convert Gherkin scenario to Story definition
114
+ *
115
+ * NOTE: Story system is part of @supernal/interface-enterprise
116
+ * This method is not available in the open source edition.
117
+ *
118
+ * For enterprise features including story system, visit:
119
+ * https://supernal.ai/enterprise
120
+ */
121
+ static scenarioToStory(scenario, featureName) {
122
+ throw new Error('Story system is part of @supernal/interface-enterprise. ' +
123
+ 'Visit https://supernal.ai/enterprise for more information.');
124
+ }
125
+ /**
126
+ * Convert entire feature to stories and register them
127
+ *
128
+ * NOTE: Story system is part of @supernal/interface-enterprise
129
+ * This method is not available in the open source edition.
130
+ */
131
+ static featureToStories(feature) {
132
+ throw new Error('Story system is part of @supernal/interface-enterprise. ' +
133
+ 'Visit https://supernal.ai/enterprise for more information.');
134
+ }
135
+ /**
136
+ * Generate unique story ID from feature and scenario names
137
+ */
138
+ static generateStoryId(featureName, scenarioName) {
139
+ const cleanFeature = featureName.toLowerCase().replace(/[^a-z0-9]+/g, '-');
140
+ const cleanScenario = scenarioName.toLowerCase().replace(/[^a-z0-9]+/g, '-');
141
+ return `${cleanFeature}-${cleanScenario}`;
142
+ }
143
+ /**
144
+ * Generate Gherkin steps from tools
145
+ * Moved from ToolPromptGenerator for consolidation
146
+ */
147
+ static generateSteps(tools) {
148
+ return tools
149
+ .map(tool => {
150
+ const examples = tool.examples || [tool.name.toLowerCase()];
151
+ return examples
152
+ .map((ex) => ` When I ${ex}`)
153
+ .join('\n');
154
+ })
155
+ .join('\n');
156
+ }
157
+ /**
158
+ * Generate complete Gherkin feature from tool metadata
159
+ * Consolidated from both ToolPromptGenerator and original generateFeature
160
+ */
161
+ static generateFeature(featureName, tools, options) {
162
+ let feature = '';
163
+ // Tags
164
+ if (options?.tags && options.tags.length > 0) {
165
+ feature += options.tags.map(t => `@${t}`).join(' ') + '\n';
166
+ }
167
+ // Feature header
168
+ feature += `Feature: ${featureName}\n`;
169
+ if (options?.description) {
170
+ feature += ` ${options.description}\n`;
171
+ }
172
+ feature += '\n Scenario: AI navigation and interaction\n';
173
+ // Generate steps from tools
174
+ feature += this.generateSteps(tools);
175
+ return feature;
176
+ }
177
+ /**
178
+ * Generate Playwright test from Gherkin feature
179
+ */
180
+ static generatePlaywrightTest(feature) {
181
+ let test = `/**\n`;
182
+ test += ` * ${feature.name} - Generated from Gherkin\n`;
183
+ test += ` */\n\n`;
184
+ test += `import { test, expect } from '@playwright/test';\n`;
185
+ test += `import { StoryExecutor } from '@supernal-interface/core';\n\n`;
186
+ test += `test.describe('${feature.name}', () => {\n`;
187
+ for (const scenario of feature.scenarios) {
188
+ const storyId = this.generateStoryId(feature.name, scenario.name);
189
+ test += ` test('${scenario.name}', async ({ page }) => {\n`;
190
+ test += ` const executor = new StoryExecutor();\n`;
191
+ test += ` const context = { page };\n`;
192
+ test += ` \n`;
193
+ test += ` const result = await executor.executeStory('${storyId}', context);\n`;
194
+ test += ` \n`;
195
+ test += ` expect(result.success).toBe(true);\n`;
196
+ test += ` });\n\n`;
197
+ }
198
+ test += `});\n`;
199
+ return test;
200
+ }
201
+ /**
202
+ * Validate round-trip: Generate → Parse → Generate
203
+ * Ensures parsing and generation are consistent
204
+ */
205
+ static validateRoundTrip(tools, featureName = 'Test Feature') {
206
+ const errors = [];
207
+ // Generate original
208
+ const original = this.generateFeature(featureName, tools);
209
+ // Parse it
210
+ let parsed;
211
+ try {
212
+ parsed = this.parseFeature(original);
213
+ }
214
+ catch (error) {
215
+ return {
216
+ valid: false,
217
+ original,
218
+ parsed: { name: '', scenarios: [] },
219
+ regenerated: '',
220
+ errors: [`Parse error: ${error}`]
221
+ };
222
+ }
223
+ // Regenerate from parsed structure
224
+ const regenerated = this.generateFeature(parsed.name, tools, {
225
+ description: parsed.description,
226
+ tags: parsed.tags
227
+ });
228
+ // Compare (normalized)
229
+ const normalizeGherkin = (str) => str.trim().replace(/\s+/g, ' ').replace(/\n\s*/g, '\n');
230
+ const originalNorm = normalizeGherkin(original);
231
+ const regeneratedNorm = normalizeGherkin(regenerated);
232
+ if (originalNorm !== regeneratedNorm) {
233
+ errors.push('Round-trip failed: Generated text differs after parse');
234
+ }
235
+ // Validate structure
236
+ if (!parsed.name) {
237
+ errors.push('Parsed feature has no name');
238
+ }
239
+ if (parsed.scenarios.length === 0) {
240
+ errors.push('Parsed feature has no scenarios');
241
+ }
242
+ return {
243
+ valid: errors.length === 0,
244
+ original,
245
+ parsed,
246
+ regenerated,
247
+ errors
248
+ };
249
+ }
250
+ }
251
+ exports.GherkinParser = GherkinParser;
252
+ //# sourceMappingURL=GherkinParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GherkinParser.js","sourceRoot":"","sources":["../../../../src/testing/GherkinParser.ts"],"names":[],"mappings":"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"}