@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,80 @@
1
+ /**
2
+ * SPI Layer - Signal Service Interface
3
+ *
4
+ * 管理 Desktop 级别的事件发布订阅。
5
+ *
6
+ * @module @aotui/runtime/spi
7
+ */
8
+ import type { DesktopID } from '../core/types.js';
9
+ import type { UpdateSignal } from '../core/signals.js';
10
+ /**
11
+ * Signal 监听器函数类型
12
+ */
13
+ export type SignalListener = (signal: UpdateSignal) => void;
14
+ /**
15
+ * 信号服务接口
16
+ *
17
+ * 管理 Desktop 级别的事件发布订阅。
18
+ *
19
+ * 设计原则:
20
+ * - 解耦: Signal 的产生和消费完全分离
21
+ * - 多租户: 每个 Desktop 有独立的信号空间
22
+ * - 可靠性: 订阅者异常不影响其他订阅者
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const signalService: ISignalService = new SignalBusAdapter();
27
+ *
28
+ * // 订阅
29
+ * const unsubscribe = signalService.subscribe(desktopId, (signal) => {
30
+ * console.log('Signal received:', signal.reason);
31
+ * });
32
+ *
33
+ * // 发布
34
+ * signalService.emit(desktopId, 'dom_mutation');
35
+ *
36
+ * // 取消订阅
37
+ * unsubscribe();
38
+ * ```
39
+ */
40
+ export interface ISignalService {
41
+ /**
42
+ * 订阅信号
43
+ *
44
+ * @param desktopId - Desktop ID
45
+ * @param listener - 信号处理函数
46
+ * @returns 取消订阅的函数
47
+ */
48
+ subscribe(desktopId: DesktopID, listener: SignalListener): () => void;
49
+ /**
50
+ * 发布信号
51
+ *
52
+ * @param desktopId - Desktop ID
53
+ * @param reason - 信号原因 (dom_mutation, app_opened, manual_refresh 等)
54
+ */
55
+ emit(desktopId: DesktopID, reason: UpdateSignal['reason']): void;
56
+ /**
57
+ * 清理 Desktop 相关状态
58
+ *
59
+ * 当 Desktop 销毁时调用,释放订阅者和相关资源。
60
+ *
61
+ * @param desktopId - Desktop ID
62
+ */
63
+ cleanup(desktopId: DesktopID): void;
64
+ }
65
+ /**
66
+ * Signal Output Stream Interface
67
+ *
68
+ * Desktop.output 的公开接口,用于外部消费者订阅信号。
69
+ * 与 ISignalService 的区别是:此接口仅暴露单个 Desktop 的订阅能力。
70
+ */
71
+ export interface ISignalOutputStream {
72
+ /**
73
+ * 订阅信号
74
+ */
75
+ subscribe(listener: SignalListener): void;
76
+ /**
77
+ * 取消订阅
78
+ */
79
+ unsubscribe(listener: SignalListener): void;
80
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * SPI Layer - Signal Service Interface
3
+ *
4
+ * 管理 Desktop 级别的事件发布订阅。
5
+ *
6
+ * @module @aotui/runtime/spi
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=signal.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.interface.js","sourceRoot":"","sources":["../../../src/spi/runtime/signal.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * SPI - Snapshot Interfaces
3
+ *
4
+ * [RFC-007] Interfaces for System Prompt Enhancement.
5
+ *
6
+ * These interfaces define contracts for:
7
+ * - Desktop metadata access (for snapshot generation)
8
+ * - Snapshot fragment structure (from Worker Runtime)
9
+ * - Snapshot formatter (for TUI output)
10
+ *
11
+ * @module @aotui/runtime/spi/runtime
12
+ */
13
+ /**
14
+ * Installed application info (readonly)
15
+ */
16
+ export interface InstalledAppInfo {
17
+ readonly appId: string;
18
+ readonly name: string;
19
+ readonly status: 'pending' | 'running' | 'closed' | 'collapsed';
20
+ readonly description?: string;
21
+ readonly whatItIs?: string;
22
+ readonly whenToUse?: string;
23
+ /** [RFC-014] App 消息角色 */
24
+ readonly promptRole?: 'user' | 'assistant';
25
+ }
26
+ /**
27
+ * Log entry (readonly)
28
+ */
29
+ export interface LogEntry {
30
+ readonly timestamp: number;
31
+ readonly message: string;
32
+ readonly level?: 'info' | 'warn' | 'error';
33
+ }
34
+ /**
35
+ * Desktop metadata for snapshot generation
36
+ *
37
+ * Provides read-only access to Desktop state information
38
+ * needed for generating the `<desktop>` section of TUI snapshots.
39
+ *
40
+ * @remarks
41
+ * This interface is optional for Desktop implementations.
42
+ * SnapshotFormatter will gracefully handle missing methods.
43
+ */
44
+ export interface IDesktopMetadata {
45
+ /**
46
+ * Get all installed applications
47
+ */
48
+ getInstalledApps(): ReadonlyArray<InstalledAppInfo>;
49
+ /**
50
+ * Get recent system logs
51
+ * @param limit - Maximum number of logs to return (default: 5)
52
+ */
53
+ getSystemLogs(limit?: number): ReadonlyArray<LogEntry>;
54
+ /**
55
+ * Get operation logs for a specific app
56
+ * @param appId - Application ID
57
+ * @param limit - Maximum number of logs to return (default: 3)
58
+ */
59
+ getAppOperationLogs(appId: string, limit?: number): ReadonlyArray<LogEntry>;
60
+ }
61
+ /**
62
+ * Snapshot fragment from Worker Runtime
63
+ *
64
+ * Each Worker app pushes its own fragment containing:
65
+ * - Rendered view markup
66
+ * - IndexMap for semantic references
67
+ * - Optional viewTree for Application View Tree
68
+ */
69
+ export interface ISnapshotFragment {
70
+ readonly appId: string;
71
+ readonly markup: string;
72
+ readonly indexMap: Record<string, unknown>;
73
+ readonly timestamp?: number;
74
+ /**
75
+ * View 级别片段(可选)
76
+ *
77
+ * 由 Worker Runtime 计算并推送,支持细粒度时间排序。
78
+ */
79
+ readonly views?: ReadonlyArray<{
80
+ viewId: string;
81
+ viewType: string;
82
+ viewName?: string;
83
+ markup: string;
84
+ timestamp: number;
85
+ }>;
86
+ /**
87
+ * [RFC-007] View tree markdown for Application Info section
88
+ *
89
+ * Format:
90
+ * ```markdown
91
+ * ## Application View Tree
92
+ * - [Chat](view:view_0, mounted)
93
+ * ↳ [Detail](link:CD_0)
94
+ * ```
95
+ */
96
+ readonly viewTree?: string;
97
+ }
98
+ /**
99
+ * Formatted snapshot result
100
+ */
101
+ export interface FormattedSnapshotResult {
102
+ readonly markup: string;
103
+ readonly indexMap: Record<string, unknown>;
104
+ }
105
+ /**
106
+ * Snapshot formatter interface
107
+ *
108
+ * Transforms Worker fragments and Desktop metadata into
109
+ * a complete TUI snapshot conforming to TUI_DEMO.md format.
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * const formatter: ISnapshotFormatter = new SnapshotFormatter();
114
+ * const { markup, indexMap } = formatter.format(fragments, metadata);
115
+ * ```
116
+ */
117
+ export interface ISnapshotFormatter {
118
+ /**
119
+ * Format complete TUI snapshot
120
+ *
121
+ * @param fragments - Snapshot fragments from Worker apps
122
+ * @param metadata - Desktop metadata for global info
123
+ * @returns Formatted snapshot with markup and merged indexMap
124
+ */
125
+ format(fragments: ReadonlyArray<ISnapshotFragment>, metadata: IDesktopMetadata): FormattedSnapshotResult;
126
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SPI - Snapshot Interfaces
3
+ *
4
+ * [RFC-007] Interfaces for System Prompt Enhancement.
5
+ *
6
+ * These interfaces define contracts for:
7
+ * - Desktop metadata access (for snapshot generation)
8
+ * - Snapshot fragment structure (from Worker Runtime)
9
+ * - Snapshot formatter (for TUI output)
10
+ *
11
+ * @module @aotui/runtime/spi/runtime
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=snapshot.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.interface.js","sourceRoot":"","sources":["../../../src/spi/runtime/snapshot.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * SPI - ITransformer Interface
3
+ *
4
+ * Defines the contract for DOM-to-TUI transformation.
5
+ * The Kernel depends on this interface, not on concrete implementations.
6
+ *
7
+ * @module @aotui/runtime/spi/runtime
8
+ */
9
+ import type { IndexMap } from '../core/index.js';
10
+ /**
11
+ * Result of a transformation operation
12
+ */
13
+ export interface TransformResult {
14
+ /** Generated TUI Markup (Markdown-like format) */
15
+ markup: string;
16
+ /** Map of data paths to payloads for Agent resolution */
17
+ indexMap: IndexMap;
18
+ }
19
+ /**
20
+ * Transformer Interface
21
+ *
22
+ * Transforms DOM structures into TUI-compatible markup.
23
+ * Implementations must be stateless and thread-safe.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const transformer: ITransformer = new Transformer();
28
+ * const { markup, indexMap } = transformer.transform(document);
29
+ * ```
30
+ */
31
+ export interface ITransformer {
32
+ /**
33
+ * Transforms a full DOM (Window or Document) to TUI Markup
34
+ *
35
+ * @param dom - The DOM object (Window, Document, or DesktopDOM structure)
36
+ * @returns TransformResult with markup and indexMap
37
+ */
38
+ transform(dom: unknown): TransformResult;
39
+ /**
40
+ * Transforms a single Element to TUI Markup
41
+ *
42
+ * @param element - The DOM Element to transform
43
+ * @param appId - Optional App ID for namespacing operations
44
+ * @returns TransformResult with markup and indexMap
45
+ */
46
+ transformElement(element: Element, appId?: string): TransformResult;
47
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * SPI - ITransformer Interface
3
+ *
4
+ * Defines the contract for DOM-to-TUI transformation.
5
+ * The Kernel depends on this interface, not on concrete implementations.
6
+ *
7
+ * @module @aotui/runtime/spi/runtime
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=transformer.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.interface.js","sourceRoot":"","sources":["../../../src/spi/runtime/transformer.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * SPI Layer - Worker Message Interface
3
+ *
4
+ * Defines the stable contract for Worker-Main thread communication.
5
+ *
6
+ * [架构原则] 这是 SPI 层的抽象接口,只暴露最小必要的消息契约。
7
+ * 具体的消息结构由 Engine 层定义,SDK Worker 使用本地兼容类型。
8
+ *
9
+ * 这样设计的长期收益:
10
+ * 1. SPI 保持纯粹的契约层
11
+ * 2. 未来可替换 IPC 实现 (如 SharedArrayBuffer)
12
+ * 3. 协议变更不破坏 SDK 兼容性
13
+ *
14
+ * @module @aotui/runtime/spi
15
+ */
16
+ /**
17
+ * 请求 ID 类型
18
+ *
19
+ * 用于匹配 Worker 请求-响应对
20
+ */
21
+ export type RequestID = string;
22
+ /**
23
+ * 生成唯一请求 ID
24
+ */
25
+ export declare function generateRequestId(): RequestID;
26
+ /**
27
+ * Worker 消息类型枚举
28
+ *
29
+ * 这是稳定的 API 契约,新增类型是向后兼容的,
30
+ * 但移除或重命名类型需要版本升级。
31
+ */
32
+ export type WorkerMessageType = 'INIT' | 'APP_OPEN' | 'APP_PAUSE' | 'APP_RESUME' | 'APP_CLOSE' | 'VIEW_DISMOUNT' | 'APP_OPERATION' | 'VIEW_OPERATION' | 'EXTERNAL_EVENT' | 'RENDER_VIEW' | 'RENDER_ALL' | 'GET_DOM_HTML' | 'TERMINATE' | 'RESET' | 'INIT_RESPONSE' | 'LIFECYCLE_RESPONSE' | 'OPERATION_RESPONSE' | 'RENDER_RESPONSE' | 'ERROR_RESPONSE' | 'DOM_UPDATE' | 'REQUEST_UPDATE' | 'REQUEST_MOUNT_CHILD' | 'REQUEST_DISMOUNT_CHILD' | 'RESET_RESPONSE';
33
+ /**
34
+ * 基础消息接口
35
+ *
36
+ * 所有 Worker 消息都必须包含 type 字段
37
+ */
38
+ export interface IWorkerMessage {
39
+ readonly type: WorkerMessageType;
40
+ }
41
+ /**
42
+ * 请求消息接口
43
+ *
44
+ * Main → Worker 的请求消息
45
+ */
46
+ export interface IWorkerRequest extends IWorkerMessage {
47
+ readonly requestId: RequestID;
48
+ }
49
+ /**
50
+ * 响应消息接口
51
+ *
52
+ * Worker → Main 的响应消息
53
+ */
54
+ export interface IWorkerResponse extends IWorkerMessage {
55
+ readonly requestId: RequestID;
56
+ readonly success: boolean;
57
+ }
58
+ /**
59
+ * 错误信息结构
60
+ */
61
+ export interface IWorkerError {
62
+ readonly code: string;
63
+ readonly message: string;
64
+ }
65
+ /**
66
+ * 检查消息是否为响应类型
67
+ */
68
+ export declare function isWorkerResponse(msg: IWorkerMessage): msg is IWorkerResponse;
69
+ /**
70
+ * 检查消息是否为请求类型
71
+ */
72
+ export declare function isWorkerRequest(msg: IWorkerMessage): msg is IWorkerRequest;
73
+ /**
74
+ * 检查是否为 DOM 更新推送
75
+ */
76
+ export declare function isDomUpdateMessage(msg: IWorkerMessage): boolean;
77
+ /**
78
+ * 检查是否为 Worker 主动请求
79
+ */
80
+ export declare function isWorkerPush(msg: IWorkerMessage): boolean;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SPI Layer - Worker Message Interface
3
+ *
4
+ * Defines the stable contract for Worker-Main thread communication.
5
+ *
6
+ * [架构原则] 这是 SPI 层的抽象接口,只暴露最小必要的消息契约。
7
+ * 具体的消息结构由 Engine 层定义,SDK Worker 使用本地兼容类型。
8
+ *
9
+ * 这样设计的长期收益:
10
+ * 1. SPI 保持纯粹的契约层
11
+ * 2. 未来可替换 IPC 实现 (如 SharedArrayBuffer)
12
+ * 3. 协议变更不破坏 SDK 兼容性
13
+ *
14
+ * @module @aotui/runtime/spi
15
+ */
16
+ /**
17
+ * 生成唯一请求 ID
18
+ */
19
+ export function generateRequestId() {
20
+ return `req_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
21
+ }
22
+ // ============================================================================
23
+ // Type Guards (稳定契约)
24
+ // ============================================================================
25
+ /**
26
+ * 检查消息是否为响应类型
27
+ */
28
+ export function isWorkerResponse(msg) {
29
+ return 'requestId' in msg && 'success' in msg;
30
+ }
31
+ /**
32
+ * 检查消息是否为请求类型
33
+ */
34
+ export function isWorkerRequest(msg) {
35
+ return 'requestId' in msg && !('success' in msg);
36
+ }
37
+ /**
38
+ * 检查是否为 DOM 更新推送
39
+ */
40
+ export function isDomUpdateMessage(msg) {
41
+ return msg.type === 'DOM_UPDATE';
42
+ }
43
+ /**
44
+ * 检查是否为 Worker 主动请求
45
+ */
46
+ export function isWorkerPush(msg) {
47
+ return msg.type.startsWith('REQUEST_') || msg.type === 'DOM_UPDATE';
48
+ }
49
+ //# sourceMappingURL=worker-message.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-message.interface.js","sourceRoot":"","sources":["../../../src/spi/runtime/worker-message.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC;AAoFD,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAmB;IAChD,OAAO,WAAW,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAmB;IAC/C,OAAO,WAAW,IAAI,GAAG,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IAClD,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAmB;IAC5C,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;AACxE,CAAC"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Worker Runtime SPI - 通用 Worker 基础设施接口
3
+ *
4
+ * 本文件定义了 Worker 侧运行时的标准接口,用于支持多框架生态。
5
+ *
6
+ * 设计原则:
7
+ * 1. 框架无关:不依赖任何具体的 UI 框架(Preact, Vue, Solid)
8
+ * 2. 职责分离:Worker Runtime 负责"管道",App Adapter 负责"逻辑"
9
+ * 3. 可测试性:接口可被 Mock,便于单元测试
10
+ *
11
+ * @module @aotui/runtime/spi/worker-runtime
12
+ */
13
+ import type { AppContext } from '../app/store.interface.js';
14
+ import type { OperationContext, OperationResult } from '../core/operations.js';
15
+ import type { AppID, DesktopID } from '../core/types.js';
16
+ /**
17
+ * Worker 运行时接口
18
+ *
19
+ * 职责:
20
+ * - 初始化 Virtual DOM 环境 (LinkedOM)
21
+ * - 处理 IPC 消息路由
22
+ * - 提供 DOM 观察与同步能力
23
+ * - 管理 App 生命周期框架
24
+ */
25
+ export interface IWorkerRuntime {
26
+ /**
27
+ * 初始化 Worker 环境
28
+ * @param config Worker 配置信息
29
+ */
30
+ initialize(config: WorkerRuntimeConfig): Promise<void>;
31
+ /**
32
+ * 加载并初始化 App
33
+ * @param modulePath App 模块路径
34
+ * @param adapter UI 框架适配器
35
+ */
36
+ loadApp(modulePath: string, adapter: IAppAdapter): Promise<void>;
37
+ /**
38
+ * 获取 Virtual DOM 环境
39
+ */
40
+ getDOMEnvironment(): WorkerDOMEnvironment;
41
+ /**
42
+ * 发送消息到主线程
43
+ */
44
+ sendMessage(message: WorkerMessage): void;
45
+ /**
46
+ * 启动 DOM 观察器
47
+ * @param container 要观察的容器元素
48
+ */
49
+ observeDOM(container: Element): void;
50
+ /**
51
+ * 手动触发 DOM 同步
52
+ */
53
+ syncDOM(): void;
54
+ /**
55
+ * 关闭 Worker
56
+ */
57
+ shutdown(): Promise<void>;
58
+ }
59
+ /**
60
+ * Worker Runtime 配置
61
+ */
62
+ export interface WorkerRuntimeConfig {
63
+ /** 应用 ID (Branded Type) */
64
+ appId: AppID;
65
+ /** Desktop ID (Branded Type) */
66
+ desktopId: DesktopID;
67
+ /**
68
+ * DOM 更新节流时间 (ms)
69
+ * @default 16
70
+ */
71
+ domUpdateThrottle?: number;
72
+ }
73
+ /**
74
+ * Virtual DOM 环境
75
+ *
76
+ * 提供 Worker 内的 DOM API 访问
77
+ */
78
+ export interface WorkerDOMEnvironment {
79
+ /** LinkedOM document 实例 */
80
+ document: Document;
81
+ /** LinkedOM window 实例 */
82
+ window: Window;
83
+ /**
84
+ * App 根容器元素
85
+ */
86
+ container: HTMLElement;
87
+ }
88
+ /**
89
+ * Worker 消息类型 (简化,详细定义在 worker-message.interface.ts)
90
+ */
91
+ export interface WorkerMessage {
92
+ type: string;
93
+ [key: string]: unknown;
94
+ }
95
+ /**
96
+ * App 适配器接口
97
+ *
98
+ * 职责:
99
+ * - 将 UI 框架挂载到 Virtual DOM
100
+ * - 处理框架特定的生命周期
101
+ * - 提供渲染回调机制
102
+ *
103
+ * @template TApp App 实例类型(框架特定)
104
+ */
105
+ export interface IAppAdapter<TApp = unknown> {
106
+ /**
107
+ * 适配器名称
108
+ *
109
+ * @example "preact", "vue", "solid"
110
+ */
111
+ readonly name: string;
112
+ /**
113
+ * 初始化框架环境
114
+ *
115
+ * 例如:设置 globalThis.document, 注册全局 API
116
+ *
117
+ * @param env Virtual DOM 环境
118
+ */
119
+ setupEnvironment(env: WorkerDOMEnvironment): void;
120
+ /**
121
+ * 创建 App 实例
122
+ *
123
+ * 从动态导入的模块中提取并创建 App
124
+ *
125
+ * @param appModule 动态 import() 的模块对象
126
+ * @returns App 实例
127
+ */
128
+ createApp(appModule: any): Promise<TApp>;
129
+ /**
130
+ * 挂载 App 到容器
131
+ *
132
+ * @param app App 实例
133
+ * @param context Runtime 提供的 App 上下文
134
+ * @param container 挂载目标容器
135
+ * @returns 挂载结果,包含生命周期钩子和操作处理器
136
+ */
137
+ mount(app: TApp, context: AppContext, container: HTMLElement): Promise<AppAdapterMountResult>;
138
+ /**
139
+ * 卸载 App
140
+ *
141
+ * @param app App 实例
142
+ */
143
+ unmount(app: TApp): Promise<void>;
144
+ }
145
+ /**
146
+ * App 挂载结果
147
+ *
148
+ * Adapter 在 mount() 后返回,用于连接 App 与 Worker Runtime
149
+ */
150
+ export interface AppAdapterMountResult {
151
+ /**
152
+ * 生命周期钩子
153
+ *
154
+ * 当 Runtime 调用对应生命周期方法时触发
155
+ */
156
+ lifecycle: {
157
+ /** App 暂停 */
158
+ onPause?: () => Promise<void>;
159
+ /** App 恢复 */
160
+ onResume?: () => Promise<void>;
161
+ /** App 关闭 */
162
+ onClose?: () => Promise<void>;
163
+ };
164
+ /**
165
+ * 操作处理器
166
+ *
167
+ * 当 Agent 或 Desktop 发起 Operation 时调用
168
+ */
169
+ onOperation: (context: OperationContext, operation: string, args: Record<string, unknown>) => Promise<OperationResult>;
170
+ /**
171
+ * 渲染回调 (可选)
172
+ *
173
+ * 当 App 调用 `markDirty()` 后,Runtime 会调用此回调。
174
+ * 适用于需要手动触发渲染的情况(如 ViewBasedApp)。
175
+ */
176
+ onRender?: () => void;
177
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Worker Runtime SPI - 通用 Worker 基础设施接口
3
+ *
4
+ * 本文件定义了 Worker 侧运行时的标准接口,用于支持多框架生态。
5
+ *
6
+ * 设计原则:
7
+ * 1. 框架无关:不依赖任何具体的 UI 框架(Preact, Vue, Solid)
8
+ * 2. 职责分离:Worker Runtime 负责"管道",App Adapter 负责"逻辑"
9
+ * 3. 可测试性:接口可被 Mock,便于单元测试
10
+ *
11
+ * @module @aotui/runtime/spi/worker-runtime
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=worker-runtime.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-runtime.interface.js","sourceRoot":"","sources":["../../../src/spi/runtime/worker-runtime.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Worker Protocol - SPI Entry Point
3
+ *
4
+ * 统一的 Worker IPC 协议定义。
5
+ *
6
+ * 这是 AppWorkerHost (主线程) 和 Worker Runtime (工作线程) 之间的契约。
7
+ *
8
+ * ## 职责边界
9
+ *
10
+ * - **Runtime (AppWorkerHost)**: 发送命令消息,接收响应/推送
11
+ * - **Worker Runtime**: 接收命令消息,发送响应/推送
12
+ *
13
+ * ## 使用方式
14
+ *
15
+ * ```typescript
16
+ * // Runtime 端 (AppWorkerHost)
17
+ * import type { MainToWorkerMessage, WorkerToMainMessage } from '@aotui/runtime/spi';
18
+ *
19
+ * // Worker 端 (worker-runtime)
20
+ * import type { MainToWorkerMessage, WorkerToMainMessage } from '../spi/worker-protocol/index.js';
21
+ * ```
22
+ *
23
+ * @module @aotui/runtime/spi/worker-protocol
24
+ */
25
+ export * from './types.js';
26
+ export * from './messages.js';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Worker Protocol - SPI Entry Point
3
+ *
4
+ * 统一的 Worker IPC 协议定义。
5
+ *
6
+ * 这是 AppWorkerHost (主线程) 和 Worker Runtime (工作线程) 之间的契约。
7
+ *
8
+ * ## 职责边界
9
+ *
10
+ * - **Runtime (AppWorkerHost)**: 发送命令消息,接收响应/推送
11
+ * - **Worker Runtime**: 接收命令消息,发送响应/推送
12
+ *
13
+ * ## 使用方式
14
+ *
15
+ * ```typescript
16
+ * // Runtime 端 (AppWorkerHost)
17
+ * import type { MainToWorkerMessage, WorkerToMainMessage } from '@aotui/runtime/spi';
18
+ *
19
+ * // Worker 端 (worker-runtime)
20
+ * import type { MainToWorkerMessage, WorkerToMainMessage } from '../spi/worker-protocol/index.js';
21
+ * ```
22
+ *
23
+ * @module @aotui/runtime/spi/worker-protocol
24
+ */
25
+ // Type definitions
26
+ export * from './types.js';
27
+ // Message definitions
28
+ export * from './messages.js';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/spi/worker-protocol/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,mBAAmB;AACnB,cAAc,YAAY,CAAC;AAE3B,sBAAsB;AACtB,cAAc,eAAe,CAAC"}