@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,136 @@
1
+ /**
2
+ * SPI Layer - ViewLink Types
3
+ *
4
+ * [RFC-006] ViewLink/View ID 解耦设计的核心类型定义。
5
+ *
6
+ * 三层 ID 体系:
7
+ * - ViewID: App 全局唯一,Runtime BFS 分配 (view_0, view_1, ...)
8
+ * - LinkID: 父 View 内唯一,开发者 prefix + SDK 自动索引 (CD_0, CD_1, ...)
9
+ * - UniqueID: 开发者提供的业务 ID,用于跨快照匹配 (conversation:conv_456)
10
+ *
11
+ * @module @aotui/runtime/spi/app/view-link
12
+ */
13
+ import type { ViewID } from '../core/types.js';
14
+ import type { IView } from './view.interface.js';
15
+ /**
16
+ * ViewLink 注册信息
17
+ *
18
+ * 当 ViewLink 组件渲染时,向 Runtime 注册此信息。
19
+ * 包含创建 View 所需的所有数据。
20
+ */
21
+ export interface LinkEntry {
22
+ /**
23
+ * LinkID - 父 View 内唯一
24
+ *
25
+ * 格式: `${prefix}_${index}` 或显式指定
26
+ * 示例: "ConversationDetail_0", "settings_panel"
27
+ */
28
+ linkId: string;
29
+ /**
30
+ * UniqueID - 业务唯一标识
31
+ *
32
+ * 由开发者基于业务数据提供,用于跨快照匹配 ViewLink 和 View。
33
+ * 匹配键: ViewType + UniqueID
34
+ *
35
+ * 示例: "conv_456", "order_789"
36
+ */
37
+ uniqueId: string;
38
+ /**
39
+ * View 类型名称
40
+ *
41
+ * 来自 IViewFactory.displayName
42
+ * 与 uniqueId 组合形成跨快照匹配键
43
+ */
44
+ viewType: string;
45
+ /**
46
+ * 父 View ID
47
+ */
48
+ parentViewId: ViewID;
49
+ /**
50
+ * View 工厂函数
51
+ */
52
+ factory: (viewId: string, props?: Record<string, unknown>) => IView;
53
+ /**
54
+ * 传递给 View 的 Props (对 Agent 隐藏)
55
+ */
56
+ props?: Record<string, unknown>;
57
+ /**
58
+ * 显示标签 (用于 ViewTree 渲染)
59
+ */
60
+ label?: string;
61
+ }
62
+ /**
63
+ * View 绑定信息
64
+ *
65
+ * 当 View 通过 ViewLink 被 mount 时,记录绑定关系。
66
+ * 用于幂等 mount 和跨快照匹配。
67
+ */
68
+ export interface ViewBinding {
69
+ /**
70
+ * 分配的 ViewID
71
+ */
72
+ viewId: ViewID;
73
+ /**
74
+ * 绑定的 UniqueID
75
+ */
76
+ uniqueId: string;
77
+ /**
78
+ * View 类型名称
79
+ */
80
+ viewType: string;
81
+ /**
82
+ * 父 View ID
83
+ */
84
+ parentViewId: ViewID;
85
+ }
86
+ /**
87
+ * 匹配键:ViewType + UniqueID
88
+ *
89
+ * 用于在 Map 中查找绑定关系
90
+ */
91
+ export type BindingKey = `${string}:${string}`;
92
+ /**
93
+ * 创建匹配键
94
+ */
95
+ export declare function createBindingKey(viewType: string, uniqueId: string): BindingKey;
96
+ /**
97
+ * Mount 操作参数 (V2)
98
+ *
99
+ * [RFC-006] 新的 mount 操作需要指定父 View 和 LinkID
100
+ */
101
+ export interface MountViewArgsV2 {
102
+ /**
103
+ * App ID
104
+ */
105
+ app_id: string;
106
+ /**
107
+ * 父 View ID (ViewLink 所在的 View)
108
+ */
109
+ parent_view: string;
110
+ /**
111
+ * Link ID (父 View 内唯一)
112
+ */
113
+ link_id: string;
114
+ }
115
+ /**
116
+ * Mount 操作结果
117
+ */
118
+ export interface MountViewResult {
119
+ /**
120
+ * 挂载的 View ID
121
+ */
122
+ viewId: ViewID;
123
+ /**
124
+ * 执行的动作
125
+ * - MOUNTED: 新创建并挂载
126
+ * - ALREADY_MOUNTED: 已存在,幂等返回
127
+ */
128
+ action: 'MOUNTED' | 'ALREADY_MOUNTED';
129
+ }
130
+ /**
131
+ * Dismount 操作参数 (不变)
132
+ */
133
+ export interface DismountViewArgs {
134
+ app_id: string;
135
+ view_id: string;
136
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * SPI Layer - ViewLink Types
3
+ *
4
+ * [RFC-006] ViewLink/View ID 解耦设计的核心类型定义。
5
+ *
6
+ * 三层 ID 体系:
7
+ * - ViewID: App 全局唯一,Runtime BFS 分配 (view_0, view_1, ...)
8
+ * - LinkID: 父 View 内唯一,开发者 prefix + SDK 自动索引 (CD_0, CD_1, ...)
9
+ * - UniqueID: 开发者提供的业务 ID,用于跨快照匹配 (conversation:conv_456)
10
+ *
11
+ * @module @aotui/runtime/spi/app/view-link
12
+ */
13
+ /**
14
+ * 创建匹配键
15
+ */
16
+ export function createBindingKey(viewType, uniqueId) {
17
+ return `${viewType}:${uniqueId}`;
18
+ }
19
+ //# sourceMappingURL=view-link.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-link.types.js","sourceRoot":"","sources":["../../../src/spi/app/view-link.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAkGH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;IAC/D,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAgB,CAAC;AACnD,CAAC"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * SPI Layer - IViewTree Interface
3
+ *
4
+ * Defines the contract for View tree management.
5
+ * SDK should depend on this interface, not the Engine implementation.
6
+ *
7
+ * [B1 FIX] Extracted from engine/view/types.ts to SPI layer
8
+ * for proper dependency inversion.
9
+ *
10
+ * [RFC-011] Extended with ViewLink and Mountable methods.
11
+ */
12
+ import type { ViewID } from '../core/types.js';
13
+ import type { IView, IViewContext } from './view.interface.js';
14
+ import type { LinkEntry } from './view-link.types.js';
15
+ /**
16
+ * View 树节点
17
+ *
18
+ * 封装 View 及其在树中的位置信息
19
+ */
20
+ export interface ViewNode {
21
+ /** View 实例 */
22
+ readonly view: IView;
23
+ /** 父节点 ID (根节点为 null) */
24
+ readonly parentId: ViewID | null;
25
+ /** 子节点 ID 列表 */
26
+ readonly childIds: readonly ViewID[];
27
+ /** 是否已 mount */
28
+ mounted: boolean;
29
+ }
30
+ /**
31
+ * [RFC-006] Mountable View Entry
32
+ *
33
+ * 存储尚未实例化的可挂载视图信息。
34
+ * 当 ViewLink 注册时,只缓存工厂和属性;
35
+ * 当 Agent 调用 mount_view 时,才实际创建 View 实例。
36
+ */
37
+ export interface MountableViewEntry {
38
+ /** View 工厂函数 */
39
+ factory: (viewId: string, props?: Record<string, unknown>) => IView;
40
+ /** 初始化属性 */
41
+ props?: Record<string, unknown>;
42
+ /** 父视图 ID */
43
+ parentId: ViewID;
44
+ /** 显示标签 */
45
+ label?: string;
46
+ }
47
+ /**
48
+ * ViewContext 工厂函数类型
49
+ *
50
+ * 由 App 提供,用于为每个 View 创建运行上下文。
51
+ */
52
+ export type ViewContextFactory = (viewId: ViewID) => IViewContext;
53
+ /**
54
+ * View 树接口
55
+ *
56
+ * 维护 App 的完整 View 层级结构。
57
+ *
58
+ * [P1 FIX] SDK 必须实现此接口来管理其内部 View 状态。
59
+ * Runtime 不提供此接口的实现,而是通过 DOM Snapshot 获取 View 结构。
60
+ *
61
+ * SSOT (Single Source of Truth):
62
+ * - SDK: 只有 ViewTree 实体,管理 View 实例生命周期。
63
+ * - Runtime: 通过 DOM 投影观察 View 结构。
64
+ *
65
+ * View 树结构示例:
66
+ * ```
67
+ * - [Navigation](view:view_0, mounted)
68
+ * - [Conversations](view:view_1, mounted)
69
+ * - [Johnny Chat](view:view_3, mounted)
70
+ * - [Group Chat](view:view_4)
71
+ * - [Contacts](view:view_2)
72
+ * ```
73
+ */
74
+ export interface IViewTree {
75
+ /** 根节点 ID */
76
+ readonly rootId: ViewID | null;
77
+ /**
78
+ * 获取节点
79
+ */
80
+ getNode(viewId: ViewID): ViewNode | undefined;
81
+ /**
82
+ * 获取 View
83
+ */
84
+ getView(viewId: ViewID): IView | undefined;
85
+ /**
86
+ * 添加 View 到树
87
+ *
88
+ * @param view - View 实例
89
+ * @param parentId - 父节点 ID (根节点传 null)
90
+ */
91
+ addView(view: IView, parentId: ViewID | null): void;
92
+ /**
93
+ * 移除 View (及其子树)
94
+ */
95
+ removeView(viewId: ViewID): void;
96
+ /**
97
+ * Mount View
98
+ *
99
+ * 调用 view.onMount() 并标记为 mounted
100
+ */
101
+ mountView(viewId: ViewID): Promise<void>;
102
+ /**
103
+ * Dismount View
104
+ *
105
+ * 先 dismount 所有子 View,再调用 view.onDismount()
106
+ */
107
+ dismountView(viewId: ViewID): Promise<void>;
108
+ /**
109
+ * 获取所有已 mount 的 View
110
+ */
111
+ getMountedViews(): IView[];
112
+ /**
113
+ * 获取 View 的完整路径 (从根到此节点)
114
+ */
115
+ getPath(viewId: ViewID): ViewID[];
116
+ /**
117
+ * 获取子 View
118
+ */
119
+ getChildren(viewId: ViewID): IView[];
120
+ /**
121
+ * 渲染 View Tree 状态
122
+ *
123
+ * 输出 TUI 格式:
124
+ * ```
125
+ * ## Application View Tree
126
+ * - [Navigation](view:view_0, mounted)
127
+ * - [Conversations](view:view_1, mounted)
128
+ * - [Contacts](view:view_2)
129
+ * ```
130
+ */
131
+ renderTree(): string;
132
+ /**
133
+ * 渲染所有已 mount 的 View 内容
134
+ */
135
+ renderMountedViews(): string;
136
+ /**
137
+ * 注册可挂载视图 (V1 Legacy)
138
+ *
139
+ * @param viewId - 预生成的 View ID
140
+ * @param parentId - 父视图 ID
141
+ * @param factory - View 工厂函数
142
+ * @param props - 初始化属性
143
+ * @param label - 显示标签
144
+ */
145
+ registerMountableView(viewId: ViewID, parentId: ViewID, factory: (viewId: string, props?: Record<string, unknown>) => IView, props?: Record<string, unknown>, label?: string): void;
146
+ /**
147
+ * 注销可挂载视图
148
+ */
149
+ unregisterMountableView(viewId: ViewID): void;
150
+ /**
151
+ * 获取可挂载视图条目
152
+ */
153
+ getMountableEntry(viewId: ViewID): MountableViewEntry | undefined;
154
+ /**
155
+ * 挂载已注册的可挂载视图
156
+ */
157
+ mountMountableView(viewId: ViewID): Promise<void>;
158
+ /**
159
+ * 检查是否为已注册但未实例化的可挂载视图
160
+ */
161
+ isMountableView(viewId: ViewID): boolean;
162
+ /**
163
+ * 获取父视图下所有未挂载的子视图 ID
164
+ */
165
+ getMountableChildren(parentId: ViewID): ViewID[];
166
+ /**
167
+ * 分配唯一的 LinkID
168
+ *
169
+ * @param parentId - 父视图 ID
170
+ * @param prefix - ID 前缀 (通常是 viewType)
171
+ * @returns 生成的 LinkID (如 "Chat_0")
172
+ */
173
+ allocateLinkId(parentId: ViewID, prefix: string): string;
174
+ /**
175
+ * 注册 ViewLink
176
+ *
177
+ * @param parentId - 父视图 ID
178
+ * @param entry - Link 条目数据
179
+ */
180
+ registerLink(parentId: ViewID, entry: LinkEntry): void;
181
+ /**
182
+ * 注销 ViewLink
183
+ *
184
+ * @param parentId - 父视图 ID
185
+ * @param linkId - Link ID
186
+ */
187
+ unregisterLink(parentId: ViewID, linkId: string): void;
188
+ /**
189
+ * 获取绑定的 ViewID
190
+ *
191
+ * 通过 ViewType + UniqueID 组合查找已挂载的 View。
192
+ * 用于跨 Snapshot 的视图匹配。
193
+ *
194
+ * @param viewType - 视图类型
195
+ * @param uniqueId - 唯一标识符
196
+ * @returns 已绑定的 ViewID,未找到返回 undefined
197
+ */
198
+ getBoundViewId(viewType: string, uniqueId: string): ViewID | undefined;
199
+ /**
200
+ * 通过 ViewLink 挂载视图
201
+ *
202
+ * 当 Agent 执行 mount(parent_view, link_id) 时调用。
203
+ *
204
+ * @param parentId - 父视图 ID
205
+ * @param linkId - Link ID
206
+ * @returns 挂载后的 ViewID
207
+ */
208
+ mountByLink(parentId: ViewID, linkId: string): Promise<ViewID>;
209
+ /**
210
+ * 获取父视图下所有 Link 条目
211
+ *
212
+ * @param parentId - 父视图 ID
213
+ * @returns Link 条目列表
214
+ */
215
+ getLinksInParent(parentId: ViewID): LinkEntry[];
216
+ /**
217
+ * 重置 Link 计数器
218
+ *
219
+ * 在每次渲染周期开始时调用。
220
+ *
221
+ * @param parentId - 父视图 ID
222
+ */
223
+ resetLinkCounters(parentId: ViewID): void;
224
+ /**
225
+ * 清除父视图下所有 Links
226
+ *
227
+ * 当父视图被卸载时调用。
228
+ *
229
+ * @param parentId - 父视图 ID
230
+ */
231
+ clearLinksForParent(parentId: ViewID): void;
232
+ /**
233
+ * 注册组件模式View (from SDK's View component)
234
+ *
235
+ * Component-mode Views:
236
+ * - Are registered directly without parent (flat structure)
237
+ * - Manage their own mounted state via React lifecycle
238
+ * - Don't participate in traditional ViewTree hierarchy
239
+ *
240
+ * This method unifies View storage, making ViewTree the single source of truth
241
+ * for both traditional-mode and component-mode Views.
242
+ *
243
+ * @param view - IView instance created by createInlineView()
244
+ */
245
+ registerComponentView(view: IView): void;
246
+ /**
247
+ * 注销组件模式View
248
+ *
249
+ * Called when SDK View component unmounts (via useLayoutEffect cleanup)
250
+ *
251
+ * @param viewId - View ID to unregister
252
+ */
253
+ unregisterComponentView(viewId: ViewID): void;
254
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SPI Layer - IViewTree Interface
3
+ *
4
+ * Defines the contract for View tree management.
5
+ * SDK should depend on this interface, not the Engine implementation.
6
+ *
7
+ * [B1 FIX] Extracted from engine/view/types.ts to SPI layer
8
+ * for proper dependency inversion.
9
+ *
10
+ * [RFC-011] Extended with ViewLink and Mountable methods.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=view-tree.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-tree.interface.js","sourceRoot":"","sources":["../../../src/spi/app/view-tree.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * SPI Layer - IView Interface
3
+ *
4
+ * [H1 FIX] 从 Engine 层提取的 View 接口定义。
5
+ *
6
+ * View 是 App 内部的 UI 组件单元。每个 View:
7
+ * - 有自己的数据状态
8
+ * - 有自己的操作集合 (operations)
9
+ * - 可以被 mount/dismount
10
+ * - 处理针对自己的操作
11
+ *
12
+ * @module @aotui/runtime/spi
13
+ */
14
+ import type { OperationID, ViewID } from '../core/types.js';
15
+ import type { OperationResult } from '../core/operations.js';
16
+ import type { IViewContextCore } from './view-context-core.interface.js';
17
+ /**
18
+ * Level 2: View 运行上下文 (Full Contract)
19
+ *
20
+ * SDK 内部使用的完整上下文,包含生命周期管理能力。
21
+ * 继承自 Core 契约。
22
+ */
23
+ export interface IViewContext extends IViewContextCore {
24
+ /**
25
+ * [Option D] 标记 View 为 dirty
26
+ *
27
+ * Runtime 会在收到 DOM_UPDATE 后检查 dirty 标记,才实际发送 UpdateSignal。
28
+ */
29
+ markDirty(): void;
30
+ /**
31
+ * 请求 mount 子 View
32
+ */
33
+ mountChildView(viewId: ViewID): Promise<void>;
34
+ /**
35
+ * 请求 dismount 子 View
36
+ */
37
+ dismountChildView(viewId: ViewID): Promise<void>;
38
+ /**
39
+ * Register a dynamic child view
40
+ *
41
+ * Called by `<ChildView>` component to register a dynamically created view.
42
+ * The system assigns a sequential ViewID (view_0, view_1, ...).
43
+ *
44
+ * @param view - The IView instance to register
45
+ * @returns The assigned ViewID
46
+ */
47
+ registerChildView(view: IView): ViewID;
48
+ /**
49
+ * Unregister a dynamic child view
50
+ *
51
+ * Called when `<ChildView>` unmounts. Dismounts and removes the view.
52
+ *
53
+ * @param viewId - The ViewID to unregister
54
+ */
55
+ unregisterChildView(viewId: ViewID): void;
56
+ }
57
+ import type { IViewContextMountable } from './view-context-ext.interface.js';
58
+ /**
59
+ * Level 2+3: Full ViewContext (Composite Type)
60
+ *
61
+ * SDK 内部使用的完整上下文,包含 Core + Full + Mountable 所有能力。
62
+ * 用于 AppRuntime 创建的实际 context 对象。
63
+ */
64
+ export type IViewContextFull = IViewContext & IViewContextMountable;
65
+ /**
66
+ * AOTUI View 接口
67
+ *
68
+ * View 是 App 内部的 UI 组件单元。每个 View:
69
+ * - 有自己的数据状态
70
+ * - 有自己的操作集合 (operations)
71
+ * - 可以被 mount/dismount
72
+ * - 处理针对自己的操作
73
+ */
74
+ export interface IView {
75
+ /** View 唯一标识符 (developer-specified in component mode) */
76
+ readonly id: ViewID;
77
+ /** View 显示名称 (开发者定义的语义名称) */
78
+ readonly name?: string;
79
+ /**
80
+ * View 的显示名称,用于调试、日志和开发工具。
81
+ * @optional
82
+ */
83
+ readonly displayName?: string;
84
+ /**
85
+ * View 类型 (用于Tool聚合)
86
+ *
87
+ * Multiple views can share the same type.
88
+ * Used for grouping tools by view type in Snapshot.
89
+ *
90
+ * @optional
91
+ * @example "FileDetail", "UserProfile", "Workspace"
92
+ */
93
+ readonly type?: string;
94
+ /**
95
+ * 由 Runtime 调用设置 ID (可选,框架内部使用)
96
+ */
97
+ setId?(newId: ViewID): void;
98
+ /**
99
+ * View 被 mount 时调用
100
+ *
101
+ * @param context - View 运行上下文
102
+ */
103
+ onMount(context: IViewContext): Promise<void>;
104
+ /**
105
+ * View 被 dismount 时调用
106
+ */
107
+ onDismount(): Promise<void>;
108
+ /**
109
+ * 处理针对此 View 的操作
110
+ *
111
+ * @param operation - 操作名称 (如 'send_message')
112
+ * @param args - 操作参数
113
+ * @returns 操作执行结果
114
+ */
115
+ onOperation(operation: OperationID, args: Record<string, unknown>): Promise<OperationResult>;
116
+ /**
117
+ * 渲染 View 内容
118
+ *
119
+ * 返回 TUI Markdown 格式的内容
120
+ */
121
+ render(): string;
122
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * SPI Layer - IView Interface
3
+ *
4
+ * [H1 FIX] 从 Engine 层提取的 View 接口定义。
5
+ *
6
+ * View 是 App 内部的 UI 组件单元。每个 View:
7
+ * - 有自己的数据状态
8
+ * - 有自己的操作集合 (operations)
9
+ * - 可以被 mount/dismount
10
+ * - 处理针对自己的操作
11
+ *
12
+ * @module @aotui/runtime/spi
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=view.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.interface.js","sourceRoot":"","sources":["../../../src/spi/app/view.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * IBridge - Agent 与 Runtime 的 I/O 边界
3
+ *
4
+ * 这是 Agent(或 AgentDriver)与 AOTUI Runtime 交互的唯一接口。
5
+ *
6
+ * 设计原则:
7
+ * - 完全解耦:不暴露 Kernel 内部类型(如 SnapshotID)
8
+ * - 可替换:支持 Mock、HTTP、WebSocket 等多种实现
9
+ * - 简单:只提供 Agent 真正需要的能力
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // 获取快照
14
+ * const snapshot = await bridge.getSnapshot();
15
+ * console.log(snapshot.markup);
16
+ *
17
+ * // 执行操作
18
+ * const results = await bridge.execute(
19
+ * [{ name: 'send_message', args: { content: 'Hello' }, context: {} }],
20
+ * snapshot.id
21
+ * );
22
+ *
23
+ * // 订阅更新
24
+ * const unsubscribe = bridge.subscribe(() => {
25
+ * console.log('Desktop updated');
26
+ * });
27
+ * ```
28
+ *
29
+ * @module @aotui/runtime/spi/bridge
30
+ */
31
+ import type { Operation, OperationResult } from '../core/operations.js';
32
+ import type { SnapshotID } from '../core/types.js';
33
+ import type { LLMOutputEventMeta } from '../core/llm-output.js';
34
+ /**
35
+ * Agent 可见的快照
36
+ *
37
+ * 与内部的 CachedSnapshot 不同,这是面向外部消费者的简化视图。
38
+ * 不暴露 Runtime 内部类型,只提供 Agent 需要的信息。
39
+ */
40
+ export interface BridgeSnapshot {
41
+ /** 快照唯一标识(用于 execute 时绑定操作) */
42
+ readonly id: string;
43
+ /** TUI Markdown 内容 */
44
+ readonly markup: string;
45
+ /** 快照生成时间戳 (ms) */
46
+ readonly timestamp: number;
47
+ }
48
+ /**
49
+ * IBridge - Agent 与 Runtime 的 I/O 边界
50
+ *
51
+ * 职责:
52
+ * 1. 获取/释放 Snapshot(Agent 视图)
53
+ * 2. 执行 Operations
54
+ * 3. 订阅更新信号
55
+ *
56
+ * 实现者:
57
+ * - Bridge(标准实现,依赖 IKernel)
58
+ * - MockBridge(测试用)
59
+ * - HttpBridge(远程调用,未来扩展)
60
+ */
61
+ export interface IBridge {
62
+ /**
63
+ * 获取当前 Desktop 的最新快照
64
+ *
65
+ * 每次调用都会生成新的快照。调用者应在操作完成后
66
+ * 调用 releaseSnapshot() 释放资源(可选)。
67
+ *
68
+ * @returns 最新的 Desktop 快照
69
+ */
70
+ getSnapshot(): Promise<BridgeSnapshot>;
71
+ /**
72
+ * 释放快照资源
73
+ *
74
+ * 可选方法。如果不调用,快照将在 TTL 后自动过期。
75
+ * 显式释放可以更快回收内存。
76
+ *
77
+ * @param snapshotId - 要释放的快照 ID
78
+ */
79
+ releaseSnapshot?(snapshotId: string): void;
80
+ /**
81
+ * 执行一批操作
82
+ *
83
+ * 所有操作绑定到同一个 snapshotId,保证时间安全。
84
+ * 当 Agent 执行操作时调用此方法。
85
+ *
86
+ * @param operations - 要执行的操作列表
87
+ * @param snapshotId - 基于哪个快照执行
88
+ */
89
+ executeOperations(operations: Operation[], snapshotId: SnapshotID): Promise<OperationResult[]>;
90
+ /**
91
+ * 推送 LLM 文本到 Runtime (RFC-011)
92
+ *
93
+ * [RFC-020] 支持结构化格式,包含 reasoning 和 content
94
+ * 用于将 LLM 的思考过程或回复文本实时推送到 Desktop。
95
+ * 可选方法 - 老版本 Bridge 实现不受影响。
96
+ *
97
+ * @param payload - 结构化内容 { reasoning?: 思考过程, content?: 最终回复 }
98
+ * @param type - 事件类型 (complete=完整消息, chunk=流式片段预留)
99
+ * @param meta - 可选元数据 (model, role)
100
+ * @since RFC-011, RFC-020
101
+ */
102
+ pushLLMOutput?(payload: {
103
+ reasoning?: string;
104
+ content?: string;
105
+ }, type: 'complete', meta?: LLMOutputEventMeta): void;
106
+ /**
107
+ * 订阅 Desktop 状态变化
108
+ *
109
+ * 当 Desktop 中的任何 App 触发 UpdateSignal 时,
110
+ * 注册的 listener 会被调用。
111
+ *
112
+ * 典型用法:收到更新后重新获取快照。
113
+ *
114
+ * @param listener - 状态变化回调(无参数,调用者应自行获取新快照)
115
+ * @returns 取消订阅函数
116
+ */
117
+ subscribe(listener: () => void): () => void;
118
+ }