@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,122 @@
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
+ // ============================================================================
15
+ // Constants
16
+ // ============================================================================
17
+ /** 历史缓冲大小 */
18
+ const HISTORY_SIZE = 3;
19
+ // ============================================================================
20
+ // Service Implementation
21
+ // ============================================================================
22
+ /**
23
+ * LLM 文本通道服务实现
24
+ */
25
+ export class LLMOutputChannelService {
26
+ states = new Map();
27
+ // ─────────────────────────────────────────────────────────────
28
+ // 订阅管理
29
+ // ─────────────────────────────────────────────────────────────
30
+ /**
31
+ * 订阅 LLM 文本事件
32
+ *
33
+ * 订阅时立即推送历史消息。
34
+ */
35
+ subscribe(desktopId, listener) {
36
+ const state = this.getOrCreateState(desktopId);
37
+ state.listeners.add(listener);
38
+ // 立即推送历史消息到新订阅者
39
+ for (const event of state.history) {
40
+ try {
41
+ listener(event);
42
+ }
43
+ catch (e) {
44
+ if (process.env.NODE_ENV !== 'production') {
45
+ console.error('[LLMOutputChannel] Error in history replay:', e);
46
+ }
47
+ }
48
+ }
49
+ // 返回取消订阅函数
50
+ return () => {
51
+ state.listeners.delete(listener);
52
+ };
53
+ }
54
+ // ─────────────────────────────────────────────────────────────
55
+ // 发布
56
+ // ─────────────────────────────────────────────────────────────
57
+ /**
58
+ * 推送 LLM 文本事件
59
+ * [RFC-020] 支持结构化 payload { reasoning?, content? }
60
+ */
61
+ push(desktopId, payload, meta) {
62
+ const state = this.getOrCreateState(desktopId);
63
+ // 构建事件
64
+ const event = {
65
+ desktopId,
66
+ timestamp: Date.now(),
67
+ type: 'complete',
68
+ content: payload.content,
69
+ reasoning: payload.reasoning,
70
+ meta
71
+ };
72
+ // 维护历史缓冲 (FIFO)
73
+ state.history.push(event);
74
+ if (state.history.length > HISTORY_SIZE) {
75
+ state.history.shift();
76
+ }
77
+ // 通知所有订阅者
78
+ for (const listener of state.listeners) {
79
+ try {
80
+ listener(event);
81
+ }
82
+ catch (e) {
83
+ if (process.env.NODE_ENV !== 'production') {
84
+ console.error('[LLMOutputChannel] Error in listener:', e);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ // ─────────────────────────────────────────────────────────────
90
+ // 历史查询
91
+ // ─────────────────────────────────────────────────────────────
92
+ /**
93
+ * 获取历史消息
94
+ */
95
+ getHistory(desktopId) {
96
+ return this.states.get(desktopId)?.history ?? [];
97
+ }
98
+ // ─────────────────────────────────────────────────────────────
99
+ // 生命周期
100
+ // ─────────────────────────────────────────────────────────────
101
+ /**
102
+ * 清理 Desktop 相关资源
103
+ */
104
+ cleanup(desktopId) {
105
+ this.states.delete(desktopId);
106
+ }
107
+ // ─────────────────────────────────────────────────────────────
108
+ // 内部方法
109
+ // ─────────────────────────────────────────────────────────────
110
+ getOrCreateState(desktopId) {
111
+ let state = this.states.get(desktopId);
112
+ if (!state) {
113
+ state = {
114
+ listeners: new Set(),
115
+ history: []
116
+ };
117
+ this.states.set(desktopId, state);
118
+ }
119
+ return state;
120
+ }
121
+ }
122
+ //# sourceMappingURL=llm-output-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-output-channel.js","sourceRoot":"","sources":["../../../src/engine/core/llm-output-channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Engine Layer - Desktop Manager Implementation
3
+ *
4
+ * 管理 Desktop 实例的生命周期和并发控制。
5
+ *
6
+ * @module @aotui/runtime/engine/desktop-manager
7
+ */
8
+ import type { IDesktopManager, LockInfo, DesktopID, AppID, AppState, DesktopStatus, IDesktop, IRuntimeContext } from '../../spi/index.js';
9
+ /**
10
+ * Desktop 管理器实现
11
+ *
12
+ * 封装 Desktop 的创建、存储、锁管理和生命周期控制。
13
+ * Kernel 通过 IDesktopManager 接口与之交互,实现依赖反转。
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const manager = new DesktopManager();
18
+ * const desktopId = await manager.create();
19
+ * manager.acquireLock(desktopId, 'agent_1');
20
+ * await manager.installDynamicWorkerApp(desktopId, myApp);
21
+ * manager.releaseLock(desktopId, 'agent_1');
22
+ * ```
23
+ */
24
+ import { RuntimeConfig } from '../../spi/config/index.js';
25
+ export declare class DesktopManager implements IDesktopManager {
26
+ private desktops;
27
+ private lockService;
28
+ private config;
29
+ constructor(config?: RuntimeConfig);
30
+ create(desktopId?: DesktopID, context?: IRuntimeContext): Promise<DesktopID>;
31
+ destroy(desktopId: DesktopID): Promise<void>;
32
+ has(desktopId: DesktopID): boolean;
33
+ get(desktopId: DesktopID): IDesktop | undefined;
34
+ acquireLock(desktopId: DesktopID, ownerId: string): void;
35
+ releaseLock(desktopId: DesktopID, ownerId: string): void;
36
+ verifyLock(desktopId: DesktopID, ownerId: string): boolean;
37
+ refreshLock(desktopId: DesktopID, ownerId: string): void;
38
+ getLockInfo(desktopId: DesktopID): LockInfo | undefined;
39
+ /**
40
+ * [Worker-Only] 安装 App
41
+ */
42
+ installDynamicWorkerApp(desktopId: DesktopID, appModulePath: string, options?: {
43
+ workerScriptPath?: string;
44
+ appId?: string;
45
+ name?: string;
46
+ config?: import('../../spi/app/app-config.interface.js').AppLaunchConfig;
47
+ }): Promise<AppID>;
48
+ getAppStates(desktopId: DesktopID): AppState[];
49
+ getDesktopInfo(desktopId: DesktopID): {
50
+ status: DesktopStatus;
51
+ createdAt: number;
52
+ } | undefined;
53
+ suspend(desktopId: DesktopID): Promise<void>;
54
+ resume(desktopId: DesktopID): Promise<void>;
55
+ /**
56
+ * 获取 Desktop 或抛出 E_NOT_FOUND 错误
57
+ */
58
+ private getDesktopOrThrow;
59
+ }
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Engine Layer - Desktop Manager Implementation
3
+ *
4
+ * 管理 Desktop 实例的生命周期和并发控制。
5
+ *
6
+ * @module @aotui/runtime/engine/desktop-manager
7
+ */
8
+ import { AOTUIError } from '../../spi/core/errors.js';
9
+ import { Desktop } from './desktop.js';
10
+ import { InMemoryLockService } from './services/lock.service.js';
11
+ // ============================================================================
12
+ // Desktop Manager Implementation
13
+ // ============================================================================
14
+ /**
15
+ * Desktop 管理器实现
16
+ *
17
+ * 封装 Desktop 的创建、存储、锁管理和生命周期控制。
18
+ * Kernel 通过 IDesktopManager 接口与之交互,实现依赖反转。
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const manager = new DesktopManager();
23
+ * const desktopId = await manager.create();
24
+ * manager.acquireLock(desktopId, 'agent_1');
25
+ * await manager.installDynamicWorkerApp(desktopId, myApp);
26
+ * manager.releaseLock(desktopId, 'agent_1');
27
+ * ```
28
+ */
29
+ import { RUNTIME_DEFAULTS } from '../../spi/config/index.js';
30
+ export class DesktopManager {
31
+ desktops = new Map();
32
+ lockService;
33
+ config;
34
+ constructor(config) {
35
+ this.config = config ?? RUNTIME_DEFAULTS;
36
+ // [RFC-004] 内部服务组合: 锁管理委托给 InMemoryLockService
37
+ this.lockService = new InMemoryLockService((id) => this.desktops.has(id), { ttlMs: this.config.lock.ttlMs });
38
+ }
39
+ // ─────────────────────────────────────────────────────────────
40
+ // IDesktopRepository 实现
41
+ // ─────────────────────────────────────────────────────────────
42
+ async create(desktopId, context) {
43
+ const desktop = new Desktop(desktopId, { runtimeConfig: this.config, context });
44
+ this.desktops.set(desktop.id, desktop);
45
+ return desktop.id;
46
+ }
47
+ async destroy(desktopId) {
48
+ const desktop = this.desktops.get(desktopId);
49
+ if (desktop) {
50
+ await desktop.dispose();
51
+ this.desktops.delete(desktopId);
52
+ // [RFC-004] 清理关联的锁
53
+ this.lockService.clearLock(desktopId);
54
+ }
55
+ }
56
+ has(desktopId) {
57
+ return this.desktops.has(desktopId);
58
+ }
59
+ get(desktopId) {
60
+ return this.desktops.get(desktopId);
61
+ }
62
+ // ─────────────────────────────────────────────────────────────
63
+ // IDesktopLockService 实现 (Delegate)
64
+ // ─────────────────────────────────────────────────────────────
65
+ acquireLock(desktopId, ownerId) {
66
+ this.lockService.acquireLock(desktopId, ownerId);
67
+ }
68
+ releaseLock(desktopId, ownerId) {
69
+ this.lockService.releaseLock(desktopId, ownerId);
70
+ }
71
+ verifyLock(desktopId, ownerId) {
72
+ return this.lockService.verifyLock(desktopId, ownerId);
73
+ }
74
+ refreshLock(desktopId, ownerId) {
75
+ this.lockService.refreshLock(desktopId, ownerId);
76
+ }
77
+ getLockInfo(desktopId) {
78
+ return this.lockService.getLockInfo(desktopId);
79
+ }
80
+ // ─────────────────────────────────────────────────────────────
81
+ // IAppInstaller 实现
82
+ // ─────────────────────────────────────────────────────────────
83
+ /**
84
+ * [Worker-Only] 安装 App
85
+ */
86
+ async installDynamicWorkerApp(desktopId, appModulePath, options) {
87
+ const desktop = this.getDesktopOrThrow(desktopId);
88
+ return desktop.installDynamicWorkerApp(appModulePath, options);
89
+ }
90
+ // ─────────────────────────────────────────────────────────────
91
+ // IDesktopStateAccessor 实现
92
+ // ─────────────────────────────────────────────────────────────
93
+ getAppStates(desktopId) {
94
+ const desktop = this.desktops.get(desktopId);
95
+ return desktop?.getAppStates() ?? [];
96
+ }
97
+ getDesktopInfo(desktopId) {
98
+ const desktop = this.desktops.get(desktopId);
99
+ if (!desktop)
100
+ return undefined;
101
+ return {
102
+ status: desktop.status,
103
+ createdAt: desktop.createdAt
104
+ };
105
+ }
106
+ // ─────────────────────────────────────────────────────────────
107
+ // IDesktopLifecycleController 实现
108
+ // ─────────────────────────────────────────────────────────────
109
+ async suspend(desktopId) {
110
+ const desktop = this.getDesktopOrThrow(desktopId);
111
+ await desktop.suspend();
112
+ }
113
+ async resume(desktopId) {
114
+ const desktop = this.getDesktopOrThrow(desktopId);
115
+ await desktop.resume();
116
+ }
117
+ // ─────────────────────────────────────────────────────────────
118
+ // Internal Helpers
119
+ // ─────────────────────────────────────────────────────────────
120
+ /**
121
+ * 获取 Desktop 或抛出 E_NOT_FOUND 错误
122
+ */
123
+ getDesktopOrThrow(desktopId) {
124
+ const desktop = this.desktops.get(desktopId);
125
+ if (!desktop) {
126
+ throw new AOTUIError('DESKTOP_NOT_FOUND', { desktopId });
127
+ }
128
+ return desktop;
129
+ }
130
+ }
131
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/engine/core/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Operation Log Buffer
3
+ *
4
+ * Ring buffer implementation for storing operation execution logs.
5
+ * Maintains separate views for system-level and per-app logs.
6
+ *
7
+ * [RFC-008] Operation Execution Optimization
8
+ *
9
+ * @module @aotui/runtime/engine/core
10
+ */
11
+ import type { IOperationLogBuffer, OperationLogEntry, AppID } from '../../spi/index.js';
12
+ /**
13
+ * OperationLogBuffer
14
+ *
15
+ * Implements a ring buffer for operation logs with filtering capabilities.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const buffer = new OperationLogBuffer(50);
20
+ * buffer.push(entry);
21
+ *
22
+ * // Get recent system logs
23
+ * const systemLogs = buffer.getSystemLogs(5);
24
+ *
25
+ * // Get recent app logs
26
+ * const appLogs = buffer.getAppLogs('app_chat' as AppID, 3);
27
+ * ```
28
+ */
29
+ export declare class OperationLogBuffer implements IOperationLogBuffer {
30
+ private logs;
31
+ private readonly maxSize;
32
+ private logCounter;
33
+ /**
34
+ * Create a new OperationLogBuffer
35
+ *
36
+ * @param maxSize - Maximum number of logs to retain (default: 50)
37
+ */
38
+ constructor(maxSize?: number);
39
+ /**
40
+ * Generate unique log ID
41
+ */
42
+ private generateLogId;
43
+ /**
44
+ * Push a new log entry to the buffer
45
+ *
46
+ * Automatically assigns an ID if not provided.
47
+ * Implements ring buffer behavior - oldest entries are removed when full.
48
+ */
49
+ push(entry: OperationLogEntry): void;
50
+ /**
51
+ * Get recent system-scope logs
52
+ *
53
+ * @param count - Maximum number of logs to return
54
+ * @returns Array of log entries, most recent last
55
+ */
56
+ getSystemLogs(count: number): OperationLogEntry[];
57
+ /**
58
+ * Get recent logs for a specific app
59
+ *
60
+ * @param appId - The app ID to filter by
61
+ * @param count - Maximum number of logs to return
62
+ * @returns Array of log entries, most recent last
63
+ */
64
+ getAppLogs(appId: AppID, count: number): OperationLogEntry[];
65
+ /**
66
+ * Get all logs (for debugging)
67
+ *
68
+ * @returns Copy of all log entries
69
+ */
70
+ getAllLogs(): OperationLogEntry[];
71
+ /**
72
+ * Get the total number of logs currently stored
73
+ */
74
+ getSize(): number;
75
+ /**
76
+ * Clear all logs
77
+ */
78
+ clear(): void;
79
+ }
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Operation Log Buffer
3
+ *
4
+ * Ring buffer implementation for storing operation execution logs.
5
+ * Maintains separate views for system-level and per-app logs.
6
+ *
7
+ * [RFC-008] Operation Execution Optimization
8
+ *
9
+ * @module @aotui/runtime/engine/core
10
+ */
11
+ /**
12
+ * OperationLogBuffer
13
+ *
14
+ * Implements a ring buffer for operation logs with filtering capabilities.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const buffer = new OperationLogBuffer(50);
19
+ * buffer.push(entry);
20
+ *
21
+ * // Get recent system logs
22
+ * const systemLogs = buffer.getSystemLogs(5);
23
+ *
24
+ * // Get recent app logs
25
+ * const appLogs = buffer.getAppLogs('app_chat' as AppID, 3);
26
+ * ```
27
+ */
28
+ export class OperationLogBuffer {
29
+ logs = [];
30
+ maxSize;
31
+ logCounter = 0;
32
+ /**
33
+ * Create a new OperationLogBuffer
34
+ *
35
+ * @param maxSize - Maximum number of logs to retain (default: 50)
36
+ */
37
+ constructor(maxSize = 50) {
38
+ this.maxSize = maxSize;
39
+ }
40
+ /**
41
+ * Generate unique log ID
42
+ */
43
+ generateLogId() {
44
+ return `log_${++this.logCounter}`;
45
+ }
46
+ /**
47
+ * Push a new log entry to the buffer
48
+ *
49
+ * Automatically assigns an ID if not provided.
50
+ * Implements ring buffer behavior - oldest entries are removed when full.
51
+ */
52
+ push(entry) {
53
+ // Ensure entry has an ID
54
+ const entryWithId = {
55
+ ...entry,
56
+ id: entry.id || this.generateLogId()
57
+ };
58
+ this.logs.push(entryWithId);
59
+ // Ring buffer: remove oldest when exceeding maxSize
60
+ if (this.logs.length > this.maxSize) {
61
+ this.logs.shift();
62
+ }
63
+ }
64
+ /**
65
+ * Get recent system-scope logs
66
+ *
67
+ * @param count - Maximum number of logs to return
68
+ * @returns Array of log entries, most recent last
69
+ */
70
+ getSystemLogs(count) {
71
+ return this.logs
72
+ .filter(e => e.scope === 'system')
73
+ .slice(-count);
74
+ }
75
+ /**
76
+ * Get recent logs for a specific app
77
+ *
78
+ * @param appId - The app ID to filter by
79
+ * @param count - Maximum number of logs to return
80
+ * @returns Array of log entries, most recent last
81
+ */
82
+ getAppLogs(appId, count) {
83
+ return this.logs
84
+ .filter(e => e.scope === 'app' && e.appId === appId)
85
+ .slice(-count);
86
+ }
87
+ /**
88
+ * Get all logs (for debugging)
89
+ *
90
+ * @returns Copy of all log entries
91
+ */
92
+ getAllLogs() {
93
+ return [...this.logs];
94
+ }
95
+ /**
96
+ * Get the total number of logs currently stored
97
+ */
98
+ getSize() {
99
+ return this.logs.length;
100
+ }
101
+ /**
102
+ * Clear all logs
103
+ */
104
+ clear() {
105
+ this.logs = [];
106
+ }
107
+ }
108
+ //# sourceMappingURL=operation-log-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-log-buffer.js","sourceRoot":"","sources":["../../../src/engine/core/operation-log-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,kBAAkB;IACnB,IAAI,GAAwB,EAAE,CAAC;IACtB,OAAO,CAAS;IACzB,UAAU,GAAG,CAAC,CAAC;IAEvB;;;;OAIG;IACH,YAAY,UAAkB,EAAE;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,aAAa;QACjB,OAAO,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,KAAwB;QACzB,yBAAyB;QACzB,MAAM,WAAW,GAAsB;YACnC,GAAG,KAAK;YACR,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;SACvC,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5B,oDAAoD;QACpD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;aACjC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,KAAY,EAAE,KAAa;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;aACnD,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,UAAU;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;CACJ"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Operation Log Formatter
3
+ *
4
+ * Generates semantic, human-readable log messages from operation entries.
5
+ * Follows the WHO/WHEN/WHERE/WHAT pattern for clarity.
6
+ *
7
+ * [RFC-008] Operation Execution Optimization
8
+ *
9
+ * @module @aotui/runtime/engine/core
10
+ */
11
+ import type { OperationLogEntry, OperationLogParams } from '../../spi/index.js';
12
+ /**
13
+ * Generate a unique log entry ID
14
+ */
15
+ export declare function generateLogId(): string;
16
+ /**
17
+ * Format an operation log entry into a semantic, human-readable string
18
+ *
19
+ * Format: `HH:MM:SS ✅/❌ [Actor] [Location] [Action] (Duration)`
20
+ *
21
+ * @param entry - The log entry to format
22
+ * @returns Formatted log string
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const formatted = formatOperationLog(entry);
27
+ * // "15:32:45 ✅ Gemini in System-Chat/ChatView sent message "Hello..." (12ms)"
28
+ * ```
29
+ */
30
+ export declare function formatOperationLog(entry: OperationLogEntry): string;
31
+ /**
32
+ * Build a complete OperationLogEntry from execution parameters
33
+ *
34
+ * @param params - Operation execution parameters
35
+ * @returns Complete log entry with semantic description
36
+ */
37
+ export declare function buildOperationLogEntry(params: OperationLogParams): OperationLogEntry;
38
+ /**
39
+ * Format operation logs as Markdown list for snapshot inclusion
40
+ *
41
+ * @param logs - Array of log entries
42
+ * @returns Markdown formatted string
43
+ */
44
+ export declare function formatLogsAsMarkdown(logs: OperationLogEntry[]): string;