@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,7 @@
1
+ /**
2
+ * Runtime Configuration Types
3
+ *
4
+ * @module @aotui/runtime/spi/config
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/spi/config/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Runtime Configuration Validation
3
+ *
4
+ * @module @aotui/runtime/spi/config
5
+ */
6
+ import type { RuntimeConfig } from './types.js';
7
+ /**
8
+ * 验证运行时配置
9
+ *
10
+ * @throws {AOTUIError} CONFIG_INVALID 如果任何规则失败
11
+ */
12
+ export declare function validateRuntimeConfig(config: RuntimeConfig): void;
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Runtime Configuration Validation
3
+ *
4
+ * @module @aotui/runtime/spi/config
5
+ */
6
+ import { AOTUIError } from '../core/errors.js';
7
+ const VALIDATION_RULES = [
8
+ // Worker 规则
9
+ {
10
+ path: 'worker.timeoutMs',
11
+ validate: (c) => c.worker.timeoutMs >= 1000 && c.worker.timeoutMs <= 300_000,
12
+ message: 'worker.timeoutMs must be between 1000ms and 300000ms',
13
+ },
14
+ {
15
+ path: 'worker.pool.maxSize',
16
+ validate: (c) => c.worker.pool.maxSize >= c.worker.pool.initialSize,
17
+ message: 'worker.pool.maxSize must be >= worker.pool.initialSize',
18
+ },
19
+ {
20
+ path: 'worker.pool.initialSize',
21
+ validate: (c) => c.worker.pool.initialSize >= 0 && c.worker.pool.initialSize <= 100,
22
+ message: 'worker.pool.initialSize must be between 0 and 100',
23
+ },
24
+ {
25
+ path: 'worker.pool.idleTimeoutMs',
26
+ validate: (c) => c.worker.pool.idleTimeoutMs >= 5000 && c.worker.pool.idleTimeoutMs <= 600_000,
27
+ message: 'worker.pool.idleTimeoutMs must be between 5000ms and 600000ms',
28
+ },
29
+ // Bridge 规则
30
+ {
31
+ path: 'bridge.debounceMs',
32
+ validate: (c) => c.bridge.debounceMs >= 0 && c.bridge.debounceMs <= 5000,
33
+ message: 'bridge.debounceMs must be between 0ms and 5000ms',
34
+ },
35
+ // Lock 规则
36
+ {
37
+ path: 'lock.ttlMs',
38
+ validate: (c) => c.lock.ttlMs >= 60_000,
39
+ message: 'lock.ttlMs must be at least 60000ms (1 minute)',
40
+ },
41
+ // Snapshot 规则
42
+ {
43
+ path: 'snapshot.ttlMs',
44
+ validate: (c) => c.snapshot.ttlMs >= 60_000,
45
+ message: 'snapshot.ttlMs must be at least 60000ms (1 minute)',
46
+ },
47
+ // Transform 规则
48
+ {
49
+ path: 'transform.domThrottleMs',
50
+ validate: (c) => c.transform.domThrottleMs >= 0 && c.transform.domThrottleMs <= 1000,
51
+ message: 'transform.domThrottleMs must be between 0ms and 1000ms',
52
+ },
53
+ {
54
+ path: 'transform.maxTreeDepth',
55
+ validate: (c) => c.transform.maxTreeDepth >= 1 && c.transform.maxTreeDepth <= 100,
56
+ message: 'transform.maxTreeDepth must be between 1 and 100',
57
+ },
58
+ // Logger 规则
59
+ {
60
+ path: 'logger.maxSystemLogs',
61
+ validate: (c) => c.logger.maxSystemLogs >= 10 && c.logger.maxSystemLogs <= 10000,
62
+ message: 'logger.maxSystemLogs must be between 10 and 10000',
63
+ },
64
+ {
65
+ path: 'logger.maxAppLogs',
66
+ validate: (c) => c.logger.maxAppLogs >= 10 && c.logger.maxAppLogs <= 10000,
67
+ message: 'logger.maxAppLogs must be between 10 and 10000',
68
+ },
69
+ ];
70
+ /**
71
+ * 验证运行时配置
72
+ *
73
+ * @throws {AOTUIError} CONFIG_INVALID 如果任何规则失败
74
+ */
75
+ export function validateRuntimeConfig(config) {
76
+ const errors = [];
77
+ for (const rule of VALIDATION_RULES) {
78
+ if (!rule.validate(config)) {
79
+ errors.push(`[${rule.path}] ${rule.message}`);
80
+ }
81
+ }
82
+ if (errors.length > 0) {
83
+ // 使用简化的上下文对象以避免循环引用或巨大对象
84
+ throw new AOTUIError('CONFIG_INVALID', {
85
+ errors: errors.join('; '),
86
+ // 不要在错误消息中包含完整 config,可能会很大
87
+ });
88
+ }
89
+ }
90
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/spi/config/validate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * SPI Core Layer - Error System
3
+ *
4
+ * 统一的错误处理机制,提供类型安全的错误码和结构化错误类。
5
+ *
6
+ * @module @aotui/runtime/spi/core/errors
7
+ */
8
+ import type { OperationError } from './operations.js';
9
+ /**
10
+ * AOTUI 错误码常量
11
+ *
12
+ * 命名规范: DOMAIN_SPECIFIC_ERROR
13
+ * 例如: DESKTOP_NOT_FOUND, VIEW_DUPLICATE
14
+ */
15
+ export declare const ERROR_CODES: {
16
+ readonly DESKTOP_NOT_FOUND: "DESKTOP_NOT_FOUND";
17
+ readonly DESKTOP_DISPOSED: "DESKTOP_DISPOSED";
18
+ readonly DESKTOP_LOCKED: "DESKTOP_LOCKED";
19
+ readonly APP_NOT_FOUND: "APP_NOT_FOUND";
20
+ readonly APP_LOAD_FAILED: "APP_LOAD_FAILED";
21
+ readonly APP_INVALID_MANIFEST: "APP_INVALID_MANIFEST";
22
+ readonly APP_INVALID_EXPORT: "APP_INVALID_EXPORT";
23
+ readonly VIEW_NOT_FOUND: "VIEW_NOT_FOUND";
24
+ readonly VIEW_DUPLICATE: "VIEW_DUPLICATE";
25
+ readonly VIEW_PARENT_NOT_FOUND: "VIEW_PARENT_NOT_FOUND";
26
+ readonly VIEW_ROOT_EXISTS: "VIEW_ROOT_EXISTS";
27
+ readonly VIEW_MOUNTABLE_NOT_FOUND: "VIEW_MOUNTABLE_NOT_FOUND";
28
+ readonly VIEW_INVALID_FACTORY: "VIEW_INVALID_FACTORY";
29
+ readonly LINK_DUPLICATE: "LINK_DUPLICATE";
30
+ readonly LINK_NOT_FOUND: "LINK_NOT_FOUND";
31
+ readonly OPERATION_NOT_FOUND: "OPERATION_NOT_FOUND";
32
+ readonly OPERATION_INVALID_ARGS: "OPERATION_INVALID_ARGS";
33
+ readonly OPERATION_NO_HANDLER: "OPERATION_NO_HANDLER";
34
+ readonly OPERATION_DUPLICATE: "OPERATION_DUPLICATE";
35
+ readonly OPERATION_REQUIRES_CONTEXT: "OPERATION_REQUIRES_CONTEXT";
36
+ readonly WORKER_TIMEOUT: "WORKER_TIMEOUT";
37
+ readonly WORKER_NOT_STARTED: "WORKER_NOT_STARTED";
38
+ readonly WORKER_TERMINATED: "WORKER_TERMINATED";
39
+ readonly SNAPSHOT_NOT_FOUND: "SNAPSHOT_NOT_FOUND";
40
+ readonly SNAPSHOT_EXPIRED: "SNAPSHOT_EXPIRED";
41
+ readonly CONFIG_INVALID: "CONFIG_INVALID";
42
+ readonly CONFIG_NOT_SUPPORTED: "CONFIG_NOT_SUPPORTED";
43
+ readonly CONTEXT_NOT_FOUND: "CONTEXT_NOT_FOUND";
44
+ readonly INTERNAL_ERROR: "INTERNAL_ERROR";
45
+ readonly NOT_IMPLEMENTED: "NOT_IMPLEMENTED";
46
+ readonly EXECUTION_FAILED: "EXECUTION_FAILED";
47
+ };
48
+ /**
49
+ * 错误码类型
50
+ */
51
+ export type ErrorCode = typeof ERROR_CODES[keyof typeof ERROR_CODES];
52
+ /**
53
+ * AOTUI 框架错误基类
54
+ *
55
+ * 提供结构化错误信息,包含类型安全的错误码和上下文数据。
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // 抛出错误
60
+ * throw new AOTUIError('DESKTOP_NOT_FOUND', { desktopId: 'abc123' });
61
+ *
62
+ * // 转换为 OperationResult
63
+ * catch (e) {
64
+ * if (AOTUIError.is(e)) {
65
+ * return { success: false, error: e.toOperationError() };
66
+ * }
67
+ * }
68
+ * ```
69
+ */
70
+ export declare class AOTUIError extends Error {
71
+ /**
72
+ * 错误码 (类型安全)
73
+ */
74
+ readonly code: ErrorCode;
75
+ /**
76
+ * 错误上下文 (结构化调试信息)
77
+ */
78
+ readonly context: Record<string, unknown>;
79
+ /**
80
+ * 错误发生时间戳
81
+ */
82
+ readonly timestamp: number;
83
+ constructor(code: ErrorCode, context?: Record<string, unknown>);
84
+ /**
85
+ * 转换为 OperationError
86
+ *
87
+ * 用于在 OperationResult 中返回错误信息
88
+ */
89
+ toOperationError(): OperationError;
90
+ /**
91
+ * 类型守卫: 检查是否为 AOTUIError
92
+ */
93
+ static is(error: unknown): error is AOTUIError;
94
+ /**
95
+ * 从普通 Error 创建 AOTUIError
96
+ *
97
+ * 用于包装未知错误
98
+ */
99
+ static fromError(error: unknown, code?: ErrorCode): AOTUIError;
100
+ /**
101
+ * 格式化错误消息
102
+ */
103
+ private static formatMessage;
104
+ }
105
+ /**
106
+ * 创建 OperationError (不抛出异常)
107
+ *
108
+ * 用于构造 OperationResult.error
109
+ */
110
+ export declare function createOperationError(code: ErrorCode, context?: Record<string, unknown>): OperationError;
111
+ /**
112
+ * 失败的 OperationResult 快捷构造
113
+ */
114
+ export declare function failedResult(code: ErrorCode, context?: Record<string, unknown>): {
115
+ success: false;
116
+ error: OperationError;
117
+ };
@@ -0,0 +1,233 @@
1
+ /**
2
+ * SPI Core Layer - Error System
3
+ *
4
+ * 统一的错误处理机制,提供类型安全的错误码和结构化错误类。
5
+ *
6
+ * @module @aotui/runtime/spi/core/errors
7
+ */
8
+ // ============================================================================
9
+ // Error Code Registry (按域分组)
10
+ // ============================================================================
11
+ /**
12
+ * AOTUI 错误码常量
13
+ *
14
+ * 命名规范: DOMAIN_SPECIFIC_ERROR
15
+ * 例如: DESKTOP_NOT_FOUND, VIEW_DUPLICATE
16
+ */
17
+ export const ERROR_CODES = {
18
+ // ─────────────────────────────────────────────────────────────
19
+ // Desktop Domain
20
+ // ─────────────────────────────────────────────────────────────
21
+ DESKTOP_NOT_FOUND: 'DESKTOP_NOT_FOUND',
22
+ DESKTOP_DISPOSED: 'DESKTOP_DISPOSED',
23
+ DESKTOP_LOCKED: 'DESKTOP_LOCKED',
24
+ // ─────────────────────────────────────────────────────────────
25
+ // App Domain
26
+ // ─────────────────────────────────────────────────────────────
27
+ APP_NOT_FOUND: 'APP_NOT_FOUND',
28
+ APP_LOAD_FAILED: 'APP_LOAD_FAILED',
29
+ APP_INVALID_MANIFEST: 'APP_INVALID_MANIFEST',
30
+ APP_INVALID_EXPORT: 'APP_INVALID_EXPORT',
31
+ // ─────────────────────────────────────────────────────────────
32
+ // View Domain
33
+ // ─────────────────────────────────────────────────────────────
34
+ VIEW_NOT_FOUND: 'VIEW_NOT_FOUND',
35
+ VIEW_DUPLICATE: 'VIEW_DUPLICATE',
36
+ VIEW_PARENT_NOT_FOUND: 'VIEW_PARENT_NOT_FOUND',
37
+ VIEW_ROOT_EXISTS: 'VIEW_ROOT_EXISTS',
38
+ VIEW_MOUNTABLE_NOT_FOUND: 'VIEW_MOUNTABLE_NOT_FOUND',
39
+ VIEW_INVALID_FACTORY: 'VIEW_INVALID_FACTORY',
40
+ // ─────────────────────────────────────────────────────────────
41
+ // ViewLink Domain (RFC-006)
42
+ // ─────────────────────────────────────────────────────────────
43
+ LINK_DUPLICATE: 'LINK_DUPLICATE',
44
+ LINK_NOT_FOUND: 'LINK_NOT_FOUND',
45
+ // ─────────────────────────────────────────────────────────────
46
+ // Operation Domain
47
+ // ─────────────────────────────────────────────────────────────
48
+ OPERATION_NOT_FOUND: 'OPERATION_NOT_FOUND',
49
+ OPERATION_INVALID_ARGS: 'OPERATION_INVALID_ARGS',
50
+ OPERATION_NO_HANDLER: 'OPERATION_NO_HANDLER',
51
+ OPERATION_DUPLICATE: 'OPERATION_DUPLICATE',
52
+ OPERATION_REQUIRES_CONTEXT: 'OPERATION_REQUIRES_CONTEXT',
53
+ // ─────────────────────────────────────────────────────────────
54
+ // Worker Domain
55
+ // ─────────────────────────────────────────────────────────────
56
+ WORKER_TIMEOUT: 'WORKER_TIMEOUT',
57
+ WORKER_NOT_STARTED: 'WORKER_NOT_STARTED',
58
+ WORKER_TERMINATED: 'WORKER_TERMINATED',
59
+ // ─────────────────────────────────────────────────────────────
60
+ // Snapshot Domain
61
+ // ─────────────────────────────────────────────────────────────
62
+ SNAPSHOT_NOT_FOUND: 'SNAPSHOT_NOT_FOUND',
63
+ SNAPSHOT_EXPIRED: 'SNAPSHOT_EXPIRED',
64
+ // ─────────────────────────────────────────────────────────────
65
+ // Config Domain
66
+ // ─────────────────────────────────────────────────────────────
67
+ CONFIG_INVALID: 'CONFIG_INVALID',
68
+ CONFIG_NOT_SUPPORTED: 'CONFIG_NOT_SUPPORTED',
69
+ // ─────────────────────────────────────────────────────────────
70
+ // Context Domain (SDK)
71
+ // ─────────────────────────────────────────────────────────────
72
+ CONTEXT_NOT_FOUND: 'CONTEXT_NOT_FOUND',
73
+ // ─────────────────────────────────────────────────────────────
74
+ // Generic
75
+ // ─────────────────────────────────────────────────────────────
76
+ INTERNAL_ERROR: 'INTERNAL_ERROR',
77
+ NOT_IMPLEMENTED: 'NOT_IMPLEMENTED',
78
+ EXECUTION_FAILED: 'EXECUTION_FAILED',
79
+ };
80
+ /**
81
+ * 错误消息模板
82
+ *
83
+ * 每个错误码对应一个消息格式化函数,接收 context 参数生成人类可读的消息。
84
+ */
85
+ const ERROR_MESSAGES = {
86
+ // Desktop
87
+ DESKTOP_NOT_FOUND: (c) => `Desktop '${c.desktopId ?? 'unknown'}' not found`,
88
+ DESKTOP_DISPOSED: (c) => `Desktop '${c.desktopId ?? 'unknown'}' has been disposed`,
89
+ DESKTOP_LOCKED: (c) => `Desktop '${c.desktopId ?? 'unknown'}' is locked by '${c.ownerId ?? 'unknown'}'`,
90
+ // App
91
+ APP_NOT_FOUND: (c) => `App '${c.appId ?? 'unknown'}' not found${c.desktopId ? ` in Desktop '${c.desktopId}'` : ''}`,
92
+ APP_LOAD_FAILED: (c) => `Failed to load app '${c.appId ?? c.modulePath ?? 'unknown'}': ${c.reason ?? 'unknown error'}`,
93
+ APP_INVALID_MANIFEST: (c) => `Invalid manifest for app module '${c.modulePath ?? 'unknown'}'`,
94
+ APP_INVALID_EXPORT: (c) => `App module '${c.modulePath ?? 'unknown'}' has invalid export: expected default or app`,
95
+ // View
96
+ VIEW_NOT_FOUND: (c) => `View '${c.viewId ?? 'unknown'}' not found`,
97
+ VIEW_DUPLICATE: (c) => `View '${c.viewId ?? 'unknown'}' already exists`,
98
+ VIEW_PARENT_NOT_FOUND: (c) => `Parent view '${c.parentId ?? 'unknown'}' not found`,
99
+ VIEW_ROOT_EXISTS: (c) => `Root view already exists. Remove it first.`,
100
+ VIEW_MOUNTABLE_NOT_FOUND: (c) => `Mountable view '${c.viewId ?? 'unknown'}' not registered`,
101
+ VIEW_INVALID_FACTORY: (c) => `Invalid factory for view '${c.viewId ?? 'unknown'}'. Expected function or Factory object`,
102
+ // ViewLink (RFC-006)
103
+ LINK_DUPLICATE: (c) => `Duplicate LinkID '${c.linkId ?? 'unknown'}' in parent view '${c.parentId ?? 'unknown'}'`,
104
+ LINK_NOT_FOUND: (c) => `Link '${c.linkId ?? 'unknown'}' not found in parent view '${c.parentId ?? 'unknown'}'`,
105
+ // Operation
106
+ OPERATION_NOT_FOUND: (c) => `Operation '${c.operationName ?? 'unknown'}' not found`,
107
+ OPERATION_INVALID_ARGS: (c) => `Invalid arguments for operation '${c.operationName ?? 'unknown'}': ${c.reason ?? 'validation failed'}`,
108
+ OPERATION_NO_HANDLER: (c) => `No handler registered for operation '${c.operationName ?? 'unknown'}'`,
109
+ OPERATION_DUPLICATE: (c) => `Operation '${c.operationName ?? 'unknown'}' is already registered`,
110
+ OPERATION_REQUIRES_CONTEXT: (c) => `Operation '${c.operationName ?? 'unknown'}' requires an App context`,
111
+ // Worker
112
+ WORKER_TIMEOUT: (c) => `Worker request timed out after ${c.timeoutMs ?? 30000}ms`,
113
+ WORKER_NOT_STARTED: (c) => `Worker '${c.appId ?? 'unknown'}' not started`,
114
+ WORKER_TERMINATED: (c) => `Worker '${c.appId ?? 'unknown'}' has been terminated`,
115
+ // Snapshot
116
+ SNAPSHOT_NOT_FOUND: (c) => `Snapshot '${c.snapshotId ?? 'unknown'}' not found`,
117
+ SNAPSHOT_EXPIRED: (c) => `Snapshot '${c.snapshotId ?? 'unknown'}' has expired`,
118
+ // Config
119
+ CONFIG_INVALID: (c) => `Invalid configuration: ${c.reason ?? 'unknown'}`,
120
+ CONFIG_NOT_SUPPORTED: (c) => `Configuration not supported: ${c.feature ?? 'unknown'}`,
121
+ // Context
122
+ CONTEXT_NOT_FOUND: (c) => `${c.contextName ?? 'Context'} not found. Ensure component is wrapped in proper Provider.`,
123
+ // Generic
124
+ INTERNAL_ERROR: (c) => `Internal error: ${c.message ?? 'unknown'}`,
125
+ NOT_IMPLEMENTED: (c) => `Not implemented: ${c.feature ?? 'unknown'}`,
126
+ EXECUTION_FAILED: (c) => `Execution failed: ${c.message ?? 'unknown'}`,
127
+ };
128
+ // ============================================================================
129
+ // AOTUIError Class
130
+ // ============================================================================
131
+ /**
132
+ * AOTUI 框架错误基类
133
+ *
134
+ * 提供结构化错误信息,包含类型安全的错误码和上下文数据。
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * // 抛出错误
139
+ * throw new AOTUIError('DESKTOP_NOT_FOUND', { desktopId: 'abc123' });
140
+ *
141
+ * // 转换为 OperationResult
142
+ * catch (e) {
143
+ * if (AOTUIError.is(e)) {
144
+ * return { success: false, error: e.toOperationError() };
145
+ * }
146
+ * }
147
+ * ```
148
+ */
149
+ export class AOTUIError extends Error {
150
+ /**
151
+ * 错误码 (类型安全)
152
+ */
153
+ code;
154
+ /**
155
+ * 错误上下文 (结构化调试信息)
156
+ */
157
+ context;
158
+ /**
159
+ * 错误发生时间戳
160
+ */
161
+ timestamp;
162
+ constructor(code, context = {}) {
163
+ const message = AOTUIError.formatMessage(code, context);
164
+ super(message);
165
+ this.name = 'AOTUIError';
166
+ this.code = code;
167
+ this.context = context;
168
+ this.timestamp = Date.now();
169
+ // 保持原型链正确 (TypeScript 继承 Error 的已知问题)
170
+ Object.setPrototypeOf(this, AOTUIError.prototype);
171
+ }
172
+ /**
173
+ * 转换为 OperationError
174
+ *
175
+ * 用于在 OperationResult 中返回错误信息
176
+ */
177
+ toOperationError() {
178
+ return {
179
+ code: this.code,
180
+ message: this.message,
181
+ context: this.context,
182
+ };
183
+ }
184
+ /**
185
+ * 类型守卫: 检查是否为 AOTUIError
186
+ */
187
+ static is(error) {
188
+ return error instanceof AOTUIError;
189
+ }
190
+ /**
191
+ * 从普通 Error 创建 AOTUIError
192
+ *
193
+ * 用于包装未知错误
194
+ */
195
+ static fromError(error, code = 'INTERNAL_ERROR') {
196
+ if (AOTUIError.is(error)) {
197
+ return error;
198
+ }
199
+ const message = error instanceof Error ? error.message : String(error);
200
+ return new AOTUIError(code, { message, originalError: error });
201
+ }
202
+ /**
203
+ * 格式化错误消息
204
+ */
205
+ static formatMessage(code, context) {
206
+ const formatter = ERROR_MESSAGES[code];
207
+ if (formatter) {
208
+ return formatter(context);
209
+ }
210
+ return `[${code}]`;
211
+ }
212
+ }
213
+ // ============================================================================
214
+ // Convenience Functions
215
+ // ============================================================================
216
+ /**
217
+ * 创建 OperationError (不抛出异常)
218
+ *
219
+ * 用于构造 OperationResult.error
220
+ */
221
+ export function createOperationError(code, context = {}) {
222
+ return new AOTUIError(code, context).toOperationError();
223
+ }
224
+ /**
225
+ * 失败的 OperationResult 快捷构造
226
+ */
227
+ export function failedResult(code, context = {}) {
228
+ return {
229
+ success: false,
230
+ error: createOperationError(code, context),
231
+ };
232
+ }
233
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/spi/core/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * SPI Layer - ID Factory Functions
3
+ *
4
+ * 提供类型安全的 ID 创建函数。
5
+ *
6
+ * 使用工厂函数代替直接 `as TYPE` 断言,确保 ID 格式一致性。
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createDesktopId, createAppId } from '@aotui/runtime';
11
+ *
12
+ * const desktopId = createDesktopId(); // 'dt_abc12345'
13
+ * const customId = createDesktopId('dt_my-id'); // 'dt_my-id'
14
+ * const appId = createAppId(0); // 'app_0'
15
+ * ```
16
+ *
17
+ * @module @aotui/runtime/spi/core
18
+ */
19
+ import type { DesktopID, AppID, ViewID, SnapshotID, OperationID } from './types.js';
20
+ /**
21
+ * ID 前缀约定(内部使用)
22
+ *
23
+ * @internal
24
+ */
25
+ export declare const ID_PREFIXES: {
26
+ readonly Desktop: "dt_";
27
+ readonly App: "app_";
28
+ readonly View: "view_";
29
+ readonly Snapshot: "snap_";
30
+ readonly Operation: "op_";
31
+ };
32
+ /**
33
+ * 创建 DesktopID
34
+ *
35
+ * @param id - 可选的自定义 ID(应包含 'dt_' 前缀)
36
+ * @returns Branded DesktopID
37
+ */
38
+ export declare function createDesktopId(id?: string): DesktopID;
39
+ /**
40
+ * 创建 AppID
41
+ *
42
+ * @param indexOrId - App 索引号或现有 ID 字符串
43
+ * @returns Branded AppID
44
+ */
45
+ export declare function createAppId(indexOrId: number | string): AppID;
46
+ /**
47
+ * 创建 ViewID
48
+ *
49
+ * @param indexOrId - View 索引号或现有 ID 字符串
50
+ * @returns Branded ViewID
51
+ */
52
+ export declare function createViewId(indexOrId: number | string): ViewID;
53
+ /**
54
+ * 创建 SnapshotID
55
+ *
56
+ * @param id - 可选的现有 ID 字符串
57
+ * @returns Branded SnapshotID
58
+ */
59
+ export declare function createSnapshotId(id?: string): SnapshotID;
60
+ /**
61
+ * 创建 OperationID
62
+ *
63
+ * @param name - 操作名称
64
+ * @returns Branded OperationID
65
+ */
66
+ export declare function createOperationId(name: string): OperationID;
67
+ /**
68
+ * 检查字符串是否为有效的 DesktopID 格式
69
+ *
70
+ * @param value - 要检查的字符串
71
+ * @returns 类型谓词
72
+ */
73
+ export declare function isDesktopId(value: string): value is DesktopID;
74
+ /**
75
+ * 检查字符串是否为有效的 AppID 格式
76
+ */
77
+ export declare function isAppId(value: string): value is AppID;
78
+ /**
79
+ * 检查字符串是否为有效的 ViewID 格式
80
+ */
81
+ export declare function isViewId(value: string): value is ViewID;
82
+ /**
83
+ * 检查字符串是否为有效的 SnapshotID 格式
84
+ */
85
+ export declare function isSnapshotId(value: string): value is SnapshotID;