@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,208 @@
1
+ import type { IDesktop, DesktopID, AppID, ViewID, UpdateSignal, AppState, DesktopStatus, OperationPayload, IAppHostService, ISignalService, ILLMOutputChannelService, IRuntimeContext } from '../../spi/index.js';
2
+ import { SignalBus, type SignalOutputStream } from './signal-bus.js';
3
+ import { DesktopLogger, type LogEntry } from './desktop-logger.js';
4
+ import { AppManager, type InstalledApp } from '../app/index.js';
5
+ import { ViewManager } from '../view/index.js';
6
+ import { RuntimeConfig } from '../../spi/config/index.js';
7
+ export { SignalOutputStream } from './signal-bus.js';
8
+ export { LogEntry } from './desktop-logger.js';
9
+ export { InstalledApp } from '../app/index.js';
10
+ /**
11
+ * Desktop 构造参数
12
+ *
13
+ * [Option B] 支持新的 Service 接口注入
14
+ */
15
+ export interface DesktopOptions {
16
+ /** 使用外部 SignalBus (默认创建内部实例) - 向后兼容 */
17
+ signalBus?: SignalBus;
18
+ /** 使用外部 DesktopLogger (默认创建内部实例) */
19
+ logger?: DesktopLogger;
20
+ /** 使用外部 AppManager (默认创建内部实例) - 向后兼容 */
21
+ appManager?: AppManager;
22
+ /** 使用外部 ViewManager (默认创建内部实例) */
23
+ viewManager?: ViewManager;
24
+ /** [Option B] 使用外部 IAppHostService */
25
+ appHostService?: IAppHostService;
26
+ /** [Option B] 使用外部 ISignalService */
27
+ signalService?: ISignalService;
28
+ runtimeConfig?: RuntimeConfig;
29
+ /** 使用外部 ILLMOutputChannelService */
30
+ llmOutputChannelService?: ILLMOutputChannelService;
31
+ context?: IRuntimeContext;
32
+ }
33
+ export declare class Desktop implements IDesktop {
34
+ readonly id: DesktopID;
35
+ readonly createdAt: number;
36
+ readonly context?: IRuntimeContext;
37
+ private _status;
38
+ private _disposed;
39
+ private _isDraining;
40
+ private signalBus;
41
+ private logger;
42
+ private appManager;
43
+ private viewManager;
44
+ private appHostService;
45
+ private signalService;
46
+ private config;
47
+ private llmOutputChannel;
48
+ constructor(id?: DesktopID, options?: DesktopOptions);
49
+ get status(): DesktopStatus;
50
+ get output(): SignalOutputStream;
51
+ getLLMOutputChannel(): ILLMOutputChannelService;
52
+ broadcastLLMOutput(payload: {
53
+ reasoning?: string;
54
+ content?: string;
55
+ }, type: 'complete', meta?: {
56
+ model?: string;
57
+ providerId?: string;
58
+ modelId?: string;
59
+ usage?: {
60
+ promptTokens: number;
61
+ completionTokens: number;
62
+ totalTokens: number;
63
+ };
64
+ }): void;
65
+ openApp(appId: AppID): Promise<void>;
66
+ closeApp(appId: AppID): Promise<void>;
67
+ collapseApp(appId: AppID): Promise<void>;
68
+ showApp(appId: AppID): Promise<void>;
69
+ dismountView(appId: AppID, viewId: ViewID): Promise<void>;
70
+ hideView(appId: AppID, viewId: ViewID): Promise<void>;
71
+ showView(appId: AppID, viewId: ViewID): Promise<void>;
72
+ /**
73
+ * [RFC-006] Mount view via ViewLink
74
+ *
75
+ * Called when Agent uses V2 mount API: mount(parent_view, link_id)
76
+ */
77
+ mountViewByLink(appId: AppID, parentViewId: ViewID, linkId: string): Promise<void>;
78
+ /**
79
+ * Get Window object (for ViewManager)
80
+ */
81
+ /**
82
+ * [Worker-Only] Install Dynamic Worker App
83
+ *
84
+ * App runs in a dedicated Worker Thread via IPC.
85
+ */
86
+ installDynamicWorkerApp(appModulePath: string, options?: {
87
+ workerScriptPath?: string;
88
+ appId?: string;
89
+ name?: string;
90
+ /** [RFC-013] App description for Agent */
91
+ description?: string;
92
+ /** App 是什么 */
93
+ whatItIs?: string;
94
+ /** 什么时候用 */
95
+ whenToUse?: string;
96
+ config?: import('../../spi/app/app-config.interface.js').AppLaunchConfig;
97
+ /** [RFC-014] App Role */
98
+ promptRole?: 'user' | 'assistant';
99
+ }): Promise<string>;
100
+ /**
101
+ * [RFC-014] 注册待启动 App (懒加载)
102
+ */
103
+ registerPendingApp(options: {
104
+ appId?: string;
105
+ name?: string;
106
+ description?: string;
107
+ whatItIs?: string;
108
+ whenToUse?: string;
109
+ modulePath: string;
110
+ workerScriptPath?: string;
111
+ /** [RFC-014] App Role */
112
+ promptRole?: 'user' | 'assistant';
113
+ }): Promise<string>;
114
+ /**
115
+ * Get Snapshot Fragments from all Apps
116
+ *
117
+ * When Worker-Side Transformation is enabled, Worker executes Transformer directly.
118
+ * This method aggregates cached Markdown + IndexMap + ViewTree from all workers.
119
+ *
120
+ * [RFC-007] Added viewTree for Application View Tree section
121
+ *
122
+ * @returns Snapshot Fragments from all apps, or empty array
123
+ */
124
+ getSnapshotFragments(): {
125
+ appId: AppID;
126
+ markup: string;
127
+ indexMap: Record<string, unknown>;
128
+ views?: Array<{
129
+ viewId: ViewID;
130
+ viewType: string;
131
+ viewName?: string;
132
+ markup: string;
133
+ timestamp: number;
134
+ }>;
135
+ viewTree?: string;
136
+ timestamp?: number;
137
+ }[];
138
+ /**
139
+ * 获取 App 信息
140
+ * @param appId - App ID
141
+ * @returns App 信息 (name, etc.) 或 undefined
142
+ */
143
+ getAppInfo(appId: AppID): {
144
+ name?: string;
145
+ } | undefined;
146
+ /**
147
+ * 暂停 Desktop
148
+ * 会调用所有动态 App 的 onPause()
149
+ */
150
+ suspend(): Promise<void>;
151
+ /**
152
+ * 恢复 Desktop
153
+ * 会调用所有动态 App 的 onResume()
154
+ */
155
+ resume(): Promise<void>;
156
+ getAppStates(): AppState[];
157
+ /**
158
+ * 获取已安装应用列表 (用于 SnapshotBuilder)
159
+ */
160
+ getInstalledApps(): InstalledApp[];
161
+ /**
162
+ * Get System Logs (for <desktop> area)
163
+ */
164
+ getSystemLogs(): LogEntry[];
165
+ /**
166
+ * Get App Operation Logs (for <application> <info> area)
167
+ */
168
+ getAppOperationLogs(appId: AppID): LogEntry[];
169
+ /**
170
+ * Log System Message
171
+ */
172
+ logSystem(message: string, level?: 'info' | 'warn' | 'error'): void;
173
+ /**
174
+ * Log App Operation
175
+ */
176
+ logAppOperation(appId: AppID, message: string, level?: 'info' | 'warn' | 'error'): void;
177
+ /**
178
+ * 获取动态 App ID 列表(用于序列化恢复)
179
+ */
180
+ getDynamicAppIds(): AppID[];
181
+ /**
182
+ * [RFC-014] 等待所有 App 关闭完成
183
+ *
184
+ * 关闭所有 App 并等待 Worker 清理。
185
+ * 调用后 Desktop 进入 draining 状态。
186
+ */
187
+ drain(): Promise<void>;
188
+ /**
189
+ * [RFC-015] Delete Desktop
190
+ *
191
+ * 1. 触发 App onDelete 清理数据
192
+ * 2. 调用 drain 关闭 Worker
193
+ * 3. 清理 Desktop 资源
194
+ */
195
+ delete(): Promise<void>;
196
+ dispose(): Promise<void>;
197
+ /**
198
+ * Dispatch Operation to App Container
199
+ *
200
+ * Desktop is responsible for converting Operation Payload to DOM Events (or IPC messages)
201
+ * and sending them to the App.
202
+ *
203
+ * [Worker-Only] For WorkerSandbox, use IPC instead of CustomEvent
204
+ * [P0-1 FIX] Now returns the actual OperationResult from the Worker
205
+ */
206
+ dispatchOperation(appId: AppID, payload: OperationPayload): Promise<import('../../spi/index.js').OperationResult>;
207
+ emitSignal(reason: UpdateSignal['reason']): void;
208
+ }
@@ -0,0 +1,351 @@
1
+ import { createDesktopId, createSnapshotId, createOperationId } from '../../spi/index.js';
2
+ import { AOTUIError, failedResult } from '../../spi/core/errors.js';
3
+ import { SignalBus, createSignalOutputStream } from './signal-bus.js';
4
+ import { DesktopLogger } from './desktop-logger.js';
5
+ import { AppManager } from '../app/index.js';
6
+ import { ViewManager } from '../view/index.js';
7
+ import { LLMOutputChannelService } from './llm-output-channel.js';
8
+ import { RUNTIME_DEFAULTS } from '../../spi/config/index.js';
9
+ // Desktop now explicitly implements IDesktopDOM for type safety
10
+ export class Desktop {
11
+ id;
12
+ createdAt;
13
+ // [RFC-026] Runtime Context
14
+ context;
15
+ _status = 'active';
16
+ _disposed = false;
17
+ _isDraining = false; // [RFC-014] Draining 状态标志
18
+ // Use injected SignalBus or create internal instance
19
+ signalBus;
20
+ // Use injected DesktopLogger or create internal instance
21
+ logger;
22
+ // Use injected AppManager or create internal instance
23
+ appManager;
24
+ // Use injected ViewManager or create internal instance
25
+ viewManager;
26
+ // [Option B] New Service interfaces
27
+ appHostService = null;
28
+ signalService = null;
29
+ config;
30
+ // [RFC-011] LLM Output Channel Service
31
+ llmOutputChannel;
32
+ constructor(id, options) {
33
+ this.id = id ?? createDesktopId();
34
+ this.createdAt = Date.now();
35
+ this.config = options?.runtimeConfig ?? RUNTIME_DEFAULTS;
36
+ this.context = options?.context;
37
+ // Desktop is Headless (No Mirror DOM)
38
+ // [Option B] 新 Service 接口注入
39
+ this.appHostService = options?.appHostService ?? null;
40
+ this.signalService = options?.signalService ?? null;
41
+ // 向后兼容: 使用 SignalBus 或从 SignalService 获取
42
+ if (options?.signalBus) {
43
+ this.signalBus = options.signalBus;
44
+ }
45
+ else if (this.signalService && this.signalService.getBus) {
46
+ this.signalBus = this.signalService.getBus();
47
+ }
48
+ else {
49
+ this.signalBus = new SignalBus();
50
+ }
51
+ this.logger = options?.logger || new DesktopLogger({
52
+ maxSystemLogs: this.config.logger.maxSystemLogs,
53
+ maxAppLogs: this.config.logger.maxAppLogs
54
+ });
55
+ this.appManager = options?.appManager || new AppManager(this);
56
+ this.viewManager = options?.viewManager || new ViewManager();
57
+ // [RFC-011] LLM Output Channel Service
58
+ this.llmOutputChannel = options?.llmOutputChannelService ?? new LLMOutputChannelService();
59
+ this.logSystem('Desktop initialized.');
60
+ if (this.context) {
61
+ this.logSystem(`Context injected: ${JSON.stringify(Object.keys(this.context.env))}`);
62
+ }
63
+ }
64
+ get status() {
65
+ return this._status;
66
+ }
67
+ // Delegate to SignalBus
68
+ get output() {
69
+ return createSignalOutputStream(this.signalBus, this.id);
70
+ }
71
+ // [RFC-011] Expose LLM Output Channel for Bridge access
72
+ getLLMOutputChannel() {
73
+ return this.llmOutputChannel;
74
+ }
75
+ // [RFC-011] Broadcast LLM text to all Workers
76
+ // [RFC-020] Now accepts structured payload
77
+ broadcastLLMOutput(payload, type, meta) {
78
+ this.appManager.broadcastLLMOutput(payload, type, meta);
79
+ }
80
+ // --- System Commands (App) ---
81
+ async openApp(appId) {
82
+ return this.appManager.openApp(appId);
83
+ }
84
+ async closeApp(appId) {
85
+ return this.appManager.closeApp(appId);
86
+ }
87
+ async collapseApp(appId) {
88
+ return this.appManager.collapseApp(appId);
89
+ }
90
+ async showApp(appId) {
91
+ return this.appManager.showApp(appId);
92
+ }
93
+ // --- System Commands (View) ---
94
+ // Delegate to ViewManager
95
+ async dismountView(appId, viewId) {
96
+ // [Worker-Only] Use IPC for Worker Apps
97
+ const sandbox = this.appManager.getWorkerSandbox(appId);
98
+ if (sandbox) {
99
+ await sandbox.dismountView(viewId);
100
+ }
101
+ else {
102
+ await this.viewManager.dismount(appId, viewId);
103
+ }
104
+ this.emitSignal('dom_mutation'); // Notify after view state change
105
+ }
106
+ async hideView(appId, viewId) {
107
+ await this.viewManager.hide(appId, viewId);
108
+ this.emitSignal('dom_mutation'); // Notify after view state change
109
+ }
110
+ async showView(appId, viewId) {
111
+ await this.viewManager.show(appId, viewId);
112
+ this.emitSignal('dom_mutation'); // Notify after view state change
113
+ }
114
+ /**
115
+ * [RFC-006] Mount view via ViewLink
116
+ *
117
+ * Called when Agent uses V2 mount API: mount(parent_view, link_id)
118
+ */
119
+ async mountViewByLink(appId, parentViewId, linkId) {
120
+ // [Worker-Only] Use IPC for Worker Apps
121
+ const sandbox = this.appManager.getWorkerSandbox(appId);
122
+ if (sandbox) {
123
+ await sandbox.mountViewByLink(parentViewId, linkId);
124
+ }
125
+ else {
126
+ // Non-worker apps: delegate to ViewManager (fallback)
127
+ await this.viewManager.mountByLink(appId, parentViewId, linkId);
128
+ }
129
+ this.emitSignal('dom_mutation'); // Notify after view state change
130
+ }
131
+ /**
132
+ * Get Window object (for ViewManager)
133
+ */
134
+ // --- Core Methods ---
135
+ /**
136
+ * [Worker-Only] Install Dynamic Worker App
137
+ *
138
+ * App runs in a dedicated Worker Thread via IPC.
139
+ */
140
+ async installDynamicWorkerApp(appModulePath, options) {
141
+ // [RFC-026] Merge Runtime Context into AppLaunchConfig
142
+ // Priority: App Specific Config > Runtime Context
143
+ // Note: We inject env vars from context into config.env if not present
144
+ let mergedConfig = options?.config;
145
+ if (this.context?.env) {
146
+ mergedConfig = mergedConfig || {};
147
+ // Inject all env vars from context
148
+ for (const [key, value] of Object.entries(this.context.env)) {
149
+ if (mergedConfig[key] === undefined) {
150
+ mergedConfig[key] = value;
151
+ }
152
+ }
153
+ }
154
+ return this.appManager.install(appModulePath, {
155
+ workerScriptPath: options?.workerScriptPath, // Now optional, AppManager/AppWorkerHost will use default
156
+ appId: options?.appId,
157
+ name: options?.name,
158
+ description: options?.description, // [RFC-013]
159
+ whatItIs: options?.whatItIs,
160
+ whenToUse: options?.whenToUse,
161
+ config: mergedConfig, // [RFC-026] Injected Config
162
+ runtimeConfig: this.config, // [RFC-005] Pass Runtime Config
163
+ promptRole: options?.promptRole
164
+ });
165
+ }
166
+ /**
167
+ * [RFC-014] 注册待启动 App (懒加载)
168
+ */
169
+ async registerPendingApp(options) {
170
+ return this.appManager.registerPendingApp({
171
+ appId: options.appId,
172
+ name: options.name,
173
+ description: options.description,
174
+ whatItIs: options.whatItIs,
175
+ whenToUse: options.whenToUse,
176
+ modulePath: options.modulePath,
177
+ workerScriptPath: options.workerScriptPath,
178
+ promptRole: options.promptRole
179
+ });
180
+ }
181
+ /**
182
+ * Get Snapshot Fragments from all Apps
183
+ *
184
+ * When Worker-Side Transformation is enabled, Worker executes Transformer directly.
185
+ * This method aggregates cached Markdown + IndexMap + ViewTree from all workers.
186
+ *
187
+ * [RFC-007] Added viewTree for Application View Tree section
188
+ *
189
+ * @returns Snapshot Fragments from all apps, or empty array
190
+ */
191
+ getSnapshotFragments() {
192
+ if (this._disposed)
193
+ throw new AOTUIError('DESKTOP_DISPOSED', { desktopId: this.id });
194
+ const fragments = [];
195
+ for (const [appId, worker] of this.appManager.getAllWorkers()) {
196
+ const fragment = worker.getSnapshotFragment();
197
+ if (fragment) {
198
+ fragments.push({
199
+ appId,
200
+ markup: fragment.markup,
201
+ indexMap: fragment.indexMap,
202
+ views: fragment.views,
203
+ viewTree: fragment.viewTree, // [RFC-007]
204
+ timestamp: fragment.timestamp,
205
+ });
206
+ }
207
+ }
208
+ return fragments;
209
+ }
210
+ /**
211
+ * 获取 App 信息
212
+ * @param appId - App ID
213
+ * @returns App 信息 (name, etc.) 或 undefined
214
+ */
215
+ getAppInfo(appId) {
216
+ if (this._disposed)
217
+ throw new AOTUIError('DESKTOP_DISPOSED', { desktopId: this.id });
218
+ const worker = this.appManager.getAllWorkers().get(appId);
219
+ if (worker) {
220
+ return { name: worker.name };
221
+ }
222
+ return undefined;
223
+ }
224
+ // --- Lifecycle Methods ---
225
+ /**
226
+ * 暂停 Desktop
227
+ * 会调用所有动态 App 的 onPause()
228
+ */
229
+ async suspend() {
230
+ this._status = 'suspended';
231
+ this.signalBus.stopObserving(this.id);
232
+ await this.appManager.pauseAll();
233
+ }
234
+ /**
235
+ * 恢复 Desktop
236
+ * 会调用所有动态 App 的 onResume()
237
+ */
238
+ async resume() {
239
+ if (this._status === 'suspended') {
240
+ this._status = 'active';
241
+ await this.appManager.resumeAll();
242
+ }
243
+ }
244
+ getAppStates() {
245
+ return this.appManager.getAppStates();
246
+ }
247
+ /**
248
+ * 获取已安装应用列表 (用于 SnapshotBuilder)
249
+ */
250
+ getInstalledApps() {
251
+ return this.appManager.getInstalledApps();
252
+ }
253
+ /**
254
+ * Get System Logs (for <desktop> area)
255
+ */
256
+ getSystemLogs() {
257
+ return this.logger.getSystemLogs(this.id);
258
+ }
259
+ /**
260
+ * Get App Operation Logs (for <application> <info> area)
261
+ */
262
+ getAppOperationLogs(appId) {
263
+ return this.logger.getAppLogs(this.id, appId);
264
+ }
265
+ /**
266
+ * Log System Message
267
+ */
268
+ logSystem(message, level = 'info') {
269
+ this.logger.logSystem(this.id, message, level);
270
+ }
271
+ /**
272
+ * Log App Operation
273
+ */
274
+ logAppOperation(appId, message, level = 'info') {
275
+ this.logger.logApp(this.id, appId, message, level);
276
+ }
277
+ /**
278
+ * 获取动态 App ID 列表(用于序列化恢复)
279
+ */
280
+ getDynamicAppIds() {
281
+ return this.appManager.getDynamicAppIds();
282
+ }
283
+ /**
284
+ * [RFC-014] 等待所有 App 关闭完成
285
+ *
286
+ * 关闭所有 App 并等待 Worker 清理。
287
+ * 调用后 Desktop 进入 draining 状态。
288
+ */
289
+ async drain() {
290
+ if (this._disposed || this._isDraining)
291
+ return;
292
+ this._isDraining = true;
293
+ this.logSystem('Desktop draining: closing all apps...');
294
+ // 关闭所有 App(等待 Worker 清理)
295
+ await this.appManager.closeAll();
296
+ this.logSystem('Desktop drained: all apps closed.');
297
+ }
298
+ /**
299
+ * [RFC-015] Delete Desktop
300
+ *
301
+ * 1. 触发 App onDelete 清理数据
302
+ * 2. 调用 drain 关闭 Worker
303
+ * 3. 清理 Desktop 资源
304
+ */
305
+ async delete() {
306
+ if (this._disposed)
307
+ return;
308
+ this.logSystem('Desktop deleting: cleaning up app data...');
309
+ // 1. 触发 App 数据清理
310
+ await this.appManager.deleteAll();
311
+ // 2. 标记为 draining (避免重复 close)
312
+ this._isDraining = true;
313
+ // 3. 销毁 Desktop
314
+ await this.dispose();
315
+ this.logSystem('Desktop deleted.');
316
+ }
317
+ async dispose() {
318
+ if (this._disposed)
319
+ return;
320
+ // [RFC-014] 确保 drain 过
321
+ if (!this._isDraining) {
322
+ await this.drain();
323
+ }
324
+ this._disposed = true;
325
+ this.signalBus.cleanup(this.id);
326
+ }
327
+ // --- Internals ---
328
+ /**
329
+ * Dispatch Operation to App Container
330
+ *
331
+ * Desktop is responsible for converting Operation Payload to DOM Events (or IPC messages)
332
+ * and sending them to the App.
333
+ *
334
+ * [Worker-Only] For WorkerSandbox, use IPC instead of CustomEvent
335
+ * [P0-1 FIX] Now returns the actual OperationResult from the Worker
336
+ */
337
+ async dispatchOperation(appId, payload) {
338
+ const sandbox = this.appManager.getWorkerSandbox(appId);
339
+ if (!sandbox) {
340
+ return failedResult('APP_NOT_FOUND', { appId, desktopId: this.id });
341
+ }
342
+ // WorkerSandbox Mode: Dispatch operation via IPC
343
+ // [P0-1 FIX] Return the actual result from executeOperation
344
+ return await sandbox.executeOperation(createOperationId(payload.operation), payload.args || {}, createSnapshotId(payload.context.snapshotId || ''), payload.context.viewId);
345
+ }
346
+ // Delegate to SignalBus
347
+ emitSignal(reason) {
348
+ this.signalBus.emitSignal(this.id, reason);
349
+ }
350
+ }
351
+ //# sourceMappingURL=desktop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktop.js","sourceRoot":"","sources":["../../../src/engine/core/desktop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Core Domain
3
+ *
4
+ * 包含 Desktop 编排、信号总线及日志服务。
5
+ *
6
+ * @module @aotui/runtime/engine/core
7
+ */
8
+ export { Desktop, type InstalledApp, type LogEntry } from './desktop.js';
9
+ export { DesktopManager } from './manager.js';
10
+ export { DesktopLogger, type DesktopLoggerOptions, type LogLevel } from './desktop-logger.js';
11
+ export { SignalBus, createSignalOutputStream, type SignalListener, type SignalBusOptions, type SignalOutputStream } from './signal-bus.js';
12
+ export { SignalServiceImpl } from './signal-service.js';
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Core Domain
3
+ *
4
+ * 包含 Desktop 编排、信号总线及日志服务。
5
+ *
6
+ * @module @aotui/runtime/engine/core
7
+ */
8
+ // ============================================================================
9
+ // Desktop - 核心编排
10
+ // ============================================================================
11
+ export { Desktop } from './desktop.js';
12
+ // ============================================================================
13
+ // DesktopManager - Desktop 工厂
14
+ // ============================================================================
15
+ export { DesktopManager } from './manager.js';
16
+ // ============================================================================
17
+ // DesktopLogger - 日志服务
18
+ // ============================================================================
19
+ export { DesktopLogger } from './desktop-logger.js';
20
+ // ============================================================================
21
+ // SignalBus - 信号总线
22
+ // ============================================================================
23
+ export { SignalBus, createSignalOutputStream } from './signal-bus.js';
24
+ // ============================================================================
25
+ // SignalService - ISignalService 实现 (Option B)
26
+ // ============================================================================
27
+ export { SignalServiceImpl } from './signal-service.js';
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAC/E,OAAO,EAAE,OAAO,EAAoC,MAAM,cAAc,CAAC;AAEzE,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAC/E,OAAO,EAAE,aAAa,EAA4C,MAAM,qBAAqB,CAAC;AAE9F,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAC/E,OAAO,EACH,SAAS,EACT,wBAAwB,EAI3B,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * LLMOutputChannelService - LLM 文本输出通道
3
+ *
4
+ * [RFC-011] LLM Output Output Channel
5
+ *
6
+ * 管理 Desktop 级别的 LLM 文本发布订阅。
7
+ * 支持历史缓冲,新订阅者可获取最近 N 条消息。
8
+ *
9
+ * 职责:
10
+ * - 管理 per-Desktop 的订阅者
11
+ * - 维护历史消息缓冲 (默认 3 条)
12
+ * - 在 Desktop cleanup 时释放资源
13
+ */
14
+ import type { DesktopID } from '../../spi/core/types.js';
15
+ import type { LLMOutputEvent, LLMOutputListener, LLMOutputEventMeta } from '../../spi/core/llm-output.js';
16
+ import type { ILLMOutputChannelService } from '../../spi/runtime/llm-output-channel.interface.js';
17
+ /**
18
+ * LLM 文本通道服务实现
19
+ */
20
+ export declare class LLMOutputChannelService implements ILLMOutputChannelService {
21
+ private states;
22
+ /**
23
+ * 订阅 LLM 文本事件
24
+ *
25
+ * 订阅时立即推送历史消息。
26
+ */
27
+ subscribe(desktopId: DesktopID, listener: LLMOutputListener): () => void;
28
+ /**
29
+ * 推送 LLM 文本事件
30
+ * [RFC-020] 支持结构化 payload { reasoning?, content? }
31
+ */
32
+ push(desktopId: DesktopID, payload: {
33
+ reasoning?: string;
34
+ content?: string;
35
+ }, meta?: LLMOutputEventMeta): void;
36
+ /**
37
+ * 获取历史消息
38
+ */
39
+ getHistory(desktopId: DesktopID): LLMOutputEvent[];
40
+ /**
41
+ * 清理 Desktop 相关资源
42
+ */
43
+ cleanup(desktopId: DesktopID): void;
44
+ private getOrCreateState;
45
+ }