@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,81 @@
1
+ /**
2
+ * Zero-Config Architecture Initialization
3
+ *
4
+ * Automatically discovers and initializes architecture from registered components and containers.
5
+ * Uses convention over configuration to eliminate boilerplate.
6
+ */
7
+ import { NavigationGraph } from '../background/navigation/NavigationGraph';
8
+ export interface ArchitectureOptions {
9
+ /**
10
+ * Override auto-inferred navigation mapping
11
+ */
12
+ navToContainerMap?: Record<string, string>;
13
+ /**
14
+ * Enable automatic edge inference
15
+ */
16
+ autoInferEdges?: boolean;
17
+ /**
18
+ * Mirror tools between containers (for shared components)
19
+ */
20
+ mirrorTools?: Array<{
21
+ from: string;
22
+ to: string;
23
+ }>;
24
+ /**
25
+ * Custom initialization logic
26
+ */
27
+ onInitialize?: (graph: NavigationGraph) => void;
28
+ }
29
+ export interface InitializedArchitecture {
30
+ /**
31
+ * Initialize the architecture (call this once on app startup)
32
+ */
33
+ initialize: () => void;
34
+ /**
35
+ * Create a navigation handler for page routing
36
+ */
37
+ createNavigationHandler: (router: any) => (page: string) => void;
38
+ /**
39
+ * Get the navigation graph
40
+ */
41
+ getGraph: () => NavigationGraph;
42
+ /**
43
+ * Get all registered components
44
+ */
45
+ getComponents: () => Record<string, Record<string, string>>;
46
+ /**
47
+ * Get all registered containers
48
+ */
49
+ getContainers: () => Record<string, any>;
50
+ }
51
+ /**
52
+ * Initialize architecture from registered components and containers
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * // After importing component/container definitions:
57
+ * export const DemoArchitecture = initializeArchitecture({
58
+ * autoInferEdges: true,
59
+ * });
60
+ *
61
+ * // In your app:
62
+ * DemoArchitecture.initialize();
63
+ * ```
64
+ */
65
+ export declare function initializeArchitecture(options?: ArchitectureOptions): InitializedArchitecture;
66
+ /**
67
+ * Create an auto-initializer with explicit configuration (legacy support)
68
+ *
69
+ * @deprecated Use initializeArchitecture() for zero-config approach
70
+ */
71
+ export declare function createAutoInitializer(config: {
72
+ containers: Record<string, any>;
73
+ components: Record<string, any>;
74
+ navToContainerMap?: Record<string, string>;
75
+ autoInferEdges?: boolean;
76
+ mirrorTools?: Array<{
77
+ from: string;
78
+ to: string;
79
+ }>;
80
+ }): InitializedArchitecture;
81
+ //# sourceMappingURL=initialize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../../../src/architecture/initialize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3C;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAElD;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,uBAAuB,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjE;;OAEG;IACH,QAAQ,EAAE,MAAM,eAAe,CAAC;IAEhC;;OAEG;IACH,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,mBAAwB,GAChC,uBAAuB,CAwFzB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD,GAAG,uBAAuB,CAiB1B"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Zero-Config Architecture Initialization
3
+ *
4
+ * Automatically discovers and initializes architecture from registered components and containers.
5
+ * Uses convention over configuration to eliminate boilerplate.
6
+ */
7
+ import { architectureRegistry, inferNavToContainerMap } from './registry.js';
8
+ import { NavigationGraph } from '../background/navigation/NavigationGraph.js';
9
+ /**
10
+ * Initialize architecture from registered components and containers
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * // After importing component/container definitions:
15
+ * export const DemoArchitecture = initializeArchitecture({
16
+ * autoInferEdges: true,
17
+ * });
18
+ *
19
+ * // In your app:
20
+ * DemoArchitecture.initialize();
21
+ * ```
22
+ */
23
+ export function initializeArchitecture(options = {}) {
24
+ const components = architectureRegistry.getComponents();
25
+ const containers = architectureRegistry.getContainers();
26
+ // Auto-infer navigation mapping if not provided
27
+ const navToContainerMap = options.navToContainerMap ||
28
+ inferNavToContainerMap(components.GlobalNav || {}, containers);
29
+ const graph = NavigationGraph.getInstance();
30
+ let initialized = false;
31
+ return {
32
+ initialize() {
33
+ if (initialized) {
34
+ // eslint-disable-next-line no-console
35
+ console.warn('Architecture already initialized');
36
+ return;
37
+ }
38
+ // Register containers as navigation contexts
39
+ for (const container of Object.values(containers)) {
40
+ graph.registerContext({
41
+ id: container.id,
42
+ name: container.name,
43
+ children: [],
44
+ tools: [],
45
+ metadata: {
46
+ type: container.type,
47
+ route: container.route,
48
+ description: container.description,
49
+ ...container.metadata,
50
+ },
51
+ });
52
+ }
53
+ // Register navigation edges (GlobalNav β†’ Containers)
54
+ if (components.GlobalNav) {
55
+ for (const [navKey] of Object.entries(components.GlobalNav)) {
56
+ const containerName = navToContainerMap[navKey];
57
+ if (containerName && containers[containerName]) {
58
+ graph.registerEdge({
59
+ from: 'global',
60
+ to: containers[containerName].id,
61
+ navigationTool: `navigate-to-${containers[containerName].id}`,
62
+ });
63
+ }
64
+ }
65
+ }
66
+ // Custom initialization logic
67
+ if (options.onInitialize) {
68
+ options.onInitialize(graph);
69
+ }
70
+ initialized = true;
71
+ // eslint-disable-next-line no-console
72
+ console.log('βœ“ Architecture initialized', {
73
+ components: Object.keys(components).length,
74
+ containers: Object.keys(containers).length,
75
+ navMappings: Object.keys(navToContainerMap).length,
76
+ });
77
+ },
78
+ createNavigationHandler(router) {
79
+ return (page) => {
80
+ const containerName = navToContainerMap[page.toLowerCase()];
81
+ if (containerName && containers[containerName]) {
82
+ const route = containers[containerName].route;
83
+ if (route) {
84
+ router.push(route);
85
+ }
86
+ }
87
+ };
88
+ },
89
+ getGraph() {
90
+ return graph;
91
+ },
92
+ getComponents() {
93
+ return components;
94
+ },
95
+ getContainers() {
96
+ return containers;
97
+ },
98
+ };
99
+ }
100
+ /**
101
+ * Create an auto-initializer with explicit configuration (legacy support)
102
+ *
103
+ * @deprecated Use initializeArchitecture() for zero-config approach
104
+ */
105
+ export function createAutoInitializer(config) {
106
+ // Register provided components and containers
107
+ for (const [namespace, names] of Object.entries(config.components)) {
108
+ const prefix = namespace.toLowerCase();
109
+ architectureRegistry.registerComponent(prefix, names);
110
+ }
111
+ for (const [name, container] of Object.entries(config.containers)) {
112
+ architectureRegistry.registerContainer(name, container);
113
+ }
114
+ // Use standard initialization
115
+ return initializeArchitecture({
116
+ navToContainerMap: config.navToContainerMap,
117
+ autoInferEdges: config.autoInferEdges,
118
+ mirrorTools: config.mirrorTools,
119
+ });
120
+ }
121
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/architecture/initialize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Architecture Registry
3
+ *
4
+ * Global registry for auto-discovery of components, containers, and their relationships.
5
+ * Enables zero-config initialization through convention over configuration.
6
+ */
7
+ declare class ArchitectureRegistry {
8
+ private components;
9
+ private containers;
10
+ /**
11
+ * Register a component namespace
12
+ */
13
+ registerComponent(prefix: string, names: Record<string, string>): void;
14
+ /**
15
+ * Register a container
16
+ */
17
+ registerContainer(name: string, config: any): void;
18
+ /**
19
+ * Get all registered components
20
+ */
21
+ getComponents(): Record<string, Record<string, string>>;
22
+ /**
23
+ * Get all registered containers
24
+ */
25
+ getContainers(): Record<string, any>;
26
+ /**
27
+ * Get all registered data
28
+ */
29
+ getAll(): {
30
+ components: Record<string, Record<string, string>>;
31
+ containers: Record<string, any>;
32
+ };
33
+ /**
34
+ * Clear all registrations (useful for testing)
35
+ */
36
+ clear(): void;
37
+ /**
38
+ * Check if a component namespace is registered
39
+ */
40
+ hasComponent(prefix: string): boolean;
41
+ /**
42
+ * Check if a container is registered
43
+ */
44
+ hasContainer(name: string): boolean;
45
+ }
46
+ /**
47
+ * Singleton registry instance
48
+ */
49
+ export declare const architectureRegistry: ArchitectureRegistry;
50
+ /**
51
+ * Infer navigation-to-container mapping from registered containers
52
+ * Convention: lowercase nav key β†’ PascalCase container name
53
+ *
54
+ * Examples:
55
+ * - 'blog' β†’ 'Blog'
56
+ * - 'demo' β†’ 'Demo'
57
+ * - 'examples' β†’ 'Examples'
58
+ */
59
+ export declare function inferNavToContainerMap(navKeys: Record<string, string>, containers: Record<string, any>): Record<string, string>;
60
+ export {};
61
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/architecture/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,cAAM,oBAAoB;IACxB,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,UAAU,CAAwC;IAE1D;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI/D;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAI3C;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAUvD;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAQpC;;OAEG;IACH,MAAM;;;;IAON;;OAEG;IACH,KAAK;IAKL;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGpC;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,sBAA6B,CAAC;AAE/D;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxB"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Architecture Registry
3
+ *
4
+ * Global registry for auto-discovery of components, containers, and their relationships.
5
+ * Enables zero-config initialization through convention over configuration.
6
+ */
7
+ class ArchitectureRegistry {
8
+ constructor() {
9
+ this.components = new Map();
10
+ this.containers = new Map();
11
+ }
12
+ /**
13
+ * Register a component namespace
14
+ */
15
+ registerComponent(prefix, names) {
16
+ this.components.set(prefix, { prefix, names });
17
+ }
18
+ /**
19
+ * Register a container
20
+ */
21
+ registerContainer(name, config) {
22
+ this.containers.set(name, { name, config });
23
+ }
24
+ /**
25
+ * Get all registered components
26
+ */
27
+ getComponents() {
28
+ const result = {};
29
+ this.components.forEach(({ prefix, names }) => {
30
+ // Use PascalCase for namespace (Blog, Demo, etc.)
31
+ const namespace = prefix.charAt(0).toUpperCase() + prefix.slice(1);
32
+ result[namespace] = names;
33
+ });
34
+ return result;
35
+ }
36
+ /**
37
+ * Get all registered containers
38
+ */
39
+ getContainers() {
40
+ const result = {};
41
+ this.containers.forEach(({ name, config }) => {
42
+ result[name] = config;
43
+ });
44
+ return result;
45
+ }
46
+ /**
47
+ * Get all registered data
48
+ */
49
+ getAll() {
50
+ return {
51
+ components: this.getComponents(),
52
+ containers: this.getContainers(),
53
+ };
54
+ }
55
+ /**
56
+ * Clear all registrations (useful for testing)
57
+ */
58
+ clear() {
59
+ this.components.clear();
60
+ this.containers.clear();
61
+ }
62
+ /**
63
+ * Check if a component namespace is registered
64
+ */
65
+ hasComponent(prefix) {
66
+ return this.components.has(prefix);
67
+ }
68
+ /**
69
+ * Check if a container is registered
70
+ */
71
+ hasContainer(name) {
72
+ return this.containers.has(name);
73
+ }
74
+ }
75
+ /**
76
+ * Singleton registry instance
77
+ */
78
+ export const architectureRegistry = new ArchitectureRegistry();
79
+ /**
80
+ * Infer navigation-to-container mapping from registered containers
81
+ * Convention: lowercase nav key β†’ PascalCase container name
82
+ *
83
+ * Examples:
84
+ * - 'blog' β†’ 'Blog'
85
+ * - 'demo' β†’ 'Demo'
86
+ * - 'examples' β†’ 'Examples'
87
+ */
88
+ export function inferNavToContainerMap(navKeys, containers) {
89
+ const map = {};
90
+ for (const navKey of Object.keys(navKeys)) {
91
+ // Try direct PascalCase match
92
+ const pascalKey = navKey.charAt(0).toUpperCase() + navKey.slice(1);
93
+ if (containers[pascalKey]) {
94
+ map[navKey] = pascalKey;
95
+ continue;
96
+ }
97
+ // Try finding by route match
98
+ for (const [containerName, container] of Object.entries(containers)) {
99
+ if (container.route && container.route.includes(navKey)) {
100
+ map[navKey] = containerName;
101
+ break;
102
+ }
103
+ }
104
+ }
105
+ return map;
106
+ }
107
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/architecture/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Architecture Initializer - Core Pattern
3
+ *
4
+ * Generic initialization pattern for any application using Supernal Interface.
5
+ * Takes container definitions and automatically:
6
+ * 1. Registers them in NavigationGraph
7
+ * 2. Creates navigation tools for each container
8
+ * 3. Infers navigation edges from component names
9
+ * 4. Provides a centralized navigation handler
10
+ *
11
+ * This is the CORE pattern - apps just provide their container definitions.
12
+ */
13
+ import { NavigationGraph } from '../navigation/NavigationGraph';
14
+ import type { ContainerDefinition } from './Containers';
15
+ /**
16
+ * Architecture configuration for an application
17
+ */
18
+ export interface ArchitectureConfig<T extends Record<string, ContainerDefinition>> {
19
+ /** Container definitions */
20
+ containers: T;
21
+ /** Component names (for inferring navigation edges) */
22
+ components?: {
23
+ GlobalNav?: Record<string, string>;
24
+ [key: string]: Record<string, string> | undefined;
25
+ };
26
+ /** Custom navigation mapping (optional) */
27
+ navToContainerMap?: Record<string, string>;
28
+ /** Mirror tools between containers (optional) */
29
+ mirrorTools?: Array<{
30
+ from: string;
31
+ to: string;
32
+ }>;
33
+ /** Enable auto-inference of navigation edges */
34
+ autoInferEdges?: boolean;
35
+ }
36
+ /**
37
+ * Initialize application architecture
38
+ *
39
+ * Call this once on app startup to register containers and create navigation tools.
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // In your app's architecture/index.ts
44
+ * import { initializeArchitecture } from '@supernal-interface/core';
45
+ * import { MyContainers } from './MyContainers';
46
+ * import { Components } from './MyComponentNames';
47
+ *
48
+ * export const { createNavigationHandler } = initializeArchitecture({
49
+ * containers: MyContainers,
50
+ * components: { GlobalNav: Components.GlobalNav },
51
+ * autoInferEdges: true
52
+ * });
53
+ * ```
54
+ */
55
+ export declare function initializeArchitecture<T extends Record<string, ContainerDefinition>>(config: ArchitectureConfig<T>): {
56
+ /**
57
+ * Initialize the architecture (call once)
58
+ * Returns true if this was the first initialization
59
+ */
60
+ initialize(): boolean;
61
+ /**
62
+ * Create a navigation handler that uses the registered routes
63
+ *
64
+ * @param router - Next.js router or any router with a push method
65
+ * @returns Navigation handler function
66
+ */
67
+ createNavigationHandler(router?: {
68
+ push: (route: string) => void | Promise<void>;
69
+ }): (pageName: string) => void;
70
+ /**
71
+ * Get the NavigationGraph instance (for advanced usage)
72
+ */
73
+ getGraph(): NavigationGraph;
74
+ };
75
+ /**
76
+ * Auto-initialize on module load (for convenience)
77
+ * Apps can call this manually if they prefer explicit initialization
78
+ */
79
+ export declare function createAutoInitializer<T extends Record<string, ContainerDefinition>>(config: ArchitectureConfig<T>): {
80
+ /**
81
+ * Create a navigation handler that uses the registered routes
82
+ *
83
+ * @param router - Next.js router or any router with a push method
84
+ * @returns Navigation handler function
85
+ */
86
+ createNavigationHandler(router?: {
87
+ push: (route: string) => void | Promise<void>;
88
+ } | undefined): (pageName: string) => void;
89
+ /**
90
+ * Get the NavigationGraph instance (for advanced usage)
91
+ */
92
+ getGraph(): NavigationGraph;
93
+ initialize: () => boolean;
94
+ };
95
+ //# sourceMappingURL=ArchitectureInitializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchitectureInitializer.d.ts","sourceRoot":"","sources":["../../../../../src/background/architecture/ArchitectureInitializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAC/E,4BAA4B;IAC5B,UAAU,EAAE,CAAC,CAAC;IAEd,uDAAuD;IACvD,UAAU,CAAC,EAAE;QACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACnD,CAAC;IAEF,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3C,iDAAiD;IACjD,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAElD,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAClF,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAM3B;;;OAGG;kBACW,OAAO;IAuDrB;;;;;OAKG;qCAC8B;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,IACxE,UAAU,MAAM;IAoC1B;;OAEG;;EAKN;AAsCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACjF,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IA7F3B;;;;;OAKG;;sBAC8C,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;qBACtE,UAAU,MAAM;IAoC1B;;OAEG;;sBApGW,OAAO;EAgKxB"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Architecture Initializer - Core Pattern
3
+ *
4
+ * Generic initialization pattern for any application using Supernal Interface.
5
+ * Takes container definitions and automatically:
6
+ * 1. Registers them in NavigationGraph
7
+ * 2. Creates navigation tools for each container
8
+ * 3. Infers navigation edges from component names
9
+ * 4. Provides a centralized navigation handler
10
+ *
11
+ * This is the CORE pattern - apps just provide their container definitions.
12
+ */
13
+ import { NavigationGraph } from '../navigation/NavigationGraph.js';
14
+ /**
15
+ * Initialize application architecture
16
+ *
17
+ * Call this once on app startup to register containers and create navigation tools.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // In your app's architecture/index.ts
22
+ * import { initializeArchitecture } from '@supernal-interface/core';
23
+ * import { MyContainers } from './MyContainers.js';
24
+ * import { Components } from './MyComponentNames.js';
25
+ *
26
+ * export const { createNavigationHandler } = initializeArchitecture({
27
+ * containers: MyContainers,
28
+ * components: { GlobalNav: Components.GlobalNav },
29
+ * autoInferEdges: true
30
+ * });
31
+ * ```
32
+ */
33
+ export function initializeArchitecture(config) {
34
+ const graph = NavigationGraph.getInstance();
35
+ let initialized = false;
36
+ return {
37
+ /**
38
+ * Initialize the architecture (call once)
39
+ * Returns true if this was the first initialization
40
+ */
41
+ initialize() {
42
+ if (initialized)
43
+ return false;
44
+ initialized = true;
45
+ // 1. Register all containers as navigation contexts
46
+ const containers = Object.values(config.containers);
47
+ for (const container of containers) {
48
+ graph.registerContext({
49
+ id: container.id,
50
+ name: container.name,
51
+ parent: 'parent' in container ? container.parent : undefined,
52
+ children: [],
53
+ tools: [...container.components],
54
+ metadata: {
55
+ type: container.type,
56
+ route: 'route' in container ? container.route : undefined,
57
+ description: container.description
58
+ }
59
+ });
60
+ console.log(`πŸ“¦ [Architecture] Registered container: ${container.name}`);
61
+ }
62
+ // 2. Mirror tools between containers (if specified)
63
+ if (config.mirrorTools) {
64
+ for (const { from, to } of config.mirrorTools) {
65
+ const sourceContext = graph.getContext(from);
66
+ if (sourceContext && sourceContext.tools) {
67
+ for (const toolId of sourceContext.tools) {
68
+ graph.registerToolInContext(toolId, to);
69
+ }
70
+ console.log(`πŸ”„ [Architecture] Mirrored ${sourceContext.tools.length} tools: ${from} β†’ ${to}`);
71
+ }
72
+ }
73
+ }
74
+ // 3. Auto-infer navigation edges (if enabled)
75
+ if (config.autoInferEdges && config.components?.GlobalNav && config.navToContainerMap) {
76
+ const edges = inferNavigationEdges(containers, config.components.GlobalNav, config.navToContainerMap, config.containers);
77
+ for (const edge of edges) {
78
+ graph.registerEdge(edge);
79
+ }
80
+ console.log(`βœ… [Architecture] Initialized with ${containers.length} containers, ${edges.length} edges`);
81
+ }
82
+ return true;
83
+ },
84
+ /**
85
+ * Create a navigation handler that uses the registered routes
86
+ *
87
+ * @param router - Next.js router or any router with a push method
88
+ * @returns Navigation handler function
89
+ */
90
+ createNavigationHandler(router) {
91
+ return (pageName) => {
92
+ console.log(`πŸ—ΊοΈ [Navigation] Request: ${pageName}`);
93
+ // Use NavigationGraph to resolve route
94
+ const routeInfo = graph.getRouteByName(pageName);
95
+ if (!routeInfo) {
96
+ console.warn(`⚠️ [Navigation] No route found for: ${pageName}`);
97
+ // Try treating as a path (e.g., "blog/type-safe")
98
+ if (pageName.includes('/')) {
99
+ const attemptedPath = pageName.startsWith('/') ? pageName : `/${pageName}`;
100
+ console.log(`πŸ—ΊοΈ [Navigation] Attempting path: ${attemptedPath}`);
101
+ if (router?.push) {
102
+ router.push(attemptedPath);
103
+ }
104
+ else if (typeof window !== 'undefined') {
105
+ window.location.href = attemptedPath;
106
+ }
107
+ }
108
+ return;
109
+ }
110
+ // Extract path from RouteInfo
111
+ const route = routeInfo.path || routeInfo.name || pageName;
112
+ console.log(`πŸ—ΊοΈ [Navigation] Resolved: ${pageName} β†’ ${route}`);
113
+ // Navigate using provided router or fallback to window.location
114
+ if (router?.push) {
115
+ router.push(route);
116
+ }
117
+ else if (typeof window !== 'undefined') {
118
+ window.location.href = route;
119
+ }
120
+ };
121
+ },
122
+ /**
123
+ * Get the NavigationGraph instance (for advanced usage)
124
+ */
125
+ getGraph() {
126
+ return graph;
127
+ }
128
+ };
129
+ }
130
+ /**
131
+ * Infer navigation edges from global navigation components
132
+ *
133
+ * @internal
134
+ */
135
+ function inferNavigationEdges(containers, globalNav, navToContainerMap, containerMap) {
136
+ const edges = [];
137
+ // Create edges FROM every container TO every other container via GlobalNav
138
+ for (const [navKey, navButtonId] of Object.entries(globalNav)) {
139
+ const targetContainerName = navToContainerMap[navKey];
140
+ const targetContainer = containerMap[targetContainerName];
141
+ if (targetContainer) {
142
+ // From every container (except target) to target
143
+ for (const sourceContainer of containers) {
144
+ if (sourceContainer.id !== targetContainer.id) {
145
+ edges.push({
146
+ from: sourceContainer.id,
147
+ to: targetContainer.id,
148
+ navigationTool: navButtonId,
149
+ cost: 1
150
+ });
151
+ }
152
+ }
153
+ }
154
+ }
155
+ return edges;
156
+ }
157
+ /**
158
+ * Auto-initialize on module load (for convenience)
159
+ * Apps can call this manually if they prefer explicit initialization
160
+ */
161
+ export function createAutoInitializer(config) {
162
+ let hasInitialized = false;
163
+ const { initialize, ...rest } = initializeArchitecture(config);
164
+ // Auto-initialize on first access
165
+ if (!hasInitialized) {
166
+ hasInitialized = initialize();
167
+ }
168
+ return { initialize, ...rest };
169
+ }
170
+ //# sourceMappingURL=ArchitectureInitializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchitectureInitializer.js","sourceRoot":"","sources":["../../../../../src/background/architecture/ArchitectureInitializer.ts"],"names":[],"mappings":"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"}