@aotui/runtime 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 (388) hide show
  1. package/dist/adapters/aotui-driven-source.d.ts +106 -0
  2. package/dist/adapters/aotui-driven-source.js +549 -0
  3. package/dist/adapters/aotui-driven-source.js.map +1 -0
  4. package/dist/adapters/bridge/index.d.ts +94 -0
  5. package/dist/adapters/bridge/index.js +199 -0
  6. package/dist/adapters/bridge/index.js.map +1 -0
  7. package/dist/adapters/index.d.ts +7 -0
  8. package/dist/adapters/index.js +8 -0
  9. package/dist/adapters/index.js.map +1 -0
  10. package/dist/adapters/session/index.d.ts +7 -0
  11. package/dist/adapters/session/index.js +2 -0
  12. package/dist/adapters/session/index.js.map +1 -0
  13. package/dist/adapters/session/session.d.ts +46 -0
  14. package/dist/adapters/session/session.js +76 -0
  15. package/dist/adapters/session/session.js.map +1 -0
  16. package/dist/adapters/session/types.d.ts +52 -0
  17. package/dist/adapters/session/types.js +7 -0
  18. package/dist/adapters/session/types.js.map +1 -0
  19. package/dist/adapters/system-instruction.d.ts +9 -0
  20. package/dist/adapters/system-instruction.js +434 -0
  21. package/dist/adapters/system-instruction.js.map +1 -0
  22. package/dist/benchmarks/dom-engine-comparison.d.ts +1 -0
  23. package/dist/benchmarks/dom-engine-comparison.js +84 -0
  24. package/dist/benchmarks/dom-engine-comparison.js.map +1 -0
  25. package/dist/benchmarks/shadow-dom-check.d.ts +1 -0
  26. package/dist/benchmarks/shadow-dom-check.js +44 -0
  27. package/dist/benchmarks/shadow-dom-check.js.map +1 -0
  28. package/dist/cli.d.ts +17 -0
  29. package/dist/cli.js +314 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/engine/app/config.d.ts +81 -0
  32. package/dist/engine/app/config.js +32 -0
  33. package/dist/engine/app/config.js.map +1 -0
  34. package/dist/engine/app/index.d.ts +14 -0
  35. package/dist/engine/app/index.js +33 -0
  36. package/dist/engine/app/index.js.map +1 -0
  37. package/dist/engine/app/manager.d.ts +194 -0
  38. package/dist/engine/app/manager.js +340 -0
  39. package/dist/engine/app/manager.js.map +1 -0
  40. package/dist/engine/app/registry.d.ts +138 -0
  41. package/dist/engine/app/registry.js +473 -0
  42. package/dist/engine/app/registry.js.map +1 -0
  43. package/dist/engine/app/worker-app-host.service.d.ts +62 -0
  44. package/dist/engine/app/worker-app-host.service.js +189 -0
  45. package/dist/engine/app/worker-app-host.service.js.map +1 -0
  46. package/dist/engine/app/worker-host.d.ts +139 -0
  47. package/dist/engine/app/worker-host.js +397 -0
  48. package/dist/engine/app/worker-host.js.map +1 -0
  49. package/dist/engine/app/worker-pool.d.ts +45 -0
  50. package/dist/engine/app/worker-pool.js +122 -0
  51. package/dist/engine/app/worker-pool.js.map +1 -0
  52. package/dist/engine/app/worker-sandbox.d.ts +152 -0
  53. package/dist/engine/app/worker-sandbox.js +290 -0
  54. package/dist/engine/app/worker-sandbox.js.map +1 -0
  55. package/dist/engine/core/desktop-logger.d.ts +69 -0
  56. package/dist/engine/core/desktop-logger.js +124 -0
  57. package/dist/engine/core/desktop-logger.js.map +1 -0
  58. package/dist/engine/core/desktop.d.ts +208 -0
  59. package/dist/engine/core/desktop.js +351 -0
  60. package/dist/engine/core/desktop.js.map +1 -0
  61. package/dist/engine/core/index.d.ts +12 -0
  62. package/dist/engine/core/index.js +28 -0
  63. package/dist/engine/core/index.js.map +1 -0
  64. package/dist/engine/core/llm-output-channel.d.ts +45 -0
  65. package/dist/engine/core/llm-output-channel.js +122 -0
  66. package/dist/engine/core/llm-output-channel.js.map +1 -0
  67. package/dist/engine/core/manager.d.ts +59 -0
  68. package/dist/engine/core/manager.js +131 -0
  69. package/dist/engine/core/manager.js.map +1 -0
  70. package/dist/engine/core/operation-log-buffer.d.ts +79 -0
  71. package/dist/engine/core/operation-log-buffer.js +108 -0
  72. package/dist/engine/core/operation-log-buffer.js.map +1 -0
  73. package/dist/engine/core/operation-log-formatter.d.ts +44 -0
  74. package/dist/engine/core/operation-log-formatter.js +180 -0
  75. package/dist/engine/core/operation-log-formatter.js.map +1 -0
  76. package/dist/engine/core/services/lock.service.d.ts +33 -0
  77. package/dist/engine/core/services/lock.service.js +99 -0
  78. package/dist/engine/core/services/lock.service.js.map +1 -0
  79. package/dist/engine/core/signal-bus.d.ts +84 -0
  80. package/dist/engine/core/signal-bus.js +160 -0
  81. package/dist/engine/core/signal-bus.js.map +1 -0
  82. package/dist/engine/core/signal-service.d.ts +42 -0
  83. package/dist/engine/core/signal-service.js +58 -0
  84. package/dist/engine/core/signal-service.js.map +1 -0
  85. package/dist/engine/system/dispatcher.d.ts +18 -0
  86. package/dist/engine/system/dispatcher.js +48 -0
  87. package/dist/engine/system/dispatcher.js.map +1 -0
  88. package/dist/engine/system/index.d.ts +10 -0
  89. package/dist/engine/system/index.js +20 -0
  90. package/dist/engine/system/index.js.map +1 -0
  91. package/dist/engine/system/operations/index.d.ts +26 -0
  92. package/dist/engine/system/operations/index.js +38 -0
  93. package/dist/engine/system/operations/index.js.map +1 -0
  94. package/dist/engine/system/operations/registry.d.ts +62 -0
  95. package/dist/engine/system/operations/registry.js +101 -0
  96. package/dist/engine/system/operations/registry.js.map +1 -0
  97. package/dist/engine/system/operations/system/close-app.d.ts +13 -0
  98. package/dist/engine/system/operations/system/close-app.js +43 -0
  99. package/dist/engine/system/operations/system/close-app.js.map +1 -0
  100. package/dist/engine/system/operations/system/dismount-view.d.ts +13 -0
  101. package/dist/engine/system/operations/system/dismount-view.js +48 -0
  102. package/dist/engine/system/operations/system/dismount-view.js.map +1 -0
  103. package/dist/engine/system/operations/system/index.d.ts +6 -0
  104. package/dist/engine/system/operations/system/index.js +7 -0
  105. package/dist/engine/system/operations/system/index.js.map +1 -0
  106. package/dist/engine/system/operations/system/open-app.d.ts +13 -0
  107. package/dist/engine/system/operations/system/open-app.js +43 -0
  108. package/dist/engine/system/operations/system/open-app.js.map +1 -0
  109. package/dist/engine/system/registry.d.ts +36 -0
  110. package/dist/engine/system/registry.js +101 -0
  111. package/dist/engine/system/registry.js.map +1 -0
  112. package/dist/engine/view/index.d.ts +13 -0
  113. package/dist/engine/view/index.js +20 -0
  114. package/dist/engine/view/index.js.map +1 -0
  115. package/dist/engine/view/manager.d.ts +42 -0
  116. package/dist/engine/view/manager.js +57 -0
  117. package/dist/engine/view/manager.js.map +1 -0
  118. package/dist/engine/view/snapshot/builder.d.ts +34 -0
  119. package/dist/engine/view/snapshot/builder.js +119 -0
  120. package/dist/engine/view/snapshot/builder.js.map +1 -0
  121. package/dist/engine/view/snapshot/formatter.d.ts +76 -0
  122. package/dist/engine/view/snapshot/formatter.js +297 -0
  123. package/dist/engine/view/snapshot/formatter.js.map +1 -0
  124. package/dist/engine/view/snapshot/index.d.ts +8 -0
  125. package/dist/engine/view/snapshot/index.js +8 -0
  126. package/dist/engine/view/snapshot/index.js.map +1 -0
  127. package/dist/engine/view/snapshot/templates.d.ts +41 -0
  128. package/dist/engine/view/snapshot/templates.js +317 -0
  129. package/dist/engine/view/snapshot/templates.js.map +1 -0
  130. package/dist/engine/view/transformer/__tests__/visitors/test-utils.d.ts +1 -0
  131. package/dist/engine/view/transformer/__tests__/visitors/test-utils.js +14 -0
  132. package/dist/engine/view/transformer/__tests__/visitors/test-utils.js.map +1 -0
  133. package/dist/engine/view/transformer/helpers.d.ts +19 -0
  134. package/dist/engine/view/transformer/helpers.js +32 -0
  135. package/dist/engine/view/transformer/helpers.js.map +1 -0
  136. package/dist/engine/view/transformer/index.d.ts +40 -0
  137. package/dist/engine/view/transformer/index.js +38 -0
  138. package/dist/engine/view/transformer/index.js.map +1 -0
  139. package/dist/engine/view/transformer/pure.d.ts +17 -0
  140. package/dist/engine/view/transformer/pure.js +124 -0
  141. package/dist/engine/view/transformer/pure.js.map +1 -0
  142. package/dist/engine/view/transformer/types.d.ts +31 -0
  143. package/dist/engine/view/transformer/types.js +16 -0
  144. package/dist/engine/view/transformer/types.js.map +1 -0
  145. package/dist/engine/view/transformer/visitors/application.visitor.d.ts +8 -0
  146. package/dist/engine/view/transformer/visitors/application.visitor.js +37 -0
  147. package/dist/engine/view/transformer/visitors/application.visitor.js.map +1 -0
  148. package/dist/engine/view/transformer/visitors/html.visitor.d.ts +8 -0
  149. package/dist/engine/view/transformer/visitors/html.visitor.js +161 -0
  150. package/dist/engine/view/transformer/visitors/html.visitor.js.map +1 -0
  151. package/dist/engine/view/transformer/visitors/index.d.ts +12 -0
  152. package/dist/engine/view/transformer/visitors/index.js +27 -0
  153. package/dist/engine/view/transformer/visitors/index.js.map +1 -0
  154. package/dist/engine/view/transformer/visitors/interface.d.ts +53 -0
  155. package/dist/engine/view/transformer/visitors/interface.js +8 -0
  156. package/dist/engine/view/transformer/visitors/interface.js.map +1 -0
  157. package/dist/engine/view/transformer/visitors/operation.visitor.d.ts +9 -0
  158. package/dist/engine/view/transformer/visitors/operation.visitor.js +122 -0
  159. package/dist/engine/view/transformer/visitors/operation.visitor.js.map +1 -0
  160. package/dist/engine/view/transformer/visitors/view-link.visitor.d.ts +15 -0
  161. package/dist/engine/view/transformer/visitors/view-link.visitor.js +98 -0
  162. package/dist/engine/view/transformer/visitors/view-link.visitor.js.map +1 -0
  163. package/dist/engine/view/transformer/visitors/view.visitor.d.ts +8 -0
  164. package/dist/engine/view/transformer/visitors/view.visitor.js +43 -0
  165. package/dist/engine/view/transformer/visitors/view.visitor.js.map +1 -0
  166. package/dist/engine/view/types.d.ts +70 -0
  167. package/dist/engine/view/types.js +17 -0
  168. package/dist/engine/view/types.js.map +1 -0
  169. package/dist/facades/facades.d.ts +40 -0
  170. package/dist/facades/facades.js +66 -0
  171. package/dist/facades/facades.js.map +1 -0
  172. package/dist/facades/index.d.ts +13 -0
  173. package/dist/facades/index.js +15 -0
  174. package/dist/facades/index.js.map +1 -0
  175. package/dist/factory/createKernel.d.ts +37 -0
  176. package/dist/factory/createKernel.js +42 -0
  177. package/dist/factory/createKernel.js.map +1 -0
  178. package/dist/factory/index.d.ts +9 -0
  179. package/dist/factory/index.js +10 -0
  180. package/dist/factory/index.js.map +1 -0
  181. package/dist/index.d.ts +35 -0
  182. package/dist/index.js +69 -0
  183. package/dist/index.js.map +1 -0
  184. package/dist/internal/browser.d.ts +20 -0
  185. package/dist/internal/browser.js +20 -0
  186. package/dist/internal/browser.js.map +1 -0
  187. package/dist/kernel/index.d.ts +120 -0
  188. package/dist/kernel/index.js +328 -0
  189. package/dist/kernel/index.js.map +1 -0
  190. package/dist/spi/app/aoapp.d.ts +86 -0
  191. package/dist/spi/app/aoapp.js +39 -0
  192. package/dist/spi/app/aoapp.js.map +1 -0
  193. package/dist/spi/app/app-config.interface.d.ts +9 -0
  194. package/dist/spi/app/app-config.interface.js +2 -0
  195. package/dist/spi/app/app-config.interface.js.map +1 -0
  196. package/dist/spi/app/app-factory.interface.d.ts +78 -0
  197. package/dist/spi/app/app-factory.interface.js +49 -0
  198. package/dist/spi/app/app-factory.interface.js.map +1 -0
  199. package/dist/spi/app/app-kernel.interface.d.ts +139 -0
  200. package/dist/spi/app/app-kernel.interface.js +2 -0
  201. package/dist/spi/app/app-kernel.interface.js.map +1 -0
  202. package/dist/spi/app/app.interface.d.ts +84 -0
  203. package/dist/spi/app/app.interface.js +8 -0
  204. package/dist/spi/app/app.interface.js.map +1 -0
  205. package/dist/spi/app/index.d.ts +26 -0
  206. package/dist/spi/app/index.js +13 -0
  207. package/dist/spi/app/index.js.map +1 -0
  208. package/dist/spi/app/public-types.d.ts +309 -0
  209. package/dist/spi/app/public-types.js +17 -0
  210. package/dist/spi/app/public-types.js.map +1 -0
  211. package/dist/spi/app/ref-exporter.interface.d.ts +23 -0
  212. package/dist/spi/app/ref-exporter.interface.js +10 -0
  213. package/dist/spi/app/ref-exporter.interface.js.map +1 -0
  214. package/dist/spi/app/store.interface.d.ts +45 -0
  215. package/dist/spi/app/store.interface.js +11 -0
  216. package/dist/spi/app/store.interface.js.map +1 -0
  217. package/dist/spi/app/view-context-core.interface.d.ts +50 -0
  218. package/dist/spi/app/view-context-core.interface.js +8 -0
  219. package/dist/spi/app/view-context-core.interface.js.map +1 -0
  220. package/dist/spi/app/view-context-ext.interface.d.ts +79 -0
  221. package/dist/spi/app/view-context-ext.interface.js +19 -0
  222. package/dist/spi/app/view-context-ext.interface.js.map +1 -0
  223. package/dist/spi/app/view-factory.interface.d.ts +46 -0
  224. package/dist/spi/app/view-factory.interface.js +2 -0
  225. package/dist/spi/app/view-factory.interface.js.map +1 -0
  226. package/dist/spi/app/view-link.types.d.ts +136 -0
  227. package/dist/spi/app/view-link.types.js +19 -0
  228. package/dist/spi/app/view-link.types.js.map +1 -0
  229. package/dist/spi/app/view-tree.interface.d.ts +254 -0
  230. package/dist/spi/app/view-tree.interface.js +13 -0
  231. package/dist/spi/app/view-tree.interface.js.map +1 -0
  232. package/dist/spi/app/view.interface.d.ts +122 -0
  233. package/dist/spi/app/view.interface.js +15 -0
  234. package/dist/spi/app/view.interface.js.map +1 -0
  235. package/dist/spi/bridge/bridge.interface.d.ts +118 -0
  236. package/dist/spi/bridge/bridge.interface.js +32 -0
  237. package/dist/spi/bridge/bridge.interface.js.map +1 -0
  238. package/dist/spi/bridge/index.d.ts +8 -0
  239. package/dist/spi/bridge/index.js +9 -0
  240. package/dist/spi/bridge/index.js.map +1 -0
  241. package/dist/spi/component-factory.interface.d.ts +123 -0
  242. package/dist/spi/component-factory.interface.js +15 -0
  243. package/dist/spi/component-factory.interface.js.map +1 -0
  244. package/dist/spi/config/define-config.d.ts +31 -0
  245. package/dist/spi/config/define-config.js +72 -0
  246. package/dist/spi/config/define-config.js.map +1 -0
  247. package/dist/spi/config/domains/bridge.config.d.ts +21 -0
  248. package/dist/spi/config/domains/bridge.config.js +10 -0
  249. package/dist/spi/config/domains/bridge.config.js.map +1 -0
  250. package/dist/spi/config/domains/lock.config.d.ts +20 -0
  251. package/dist/spi/config/domains/lock.config.js +10 -0
  252. package/dist/spi/config/domains/lock.config.js.map +1 -0
  253. package/dist/spi/config/domains/logger.config.d.ts +28 -0
  254. package/dist/spi/config/domains/logger.config.js +11 -0
  255. package/dist/spi/config/domains/logger.config.js.map +1 -0
  256. package/dist/spi/config/domains/snapshot.config.d.ts +20 -0
  257. package/dist/spi/config/domains/snapshot.config.js +10 -0
  258. package/dist/spi/config/domains/snapshot.config.js.map +1 -0
  259. package/dist/spi/config/domains/transform.config.d.ts +28 -0
  260. package/dist/spi/config/domains/transform.config.js +11 -0
  261. package/dist/spi/config/domains/transform.config.js.map +1 -0
  262. package/dist/spi/config/domains/worker.config.d.ts +54 -0
  263. package/dist/spi/config/domains/worker.config.js +15 -0
  264. package/dist/spi/config/domains/worker.config.js.map +1 -0
  265. package/dist/spi/config/index.d.ts +16 -0
  266. package/dist/spi/config/index.js +18 -0
  267. package/dist/spi/config/index.js.map +1 -0
  268. package/dist/spi/config/types.d.ts +38 -0
  269. package/dist/spi/config/types.js +7 -0
  270. package/dist/spi/config/types.js.map +1 -0
  271. package/dist/spi/config/validate.d.ts +12 -0
  272. package/dist/spi/config/validate.js +90 -0
  273. package/dist/spi/config/validate.js.map +1 -0
  274. package/dist/spi/core/errors.d.ts +117 -0
  275. package/dist/spi/core/errors.js +233 -0
  276. package/dist/spi/core/errors.js.map +1 -0
  277. package/dist/spi/core/id-factory.d.ts +85 -0
  278. package/dist/spi/core/id-factory.js +119 -0
  279. package/dist/spi/core/id-factory.js.map +1 -0
  280. package/dist/spi/core/index.d.ts +21 -0
  281. package/dist/spi/core/index.js +25 -0
  282. package/dist/spi/core/index.js.map +1 -0
  283. package/dist/spi/core/llm-output.d.ts +74 -0
  284. package/dist/spi/core/llm-output.js +12 -0
  285. package/dist/spi/core/llm-output.js.map +1 -0
  286. package/dist/spi/core/operation-log.d.ts +133 -0
  287. package/dist/spi/core/operation-log.js +13 -0
  288. package/dist/spi/core/operation-log.js.map +1 -0
  289. package/dist/spi/core/operations.d.ts +198 -0
  290. package/dist/spi/core/operations.js +13 -0
  291. package/dist/spi/core/operations.js.map +1 -0
  292. package/dist/spi/core/signals.d.ts +16 -0
  293. package/dist/spi/core/signals.js +7 -0
  294. package/dist/spi/core/signals.js.map +1 -0
  295. package/dist/spi/core/snapshot.d.ts +77 -0
  296. package/dist/spi/core/snapshot.js +18 -0
  297. package/dist/spi/core/snapshot.js.map +1 -0
  298. package/dist/spi/core/tool-call.d.ts +60 -0
  299. package/dist/spi/core/tool-call.js +10 -0
  300. package/dist/spi/core/tool-call.js.map +1 -0
  301. package/dist/spi/core/types.d.ts +68 -0
  302. package/dist/spi/core/types.js +8 -0
  303. package/dist/spi/core/types.js.map +1 -0
  304. package/dist/spi/index.d.ts +31 -0
  305. package/dist/spi/index.js +57 -0
  306. package/dist/spi/index.js.map +1 -0
  307. package/dist/spi/runtime/app-host.interface.d.ts +142 -0
  308. package/dist/spi/runtime/app-host.interface.js +10 -0
  309. package/dist/spi/runtime/app-host.interface.js.map +1 -0
  310. package/dist/spi/runtime/app-installer.interface.d.ts +33 -0
  311. package/dist/spi/runtime/app-installer.interface.js +2 -0
  312. package/dist/spi/runtime/app-installer.interface.js.map +1 -0
  313. package/dist/spi/runtime/context.interface.d.ts +10 -0
  314. package/dist/spi/runtime/context.interface.js +2 -0
  315. package/dist/spi/runtime/context.interface.js.map +1 -0
  316. package/dist/spi/runtime/desktop-context.interface.d.ts +45 -0
  317. package/dist/spi/runtime/desktop-context.interface.js +10 -0
  318. package/dist/spi/runtime/desktop-context.interface.js.map +1 -0
  319. package/dist/spi/runtime/desktop-dom.interface.d.ts +48 -0
  320. package/dist/spi/runtime/desktop-dom.interface.js +13 -0
  321. package/dist/spi/runtime/desktop-dom.interface.js.map +1 -0
  322. package/dist/spi/runtime/desktop-lifecycle.interface.d.ts +23 -0
  323. package/dist/spi/runtime/desktop-lifecycle.interface.js +2 -0
  324. package/dist/spi/runtime/desktop-lifecycle.interface.js.map +1 -0
  325. package/dist/spi/runtime/desktop-lock.interface.d.ts +50 -0
  326. package/dist/spi/runtime/desktop-lock.interface.js +2 -0
  327. package/dist/spi/runtime/desktop-lock.interface.js.map +1 -0
  328. package/dist/spi/runtime/desktop-manager.interface.d.ts +22 -0
  329. package/dist/spi/runtime/desktop-manager.interface.js +13 -0
  330. package/dist/spi/runtime/desktop-manager.interface.js.map +1 -0
  331. package/dist/spi/runtime/desktop-repository.interface.d.ts +8 -0
  332. package/dist/spi/runtime/desktop-repository.interface.js +2 -0
  333. package/dist/spi/runtime/desktop-repository.interface.js.map +1 -0
  334. package/dist/spi/runtime/desktop-state-accessor.interface.d.ts +22 -0
  335. package/dist/spi/runtime/desktop-state-accessor.interface.js +2 -0
  336. package/dist/spi/runtime/desktop-state-accessor.interface.js.map +1 -0
  337. package/dist/spi/runtime/dispatcher.interface.d.ts +34 -0
  338. package/dist/spi/runtime/dispatcher.interface.js +10 -0
  339. package/dist/spi/runtime/dispatcher.interface.js.map +1 -0
  340. package/dist/spi/runtime/index.d.ts +28 -0
  341. package/dist/spi/runtime/index.js +11 -0
  342. package/dist/spi/runtime/index.js.map +1 -0
  343. package/dist/spi/runtime/kernel.interface.d.ts +221 -0
  344. package/dist/spi/runtime/kernel.interface.js +7 -0
  345. package/dist/spi/runtime/kernel.interface.js.map +1 -0
  346. package/dist/spi/runtime/llm-output-channel.interface.d.ts +81 -0
  347. package/dist/spi/runtime/llm-output-channel.interface.js +12 -0
  348. package/dist/spi/runtime/llm-output-channel.interface.js.map +1 -0
  349. package/dist/spi/runtime/signal.interface.d.ts +80 -0
  350. package/dist/spi/runtime/signal.interface.js +9 -0
  351. package/dist/spi/runtime/signal.interface.js.map +1 -0
  352. package/dist/spi/runtime/snapshot.interface.d.ts +126 -0
  353. package/dist/spi/runtime/snapshot.interface.js +14 -0
  354. package/dist/spi/runtime/snapshot.interface.js.map +1 -0
  355. package/dist/spi/runtime/transformer.interface.d.ts +47 -0
  356. package/dist/spi/runtime/transformer.interface.js +10 -0
  357. package/dist/spi/runtime/transformer.interface.js.map +1 -0
  358. package/dist/spi/runtime/worker-message.interface.d.ts +80 -0
  359. package/dist/spi/runtime/worker-message.interface.js +49 -0
  360. package/dist/spi/runtime/worker-message.interface.js.map +1 -0
  361. package/dist/spi/runtime/worker-runtime.interface.d.ts +177 -0
  362. package/dist/spi/runtime/worker-runtime.interface.js +14 -0
  363. package/dist/spi/runtime/worker-runtime.interface.js.map +1 -0
  364. package/dist/spi/worker-protocol/index.d.ts +26 -0
  365. package/dist/spi/worker-protocol/index.js +29 -0
  366. package/dist/spi/worker-protocol/index.js.map +1 -0
  367. package/dist/spi/worker-protocol/messages.d.ts +257 -0
  368. package/dist/spi/worker-protocol/messages.js +42 -0
  369. package/dist/spi/worker-protocol/messages.js.map +1 -0
  370. package/dist/spi/worker-protocol/types.d.ts +12 -0
  371. package/dist/spi/worker-protocol/types.js +16 -0
  372. package/dist/spi/worker-protocol/types.js.map +1 -0
  373. package/dist/worker-runtime/app-kernel/AppKernel.d.ts +178 -0
  374. package/dist/worker-runtime/app-kernel/AppKernel.js +622 -0
  375. package/dist/worker-runtime/app-kernel/AppKernel.js.map +1 -0
  376. package/dist/worker-runtime/app-kernel/index.d.ts +23 -0
  377. package/dist/worker-runtime/app-kernel/index.js +23 -0
  378. package/dist/worker-runtime/app-kernel/index.js.map +1 -0
  379. package/dist/worker-runtime/app-kernel/view-registry.d.ts +85 -0
  380. package/dist/worker-runtime/app-kernel/view-registry.js +119 -0
  381. package/dist/worker-runtime/app-kernel/view-registry.js.map +1 -0
  382. package/dist/worker-runtime/app-kernel/view-tree.d.ts +222 -0
  383. package/dist/worker-runtime/app-kernel/view-tree.js +682 -0
  384. package/dist/worker-runtime/app-kernel/view-tree.js.map +1 -0
  385. package/dist/worker-runtime/index.d.ts +16 -0
  386. package/dist/worker-runtime/index.js +731 -0
  387. package/dist/worker-runtime/index.js.map +1 -0
  388. package/package.json +67 -0
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Transformer Types
3
+ *
4
+ * 共享类型定义,供纯函数和兼容层使用
5
+ */
6
+ /**
7
+ * 创建新的 TransformContext
8
+ */
9
+ export function createTransformContext(appId) {
10
+ return {
11
+ indexMap: {},
12
+ currentAppId: appId || null,
13
+ currentViewId: null
14
+ };
15
+ }
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/engine/view/transformer/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6BH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACjD,OAAO;QACH,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,KAAK,IAAI,IAAI;QAC3B,aAAa,EAAE,IAAI;KACtB,CAAC;AACN,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Application Visitor
3
+ *
4
+ * Handles <application> tags or elements with data-app-id.
5
+ * Responsible for maintaining currentAppId context.
6
+ */
7
+ import type { IElementVisitor } from './interface.js';
8
+ export declare const applicationVisitor: IElementVisitor;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Application Visitor
3
+ *
4
+ * Handles <application> tags or elements with data-app-id.
5
+ * Responsible for maintaining currentAppId context.
6
+ */
7
+ export const applicationVisitor = {
8
+ name: 'application',
9
+ priority: 10,
10
+ matches(el, ctx) {
11
+ // [Refactor] Corresponds to: if (appId)
12
+ return el.hasAttribute('data-app-id');
13
+ },
14
+ transform(el, ctx, children) {
15
+ const appId = el.getAttribute('data-app-id');
16
+ const appName = el.getAttribute('name');
17
+ // Manage Context
18
+ const prevAppId = ctx.currentAppId;
19
+ ctx.currentAppId = appId;
20
+ // Clean up context on return
21
+ const restoreContext = () => {
22
+ ctx.currentAppId = prevAppId;
23
+ };
24
+ const isCollapsed = el.getAttribute('data-state') === 'collapsed';
25
+ const isClosed = el.getAttribute('data-state') === 'closed';
26
+ if (isCollapsed || isClosed) {
27
+ restoreContext();
28
+ return `\n<application id="${appId}" name="${appName || ''}" state="${isClosed ? 'closed' : 'collapsed'}" />\n`;
29
+ }
30
+ // Recursively process children
31
+ const childMarkup = children(el, ctx);
32
+ const childrenContent = childMarkup.join('\n');
33
+ restoreContext();
34
+ return `\n<application id="${appId}" name="${appName || ''}">\n${childrenContent}\n</application>\n`;
35
+ }
36
+ };
37
+ //# sourceMappingURL=application.visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application.visitor.js","sourceRoot":"","sources":["../../../../../src/engine/view/transformer/visitors/application.visitor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IAC/C,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,EAAE;IAEZ,OAAO,CAAC,EAAW,EAAE,GAA+B;QAChD,wCAAwC;QACxC,OAAO,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,SAAS,CACL,EAAW,EACX,GAAqB,EACrB,QAA2B;QAE3B,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAExC,iBAAiB;QACjB,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC;QACnC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QAEzB,6BAA6B;QAC7B,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,WAAW,CAAC;QAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC;QAE5D,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;YACjB,OAAO,sBAAsB,KAAK,WAAW,OAAO,IAAI,EAAE,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,QAAQ,CAAC;QACpH,CAAC;QAED,+BAA+B;QAC/B,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,cAAc,EAAE,CAAC;QACjB,OAAO,sBAAsB,KAAK,WAAW,OAAO,IAAI,EAAE,OAAO,eAAe,oBAAoB,CAAC;IACzG,CAAC;CACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * HTML Visitor (Fallback)
3
+ *
4
+ * Handles generic HTML elements not matched by other visitors.
5
+ * Converts standard HTML tags to Markdown.
6
+ */
7
+ import type { IElementVisitor } from './interface.js';
8
+ export declare const htmlVisitor: IElementVisitor;
@@ -0,0 +1,161 @@
1
+ /**
2
+ * HTML Visitor (Fallback)
3
+ *
4
+ * Handles generic HTML elements not matched by other visitors.
5
+ * Converts standard HTML tags to Markdown.
6
+ */
7
+ /**
8
+ * Transform nested list with proper prefixes using recursive Visitor calls
9
+ *
10
+ * [RFC-FIX] Use traverse instead of textContent to preserve semantic information
11
+ */
12
+ function transformNestedList(list, ctx, traverse) {
13
+ const items = [];
14
+ const isOrdered = list.tagName.toLowerCase() === 'ol';
15
+ const children = list.children;
16
+ for (let i = 0; i < children.length; i++) {
17
+ const child = children[i];
18
+ if (child.tagName.toLowerCase() === 'li') {
19
+ const prefix = isOrdered ? `${i + 1}. ` : '- ';
20
+ // [FIX] Use recursive traversal instead of textContent
21
+ const content = traverse(child, ctx);
22
+ items.push(prefix + content.trim());
23
+ }
24
+ }
25
+ return items;
26
+ }
27
+ /**
28
+ * Transform list item with proper indentation for nested lists
29
+ *
30
+ * [RFC-FIX] Use recursive Visitor Pattern for all child elements,
31
+ * ensuring Operation/ViewLink inside <li> are properly transformed.
32
+ */
33
+ function transformListItem(li, prefix, ctx, traverse) {
34
+ const parts = [];
35
+ let mainContent = '';
36
+ // Process children of li
37
+ const childNodes = li.childNodes;
38
+ for (let i = 0; i < childNodes.length; i++) {
39
+ const node = childNodes[i];
40
+ if (node.nodeType === 3) { // Text node
41
+ mainContent += node.textContent?.trim() || '';
42
+ }
43
+ else if (node.nodeType === 1) { // Element node
44
+ const el = node;
45
+ const tagName = el.tagName.toLowerCase();
46
+ if (tagName === 'ul' || tagName === 'ol') {
47
+ // Nested list - process with indentation using recursive traversal
48
+ const nestedItems = transformNestedList(el, ctx, traverse);
49
+ parts.push(...nestedItems);
50
+ }
51
+ else {
52
+ // [RFC-FIX] Use recursive traversal for ALL other elements
53
+ // This allows Operation, ViewLink, and other semantic elements
54
+ // to be properly recognized by their respective Visitors
55
+ const childOutput = traverse(el, ctx);
56
+ mainContent += childOutput;
57
+ }
58
+ }
59
+ }
60
+ // Build result: main content with prefix, then nested items indented
61
+ let result = prefix + mainContent.trim();
62
+ if (parts.length > 0) {
63
+ result += '\n' + parts.map(p => ' ' + p).join('\n');
64
+ }
65
+ return result;
66
+ }
67
+ // ============ HTML Visitor ============
68
+ export const htmlVisitor = {
69
+ name: 'html-fallback',
70
+ priority: 100, // Lowest priority
71
+ matches(el, ctx) {
72
+ return true;
73
+ },
74
+ transform(el, ctx, children, traverseElement) {
75
+ const tagName = el.tagName.toLowerCase();
76
+ // Skip specialized internal tags
77
+ if (tagName === 'param')
78
+ return '';
79
+ // Handle line breaks
80
+ if (tagName === 'br')
81
+ return '\n';
82
+ const childTexts = children(el, ctx);
83
+ // G. Handle standard HTML elements integration from pure.ts
84
+ if (/^h[1-6]$/.test(tagName)) {
85
+ const level = '#'.repeat(parseInt(tagName[1]));
86
+ return `\n${level} ${childTexts.join(' ')}\n`;
87
+ }
88
+ if (tagName === 'p') {
89
+ const content = childTexts.join(' ').trim();
90
+ return content ? `\n${content}\n` : '';
91
+ }
92
+ if (tagName === 'strong' || tagName === 'b') {
93
+ return `**${childTexts.join(' ')}**`;
94
+ }
95
+ if (tagName === 'em' || tagName === 'i') {
96
+ return `*${childTexts.join(' ')}*`;
97
+ }
98
+ if (tagName === 'code' && el.parentElement?.tagName.toLowerCase() !== 'pre') {
99
+ return `\`${childTexts.join('')}\``;
100
+ }
101
+ if (tagName === 'pre') {
102
+ const codeEl = el.querySelector('code');
103
+ const lang = codeEl?.getAttribute('class')?.replace('language-', '') || '';
104
+ const codeContent = codeEl ? (codeEl.textContent || '') : childTexts.join('\n');
105
+ return `\n\`\`\`${lang}\n${codeContent.trim()}\n\`\`\`\n`;
106
+ }
107
+ if (tagName === 'a') {
108
+ const href = el.getAttribute('href') || '';
109
+ const text = childTexts.join(' ').trim() || href;
110
+ return `[${text}](${href})`;
111
+ }
112
+ if (tagName === 'blockquote') {
113
+ const quoted = childTexts.join(' ').trim()
114
+ .split('\n')
115
+ .map(line => `> ${line}`)
116
+ .join('\n');
117
+ return `\n${quoted}\n`;
118
+ }
119
+ if (tagName === 'hr') {
120
+ return '\n---\n';
121
+ }
122
+ // Handle lists (ul, ol)
123
+ if (tagName === 'ul' || tagName === 'ol') {
124
+ const items = [];
125
+ const listChildren = el.children;
126
+ // [RFC-FIX] Use ElementTraverser for proper Visitor Pattern
127
+ // This enables semantic elements (Operation, ViewLink) inside lists
128
+ // to be properly recognized by their respective Visitors
129
+ const singleTraverse = traverseElement
130
+ ? traverseElement
131
+ : (childEl, childCtx) => children(childEl, childCtx).join(' '); // Fallback
132
+ let liIndex = 0;
133
+ for (let i = 0; i < listChildren.length; i++) {
134
+ const child = listChildren[i];
135
+ const childTag = child.tagName.toLowerCase();
136
+ if (childTag === 'li') {
137
+ // Standard list item
138
+ const prefix = tagName === 'ol' ? `${++liIndex}. ` : '- ';
139
+ const liContent = transformListItem(child, prefix, ctx, singleTraverse);
140
+ items.push(liContent);
141
+ }
142
+ else {
143
+ // [RFC-FIX] Non-<li> children inside <ol>/<ul> (e.g., <button operation="...">)
144
+ // Use ElementTraverser to apply full Visitor Chain
145
+ const childOutput = singleTraverse(child, ctx);
146
+ if (childOutput.trim()) {
147
+ items.push(childOutput.trim());
148
+ }
149
+ }
150
+ }
151
+ return '\n' + items.join('\n') + '\n';
152
+ }
153
+ // Handle orphan li (shouldn't happen normally)
154
+ if (tagName === 'li') {
155
+ return childTexts.join(' ');
156
+ }
157
+ // Default: Join children
158
+ return childTexts.join(' ');
159
+ }
160
+ };
161
+ //# sourceMappingURL=html.visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.visitor.js","sourceRoot":"","sources":["../../../../../src/engine/view/transformer/visitors/html.visitor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH;;;;GAIG;AACH,SAAS,mBAAmB,CACxB,IAAa,EACb,GAAqB,EACrB,QAAgC;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/C,uDAAuD;YACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACtB,EAAW,EACX,MAAc,EACd,GAAqB,EACrB,QAAgC;IAEhC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,yBAAyB;IACzB,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,YAAY;YACnC,WAAW,IAAK,IAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5D,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC,eAAe;YAC7C,MAAM,EAAE,GAAG,IAAe,CAAC;YAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAEzC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACvC,mEAAmE;gBACnE,MAAM,WAAW,GAAG,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,2DAA2D;gBAC3D,+DAA+D;gBAC/D,yDAAyD;gBACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACtC,WAAW,IAAI,WAAW,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,IAAI,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,yCAAyC;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAoB;IACxC,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,GAAG,EAAE,kBAAkB;IAEjC,OAAO,CAAC,EAAW,EAAE,GAA+B;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CACL,EAAW,EACX,GAAqB,EACrB,QAA2B,EAC3B,eAAkC;QAElC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAEzC,iCAAiC;QACjC,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,EAAE,CAAC;QAEnC,qBAAqB;QACrB,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAErC,4DAA4D;QAC5D,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,KAAK,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAC1C,OAAO,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACzC,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACtC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,CAAC;QAED,IAAI,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YAC1E,OAAO,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;YAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,OAAO,WAAW,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC;QAC9D,CAAC;QAED,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;YACjD,OAAO,IAAI,IAAI,KAAK,IAAI,GAAG,CAAC;QAChC,CAAC;QAED,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;iBACrC,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;iBACxB,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,KAAK,MAAM,IAAI,CAAC;QAC3B,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACvC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC;YAEjC,4DAA4D;YAC5D,oEAAoE;YACpE,yDAAyD;YACzD,MAAM,cAAc,GAA2B,eAAe;gBAC1D,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;YAE/E,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAE7C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACpB,qBAAqB;oBACrB,MAAM,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC1D,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;oBACxE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,gFAAgF;oBAChF,mDAAmD;oBACnD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC/C,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;wBACrB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;oBACnC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1C,CAAC;QAED,+CAA+C;QAC/C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,yBAAyB;QACzB,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Transformer Visitors Registry
3
+ *
4
+ * Exports the default set of visitors used by the Transformer.
5
+ * Visitors are executed in order of their priority.
6
+ */
7
+ import type { IElementVisitor } from './interface.js';
8
+ export declare const DEFAULT_VISITORS: IElementVisitor[];
9
+ /**
10
+ * Sorts visitors by priority type
11
+ */
12
+ export declare function sortVisitors(visitors: IElementVisitor[]): IElementVisitor[];
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Transformer Visitors Registry
3
+ *
4
+ * Exports the default set of visitors used by the Transformer.
5
+ * Visitors are executed in order of their priority.
6
+ */
7
+ import { applicationVisitor } from './application.visitor.js';
8
+ import { viewVisitor } from './view.visitor.js';
9
+ import { viewLinkVisitor } from './view-link.visitor.js';
10
+ import { operationVisitor } from './operation.visitor.js';
11
+ import { htmlVisitor } from './html.visitor.js';
12
+ // Default visitors sorted by priority
13
+ // Default visitors sorted by priority
14
+ export const DEFAULT_VISITORS = sortVisitors([
15
+ applicationVisitor,
16
+ viewVisitor,
17
+ viewLinkVisitor,
18
+ operationVisitor,
19
+ htmlVisitor
20
+ ]);
21
+ /**
22
+ * Sorts visitors by priority type
23
+ */
24
+ export function sortVisitors(visitors) {
25
+ return [...visitors].sort((a, b) => a.priority - b.priority);
26
+ }
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/engine/view/transformer/visitors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,sCAAsC;AACtC,sCAAsC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAsB,YAAY,CAAC;IAC5D,kBAAkB;IAClB,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,WAAW;CACd,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAA2B;IACpD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Element Visitor Interface
3
+ *
4
+ * Each Visitor is responsible for identifying and processing a specific type of DOM element.
5
+ * Visitors should be stateless pure functions.
6
+ */
7
+ import type { TransformContext } from '../types.js';
8
+ export interface IElementVisitor {
9
+ /**
10
+ * Visitor name (for debugging and logging)
11
+ */
12
+ readonly name: string;
13
+ /**
14
+ * Processing priority
15
+ *
16
+ * Lower numbers execute earlier. A rule of thumb:
17
+ * - 0-30: Structural (Application, View, ViewLink)
18
+ * - 30-60: Semantic (Operation)
19
+ * - 60-99: Reserved for extensions
20
+ * - 100+: General HTML fallback
21
+ */
22
+ readonly priority: number;
23
+ /**
24
+ * Determines if this visitor should handle the element
25
+ */
26
+ matches(el: Element, ctx: Readonly<TransformContext>): boolean;
27
+ /**
28
+ * Executes the transformation
29
+ *
30
+ * @param el - The current element
31
+ * @param ctx - Transformation context (can modify indexMap)
32
+ * @param children - Function to traverse child nodes
33
+ * @param traverseElement - Function to traverse a single element with full Visitor Chain
34
+ * @returns TUI Markup string
35
+ */
36
+ transform(el: Element, ctx: TransformContext, children: ChildrenTraverser, traverseElement?: ElementTraverser): string;
37
+ }
38
+ /**
39
+ * Child node traverser type
40
+ *
41
+ * Used by Visitors to recursively process child nodes of an element.
42
+ * This does NOT apply Visitor matching to the element itself.
43
+ */
44
+ export type ChildrenTraverser = (el: Element, ctx: TransformContext) => string[];
45
+ /**
46
+ * Element traverser type
47
+ *
48
+ * Used by Visitors to recursively process a single element with full Visitor Chain.
49
+ * This DOES apply Visitor matching, allowing Operation/ViewLink/etc to be recognized.
50
+ *
51
+ * [RFC-FIX] Added to support semantic elements inside List items.
52
+ */
53
+ export type ElementTraverser = (el: Element, ctx: TransformContext) => string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Element Visitor Interface
3
+ *
4
+ * Each Visitor is responsible for identifying and processing a specific type of DOM element.
5
+ * Visitors should be stateless pure functions.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../../src/engine/view/transformer/visitors/interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Operation Visitor
3
+ *
4
+ * Handles <operation> or data-operation elements.
5
+ * Parses parameter definitions, types, and constraints.
6
+ * Populates IndexMap with detailed operation signatures.
7
+ */
8
+ import type { IElementVisitor } from './interface.js';
9
+ export declare const operationVisitor: IElementVisitor;
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Operation Visitor
3
+ *
4
+ * Handles <operation> or data-operation elements.
5
+ * Parses parameter definitions, types, and constraints.
6
+ * Populates IndexMap with detailed operation signatures.
7
+ */
8
+ export const operationVisitor = {
9
+ name: 'operation',
10
+ priority: 50,
11
+ matches(el, ctx) {
12
+ // [Reference] if (operationId)
13
+ const operationId = el.getAttribute('data-operation') || el.getAttribute('operation');
14
+ return !!operationId;
15
+ },
16
+ transform(el, ctx, children) {
17
+ const operationId = (el.getAttribute('data-operation') || el.getAttribute('operation'));
18
+ const operationDesc = el.getAttribute('data-operation-desc') || el.getAttribute('desc');
19
+ // Extract display text (excluding <param> tags)
20
+ const displayText = Array.from(el.childNodes)
21
+ .filter((child) => {
22
+ if (child.nodeType === 3)
23
+ return true; // Text node
24
+ if (child.nodeType === 1 && child.tagName.toLowerCase() === 'param')
25
+ return false;
26
+ return true;
27
+ })
28
+ .map((child) => {
29
+ if (child.nodeType === 3)
30
+ return child.data.trim();
31
+ return '';
32
+ })
33
+ .filter(Boolean)
34
+ .join(' ')
35
+ .trim() || operationId;
36
+ let opOutput = `- [${displayText}](tool:${operationId})\n`;
37
+ if (operationDesc) {
38
+ opOutput += ` - Desc: ${operationDesc}\n`;
39
+ }
40
+ // Parse Parameters
41
+ const params = Array.from(el.querySelectorAll('param'));
42
+ const paramDefs = [];
43
+ if (params.length > 0) {
44
+ opOutput += ` - Parameters:\n`;
45
+ params.forEach((p) => {
46
+ const name = p.getAttribute('name') || 'param';
47
+ const type = p.getAttribute('type') || 'string';
48
+ const required = p.getAttribute('required') === 'true';
49
+ const desc = p.getAttribute('desc') || undefined;
50
+ // Extended attributes
51
+ const itemType = p.getAttribute('item-type') || undefined;
52
+ const optionsStr = p.getAttribute('options') || undefined;
53
+ const defaultVal = p.getAttribute('default') || undefined;
54
+ // Constraints
55
+ const minLength = p.getAttribute('min-length');
56
+ const maxLength = p.getAttribute('max-length');
57
+ const pattern = p.getAttribute('pattern');
58
+ const min = p.getAttribute('min');
59
+ const max = p.getAttribute('max');
60
+ // Build type description string
61
+ let typeDesc = type;
62
+ if (type === 'array' && itemType) {
63
+ typeDesc = `array<${itemType}>`;
64
+ }
65
+ else if (type === 'enum' && optionsStr) {
66
+ typeDesc = `enum(${optionsStr.split(',').join(' | ')})`;
67
+ }
68
+ // Output Format
69
+ opOutput += ` - ${name}: ${typeDesc}${required ? ' (required)' : ''}`;
70
+ if (desc) {
71
+ opOutput += ` - ${desc}`;
72
+ }
73
+ opOutput += '\n';
74
+ // Output Constraints
75
+ const constraints = {};
76
+ if (minLength) {
77
+ constraints.minLength = parseInt(minLength);
78
+ opOutput += ` - min length: ${minLength}\n`;
79
+ }
80
+ if (maxLength) {
81
+ constraints.maxLength = parseInt(maxLength);
82
+ opOutput += ` - max length: ${maxLength}\n`;
83
+ }
84
+ if (pattern) {
85
+ constraints.pattern = pattern;
86
+ opOutput += ` - pattern: /${pattern}/\n`;
87
+ }
88
+ if (min) {
89
+ constraints.min = parseFloat(min);
90
+ opOutput += ` - min value: ${min}\n`;
91
+ }
92
+ if (max) {
93
+ constraints.max = parseFloat(max);
94
+ opOutput += ` - max value: ${max}\n`;
95
+ }
96
+ if (defaultVal !== undefined) {
97
+ opOutput += ` - default: ${defaultVal}\n`;
98
+ }
99
+ paramDefs.push({
100
+ name,
101
+ type,
102
+ required,
103
+ description: desc,
104
+ itemType,
105
+ options: optionsStr ? optionsStr.split(',') : undefined,
106
+ constraints: Object.keys(constraints).length > 0 ? constraints : undefined,
107
+ default: defaultVal
108
+ });
109
+ });
110
+ }
111
+ // Register in IndexMap (if context valid)
112
+ if (ctx.currentAppId && ctx.currentViewId) {
113
+ const operationPath = `tool:${ctx.currentAppId}.${ctx.currentViewId}.${operationId}`;
114
+ ctx.indexMap[operationPath] = {
115
+ description: operationDesc || undefined,
116
+ params: paramDefs
117
+ };
118
+ }
119
+ return opOutput;
120
+ }
121
+ };
122
+ //# sourceMappingURL=operation.visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation.visitor.js","sourceRoot":"","sources":["../../../../../src/engine/view/transformer/visitors/operation.visitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * View Link Visitor
3
+ *
4
+ * [RFC-006] Updated to support new ViewLink format:
5
+ * - data-link-id: LinkID for V2 mount API
6
+ * - data-unique-id: Business key for cross-snapshot matching
7
+ * - data-view-type: View type name
8
+ * - data-bound-view: Already mounted ViewID (if any)
9
+ *
10
+ * Output format:
11
+ * - V2: [content](mount:parent_view:link_id) - for Agent to mount via link
12
+ * - Already mounted: [content](view:viewId) - direct navigation
13
+ */
14
+ import type { IElementVisitor } from './interface.js';
15
+ export declare const viewLinkVisitor: IElementVisitor;
@@ -0,0 +1,98 @@
1
+ /**
2
+ * View Link Visitor
3
+ *
4
+ * [RFC-006] Updated to support new ViewLink format:
5
+ * - data-link-id: LinkID for V2 mount API
6
+ * - data-unique-id: Business key for cross-snapshot matching
7
+ * - data-view-type: View type name
8
+ * - data-bound-view: Already mounted ViewID (if any)
9
+ *
10
+ * Output format:
11
+ * - V2: [content](mount:parent_view:link_id) - for Agent to mount via link
12
+ * - Already mounted: [content](view:viewId) - direct navigation
13
+ */
14
+ export const viewLinkVisitor = {
15
+ name: 'view-link',
16
+ priority: 30,
17
+ matches(el, ctx) {
18
+ // [RFC-006] Match new data-link-id format (highest priority)
19
+ if (el.hasAttribute('data-link-id')) {
20
+ return true;
21
+ }
22
+ // Legacy: data-view-link attribute
23
+ if (el.hasAttribute('data-view-link') && el.getAttribute('data-view-link') !== '') {
24
+ return true;
25
+ }
26
+ // Legacy: view-target
27
+ const viewTargetId = el.getAttribute('data-view-target-id');
28
+ const viewTarget = el.getAttribute('view-target');
29
+ return !!(viewTargetId || viewTarget);
30
+ },
31
+ transform(el, ctx, children) {
32
+ const childTexts = children(el, ctx);
33
+ const content = childTexts.join(' ').trim() || 'View';
34
+ // [RFC-006] Handle new ViewLink format with data-link-id
35
+ const linkId = el.getAttribute('data-link-id');
36
+ if (linkId) {
37
+ const boundViewId = el.getAttribute('data-bound-view');
38
+ const viewType = el.getAttribute('data-view-type') || 'View';
39
+ const description = el.getAttribute('data-view-description');
40
+ // If already mounted, output link with ViewID in title
41
+ // Format: [Content](link:LinkID "Mounted: ViewID")
42
+ // This preserves the LinkID for context while showing the ViewID
43
+ if (boundViewId && boundViewId !== '') {
44
+ let output = `[${content}](link:${linkId} "Mounted: ${boundViewId}")`;
45
+ if (description) {
46
+ output += ` - ${description}`;
47
+ }
48
+ return output + '\n';
49
+ }
50
+ // Not mounted: output mount link with V2 format
51
+ // Agent will call: mount(link_id=linkId)
52
+ let output = `[${content}](link:${linkId})`;
53
+ if (description) {
54
+ output += ` - ${description}`;
55
+ }
56
+ return output + '\n';
57
+ }
58
+ // Legacy: data-view-link format
59
+ const dataViewLink = el.getAttribute('data-view-link');
60
+ if (dataViewLink && dataViewLink !== '') {
61
+ const linkDesc = el.getAttribute('data-view-description');
62
+ let linkOutput = `[${content}](view:${dataViewLink})`;
63
+ if (linkDesc) {
64
+ linkOutput += ` - ${linkDesc}`;
65
+ }
66
+ return linkOutput + '\n';
67
+ }
68
+ // Legacy: view-target format
69
+ const viewTargetId = el.getAttribute('data-view-target-id');
70
+ const viewTarget = el.getAttribute('view-target');
71
+ const viewLinkName = el.getAttribute('view');
72
+ const viewParams = el.getAttribute('view-params');
73
+ const targetId = viewTargetId || viewTarget;
74
+ const legacyContent = content || viewLinkName || viewTarget || 'View';
75
+ const desc = el.getAttribute('desc');
76
+ let targetUrl = `view:${targetId}`;
77
+ if (viewParams) {
78
+ try {
79
+ const paramsObj = JSON.parse(viewParams);
80
+ const queryParts = Object.entries(paramsObj)
81
+ .map(([key, value]) => `${key}=${encodeURIComponent(String(value))}`)
82
+ .join('&');
83
+ if (queryParts) {
84
+ targetUrl += `?${queryParts}`;
85
+ }
86
+ }
87
+ catch {
88
+ // Invalid JSON, ignore params
89
+ }
90
+ }
91
+ let linkOutput = `- [${legacyContent}](${targetUrl})\n`;
92
+ if (desc) {
93
+ linkOutput += ` - Description: ${desc}\n`;
94
+ }
95
+ return linkOutput;
96
+ }
97
+ };
98
+ //# sourceMappingURL=view-link.visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-link.visitor.js","sourceRoot":"","sources":["../../../../../src/engine/view/transformer/visitors/view-link.visitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * View Visitor
3
+ *
4
+ * Handles <view> definition elements (view="..." or data-is-view).
5
+ * Responsible for maintaining currentViewId context.
6
+ */
7
+ import type { IElementVisitor } from './interface.js';
8
+ export declare const viewVisitor: IElementVisitor;