@aigne/aos 0.2.0-beta

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 (533) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/LICENSE.md +26 -0
  3. package/dist/agent-dsl.cjs +116 -0
  4. package/dist/agent-dsl.d.cts +31 -0
  5. package/dist/agent-dsl.d.cts.map +1 -0
  6. package/dist/agent-dsl.d.mts +31 -0
  7. package/dist/agent-dsl.d.mts.map +1 -0
  8. package/dist/agent-dsl.mjs +115 -0
  9. package/dist/agent-dsl.mjs.map +1 -0
  10. package/dist/arc-compat.cjs +125 -0
  11. package/dist/arc-compat.d.cts +17 -0
  12. package/dist/arc-compat.d.cts.map +1 -0
  13. package/dist/arc-compat.d.mts +17 -0
  14. package/dist/arc-compat.d.mts.map +1 -0
  15. package/dist/arc-compat.mjs +123 -0
  16. package/dist/arc-compat.mjs.map +1 -0
  17. package/dist/auto-surface/compiler.cjs +36 -0
  18. package/dist/auto-surface/compiler.d.cts +7 -0
  19. package/dist/auto-surface/compiler.d.cts.map +1 -0
  20. package/dist/auto-surface/compiler.d.mts +7 -0
  21. package/dist/auto-surface/compiler.d.mts.map +1 -0
  22. package/dist/auto-surface/compiler.mjs +37 -0
  23. package/dist/auto-surface/compiler.mjs.map +1 -0
  24. package/dist/auto-surface/definition-dsl.cjs +333 -0
  25. package/dist/auto-surface/definition-dsl.d.cts +41 -0
  26. package/dist/auto-surface/definition-dsl.d.cts.map +1 -0
  27. package/dist/auto-surface/definition-dsl.d.mts +41 -0
  28. package/dist/auto-surface/definition-dsl.d.mts.map +1 -0
  29. package/dist/auto-surface/definition-dsl.mjs +332 -0
  30. package/dist/auto-surface/definition-dsl.mjs.map +1 -0
  31. package/dist/auto-surface/fragments.cjs +177 -0
  32. package/dist/auto-surface/fragments.d.cts +23 -0
  33. package/dist/auto-surface/fragments.d.cts.map +1 -0
  34. package/dist/auto-surface/fragments.d.mts +23 -0
  35. package/dist/auto-surface/fragments.d.mts.map +1 -0
  36. package/dist/auto-surface/fragments.mjs +175 -0
  37. package/dist/auto-surface/fragments.mjs.map +1 -0
  38. package/dist/auto-surface/index.d.mts +9 -0
  39. package/dist/auto-surface/layering.cjs +43 -0
  40. package/dist/auto-surface/layering.d.cts +7 -0
  41. package/dist/auto-surface/layering.d.cts.map +1 -0
  42. package/dist/auto-surface/layering.d.mts +7 -0
  43. package/dist/auto-surface/layering.d.mts.map +1 -0
  44. package/dist/auto-surface/layering.mjs +43 -0
  45. package/dist/auto-surface/layering.mjs.map +1 -0
  46. package/dist/auto-surface/projection.cjs +11 -0
  47. package/dist/auto-surface/projection.d.cts +11 -0
  48. package/dist/auto-surface/projection.d.cts.map +1 -0
  49. package/dist/auto-surface/projection.d.mts +11 -0
  50. package/dist/auto-surface/projection.d.mts.map +1 -0
  51. package/dist/auto-surface/projection.mjs +12 -0
  52. package/dist/auto-surface/projection.mjs.map +1 -0
  53. package/dist/auto-surface/projectors/settings-shell.cjs +114 -0
  54. package/dist/auto-surface/projectors/settings-shell.d.cts +10 -0
  55. package/dist/auto-surface/projectors/settings-shell.d.cts.map +1 -0
  56. package/dist/auto-surface/projectors/settings-shell.d.mts +10 -0
  57. package/dist/auto-surface/projectors/settings-shell.d.mts.map +1 -0
  58. package/dist/auto-surface/projectors/settings-shell.mjs +114 -0
  59. package/dist/auto-surface/projectors/settings-shell.mjs.map +1 -0
  60. package/dist/auto-surface/scenario.cjs +38 -0
  61. package/dist/auto-surface/scenario.d.cts +31 -0
  62. package/dist/auto-surface/scenario.d.cts.map +1 -0
  63. package/dist/auto-surface/scenario.d.mts +31 -0
  64. package/dist/auto-surface/scenario.d.mts.map +1 -0
  65. package/dist/auto-surface/scenario.mjs +37 -0
  66. package/dist/auto-surface/scenario.mjs.map +1 -0
  67. package/dist/auto-surface/types.cjs +9 -0
  68. package/dist/auto-surface/types.d.cts +153 -0
  69. package/dist/auto-surface/types.d.cts.map +1 -0
  70. package/dist/auto-surface/types.d.mts +153 -0
  71. package/dist/auto-surface/types.d.mts.map +1 -0
  72. package/dist/auto-surface/types.mjs +9 -0
  73. package/dist/auto-surface/types.mjs.map +1 -0
  74. package/dist/auto-surface/value-dsl.cjs +80 -0
  75. package/dist/auto-surface/value-dsl.d.cts +24 -0
  76. package/dist/auto-surface/value-dsl.d.cts.map +1 -0
  77. package/dist/auto-surface/value-dsl.d.mts +24 -0
  78. package/dist/auto-surface/value-dsl.d.mts.map +1 -0
  79. package/dist/auto-surface/value-dsl.mjs +79 -0
  80. package/dist/auto-surface/value-dsl.mjs.map +1 -0
  81. package/dist/blocklet/activation.cjs +94 -0
  82. package/dist/blocklet/activation.d.cts +30 -0
  83. package/dist/blocklet/activation.d.cts.map +1 -0
  84. package/dist/blocklet/activation.d.mts +30 -0
  85. package/dist/blocklet/activation.d.mts.map +1 -0
  86. package/dist/blocklet/activation.mjs +94 -0
  87. package/dist/blocklet/activation.mjs.map +1 -0
  88. package/dist/blocklet/did-space-registry.cjs +282 -0
  89. package/dist/blocklet/did-space-registry.d.cts +82 -0
  90. package/dist/blocklet/did-space-registry.d.cts.map +1 -0
  91. package/dist/blocklet/did-space-registry.d.mts +82 -0
  92. package/dist/blocklet/did-space-registry.d.mts.map +1 -0
  93. package/dist/blocklet/did-space-registry.mjs +281 -0
  94. package/dist/blocklet/did-space-registry.mjs.map +1 -0
  95. package/dist/blocklet/handlers.cjs +66 -0
  96. package/dist/blocklet/handlers.d.cts +16 -0
  97. package/dist/blocklet/handlers.d.cts.map +1 -0
  98. package/dist/blocklet/handlers.d.mts +16 -0
  99. package/dist/blocklet/handlers.d.mts.map +1 -0
  100. package/dist/blocklet/handlers.mjs +65 -0
  101. package/dist/blocklet/handlers.mjs.map +1 -0
  102. package/dist/blocklet/index.d.mts +7 -0
  103. package/dist/blocklet/manifest.d.cts +2 -0
  104. package/dist/blocklet/manifest.d.mts +2 -0
  105. package/dist/blocklet/manifest.mjs +3 -0
  106. package/dist/blocklet/registry.cjs +447 -0
  107. package/dist/blocklet/registry.d.cts +197 -0
  108. package/dist/blocklet/registry.d.cts.map +1 -0
  109. package/dist/blocklet/registry.d.mts +197 -0
  110. package/dist/blocklet/registry.d.mts.map +1 -0
  111. package/dist/blocklet/registry.mjs +441 -0
  112. package/dist/blocklet/registry.mjs.map +1 -0
  113. package/dist/blocklet/static-render.cjs +183 -0
  114. package/dist/blocklet/static-render.d.cts +55 -0
  115. package/dist/blocklet/static-render.d.cts.map +1 -0
  116. package/dist/blocklet/static-render.d.mts +55 -0
  117. package/dist/blocklet/static-render.d.mts.map +1 -0
  118. package/dist/blocklet/static-render.mjs +181 -0
  119. package/dist/blocklet/static-render.mjs.map +1 -0
  120. package/dist/blocklet/types.d.cts +70 -0
  121. package/dist/blocklet/types.d.cts.map +1 -0
  122. package/dist/blocklet/types.d.mts +70 -0
  123. package/dist/blocklet/types.d.mts.map +1 -0
  124. package/dist/devices/chain.cjs +127 -0
  125. package/dist/devices/chain.d.cts +48 -0
  126. package/dist/devices/chain.d.cts.map +1 -0
  127. package/dist/devices/chain.d.mts +48 -0
  128. package/dist/devices/chain.d.mts.map +1 -0
  129. package/dist/devices/chain.mjs +125 -0
  130. package/dist/devices/chain.mjs.map +1 -0
  131. package/dist/dsl-shared.cjs +290 -0
  132. package/dist/dsl-shared.d.cts +54 -0
  133. package/dist/dsl-shared.d.cts.map +1 -0
  134. package/dist/dsl-shared.d.mts +54 -0
  135. package/dist/dsl-shared.d.mts.map +1 -0
  136. package/dist/dsl-shared.mjs +287 -0
  137. package/dist/dsl-shared.mjs.map +1 -0
  138. package/dist/http/afs-mcp.cjs +85 -0
  139. package/dist/http/afs-mcp.d.cts +14 -0
  140. package/dist/http/afs-mcp.d.cts.map +1 -0
  141. package/dist/http/afs-mcp.d.mts +14 -0
  142. package/dist/http/afs-mcp.d.mts.map +1 -0
  143. package/dist/http/afs-mcp.mjs +86 -0
  144. package/dist/http/afs-mcp.mjs.map +1 -0
  145. package/dist/http/afs-raw.cjs +264 -0
  146. package/dist/http/afs-raw.d.cts +31 -0
  147. package/dist/http/afs-raw.d.cts.map +1 -0
  148. package/dist/http/afs-raw.d.mts +31 -0
  149. package/dist/http/afs-raw.d.mts.map +1 -0
  150. package/dist/http/afs-raw.mjs +264 -0
  151. package/dist/http/afs-raw.mjs.map +1 -0
  152. package/dist/http/afs-rest.cjs +30 -0
  153. package/dist/http/afs-rest.d.cts +21 -0
  154. package/dist/http/afs-rest.d.cts.map +1 -0
  155. package/dist/http/afs-rest.d.mts +21 -0
  156. package/dist/http/afs-rest.d.mts.map +1 -0
  157. package/dist/http/afs-rest.mjs +31 -0
  158. package/dist/http/afs-rest.mjs.map +1 -0
  159. package/dist/http/afs-rpc-wire.cjs +271 -0
  160. package/dist/http/afs-rpc-wire.d.cts +195 -0
  161. package/dist/http/afs-rpc-wire.d.cts.map +1 -0
  162. package/dist/http/afs-rpc-wire.d.mts +195 -0
  163. package/dist/http/afs-rpc-wire.d.mts.map +1 -0
  164. package/dist/http/afs-rpc-wire.mjs +262 -0
  165. package/dist/http/afs-rpc-wire.mjs.map +1 -0
  166. package/dist/http/afs-rpc.cjs +729 -0
  167. package/dist/http/afs-rpc.d.cts +103 -0
  168. package/dist/http/afs-rpc.d.cts.map +1 -0
  169. package/dist/http/afs-rpc.d.mts +103 -0
  170. package/dist/http/afs-rpc.d.mts.map +1 -0
  171. package/dist/http/afs-rpc.mjs +729 -0
  172. package/dist/http/afs-rpc.mjs.map +1 -0
  173. package/dist/http/afs-upload.cjs +116 -0
  174. package/dist/http/afs-upload.d.cts +40 -0
  175. package/dist/http/afs-upload.d.cts.map +1 -0
  176. package/dist/http/afs-upload.d.mts +40 -0
  177. package/dist/http/afs-upload.d.mts.map +1 -0
  178. package/dist/http/afs-upload.mjs +116 -0
  179. package/dist/http/afs-upload.mjs.map +1 -0
  180. package/dist/http/aup-client.cjs +60 -0
  181. package/dist/http/aup-client.d.cts +22 -0
  182. package/dist/http/aup-client.d.cts.map +1 -0
  183. package/dist/http/aup-client.d.mts +22 -0
  184. package/dist/http/aup-client.d.mts.map +1 -0
  185. package/dist/http/aup-client.mjs +59 -0
  186. package/dist/http/aup-client.mjs.map +1 -0
  187. package/dist/http/aup-event.cjs +100 -0
  188. package/dist/http/aup-event.d.cts +38 -0
  189. package/dist/http/aup-event.d.cts.map +1 -0
  190. package/dist/http/aup-event.d.mts +38 -0
  191. package/dist/http/aup-event.d.mts.map +1 -0
  192. package/dist/http/aup-event.mjs +101 -0
  193. package/dist/http/aup-event.mjs.map +1 -0
  194. package/dist/http/auth-context.cjs +66 -0
  195. package/dist/http/auth-context.d.cts +64 -0
  196. package/dist/http/auth-context.d.cts.map +1 -0
  197. package/dist/http/auth-context.d.mts +64 -0
  198. package/dist/http/auth-context.d.mts.map +1 -0
  199. package/dist/http/auth-context.mjs +66 -0
  200. package/dist/http/auth-context.mjs.map +1 -0
  201. package/dist/http/csrf.cjs +50 -0
  202. package/dist/http/csrf.d.cts +8 -0
  203. package/dist/http/csrf.d.cts.map +1 -0
  204. package/dist/http/csrf.d.mts +8 -0
  205. package/dist/http/csrf.d.mts.map +1 -0
  206. package/dist/http/csrf.mjs +49 -0
  207. package/dist/http/csrf.mjs.map +1 -0
  208. package/dist/http/handlers.cjs +106 -0
  209. package/dist/http/handlers.d.cts +39 -0
  210. package/dist/http/handlers.d.cts.map +1 -0
  211. package/dist/http/handlers.d.mts +39 -0
  212. package/dist/http/handlers.d.mts.map +1 -0
  213. package/dist/http/handlers.mjs +104 -0
  214. package/dist/http/handlers.mjs.map +1 -0
  215. package/dist/http/index.d.mts +1 -0
  216. package/dist/http/ingest-facade.cjs +315 -0
  217. package/dist/http/ingest-facade.mjs +314 -0
  218. package/dist/http/ingest-facade.mjs.map +1 -0
  219. package/dist/http/raw-url.cjs +136 -0
  220. package/dist/http/raw-url.d.cts +54 -0
  221. package/dist/http/raw-url.d.cts.map +1 -0
  222. package/dist/http/raw-url.d.mts +54 -0
  223. package/dist/http/raw-url.d.mts.map +1 -0
  224. package/dist/http/raw-url.mjs +136 -0
  225. package/dist/http/raw-url.mjs.map +1 -0
  226. package/dist/http/request-context.cjs +178 -0
  227. package/dist/http/request-context.d.cts +76 -0
  228. package/dist/http/request-context.d.cts.map +1 -0
  229. package/dist/http/request-context.d.mts +76 -0
  230. package/dist/http/request-context.d.mts.map +1 -0
  231. package/dist/http/request-context.mjs +179 -0
  232. package/dist/http/request-context.mjs.map +1 -0
  233. package/dist/index.cjs +197 -0
  234. package/dist/index.d.cts +63 -0
  235. package/dist/index.d.mts +68 -0
  236. package/dist/index.mjs +61 -0
  237. package/dist/mcp/index.cjs +9 -0
  238. package/dist/mcp/index.d.cts +5 -0
  239. package/dist/mcp/index.d.mts +5 -0
  240. package/dist/mcp/index.mjs +6 -0
  241. package/dist/mcp/prompts.cjs +17 -0
  242. package/dist/mcp/prompts.d.cts +8 -0
  243. package/dist/mcp/prompts.d.cts.map +1 -0
  244. package/dist/mcp/prompts.d.mts +8 -0
  245. package/dist/mcp/prompts.d.mts.map +1 -0
  246. package/dist/mcp/prompts.mjs +17 -0
  247. package/dist/mcp/prompts.mjs.map +1 -0
  248. package/dist/mcp/resources.cjs +22 -0
  249. package/dist/mcp/resources.d.cts +8 -0
  250. package/dist/mcp/resources.d.cts.map +1 -0
  251. package/dist/mcp/resources.d.mts +8 -0
  252. package/dist/mcp/resources.d.mts.map +1 -0
  253. package/dist/mcp/resources.mjs +22 -0
  254. package/dist/mcp/resources.mjs.map +1 -0
  255. package/dist/mcp/server.cjs +51 -0
  256. package/dist/mcp/server.d.cts +20 -0
  257. package/dist/mcp/server.d.cts.map +1 -0
  258. package/dist/mcp/server.d.mts +20 -0
  259. package/dist/mcp/server.d.mts.map +1 -0
  260. package/dist/mcp/server.mjs +52 -0
  261. package/dist/mcp/server.mjs.map +1 -0
  262. package/dist/mcp/tools.cjs +218 -0
  263. package/dist/mcp/tools.d.cts +8 -0
  264. package/dist/mcp/tools.d.cts.map +1 -0
  265. package/dist/mcp/tools.d.mts +8 -0
  266. package/dist/mcp/tools.d.mts.map +1 -0
  267. package/dist/mcp/tools.mjs +219 -0
  268. package/dist/mcp/tools.mjs.map +1 -0
  269. package/dist/mcp/utils.cjs +75 -0
  270. package/dist/mcp/utils.mjs +69 -0
  271. package/dist/mcp/utils.mjs.map +1 -0
  272. package/dist/mount/index.cjs +4 -0
  273. package/dist/mount/index.d.cts +3 -0
  274. package/dist/mount/index.d.mts +3 -0
  275. package/dist/mount/index.mjs +3 -0
  276. package/dist/mount/materializer.cjs +167 -0
  277. package/dist/mount/materializer.d.cts +97 -0
  278. package/dist/mount/materializer.d.cts.map +1 -0
  279. package/dist/mount/materializer.d.mts +97 -0
  280. package/dist/mount/materializer.d.mts.map +1 -0
  281. package/dist/mount/materializer.mjs +167 -0
  282. package/dist/mount/materializer.mjs.map +1 -0
  283. package/dist/mount/types.d.cts +90 -0
  284. package/dist/mount/types.d.cts.map +1 -0
  285. package/dist/mount/types.d.mts +90 -0
  286. package/dist/mount/types.d.mts.map +1 -0
  287. package/dist/mount-config.cjs +61 -0
  288. package/dist/mount-config.d.cts +19 -0
  289. package/dist/mount-config.d.cts.map +1 -0
  290. package/dist/mount-config.d.mts +19 -0
  291. package/dist/mount-config.d.mts.map +1 -0
  292. package/dist/mount-config.mjs +61 -0
  293. package/dist/mount-config.mjs.map +1 -0
  294. package/dist/projectors/aup-projector.cjs +190 -0
  295. package/dist/projectors/aup-projector.d.cts +59 -0
  296. package/dist/projectors/aup-projector.d.cts.map +1 -0
  297. package/dist/projectors/aup-projector.d.mts +59 -0
  298. package/dist/projectors/aup-projector.d.mts.map +1 -0
  299. package/dist/projectors/aup-projector.mjs +188 -0
  300. package/dist/projectors/aup-projector.mjs.map +1 -0
  301. package/dist/projectors/index.cjs +6 -0
  302. package/dist/projectors/index.d.cts +2 -0
  303. package/dist/projectors/index.d.mts +2 -0
  304. package/dist/projectors/index.mjs +3 -0
  305. package/dist/scaffold/afs.cjs +195 -0
  306. package/dist/scaffold/afs.d.cts +16 -0
  307. package/dist/scaffold/afs.d.cts.map +1 -0
  308. package/dist/scaffold/afs.d.mts +16 -0
  309. package/dist/scaffold/afs.d.mts.map +1 -0
  310. package/dist/scaffold/afs.mjs +195 -0
  311. package/dist/scaffold/afs.mjs.map +1 -0
  312. package/dist/scaffold/composition.cjs +92 -0
  313. package/dist/scaffold/composition.d.cts +10 -0
  314. package/dist/scaffold/composition.d.cts.map +1 -0
  315. package/dist/scaffold/composition.d.mts +10 -0
  316. package/dist/scaffold/composition.d.mts.map +1 -0
  317. package/dist/scaffold/composition.mjs +92 -0
  318. package/dist/scaffold/composition.mjs.map +1 -0
  319. package/dist/scaffold/dsl-error.cjs +21 -0
  320. package/dist/scaffold/dsl-error.d.cts +11 -0
  321. package/dist/scaffold/dsl-error.d.cts.map +1 -0
  322. package/dist/scaffold/dsl-error.d.mts +11 -0
  323. package/dist/scaffold/dsl-error.d.mts.map +1 -0
  324. package/dist/scaffold/dsl-error.mjs +20 -0
  325. package/dist/scaffold/dsl-error.mjs.map +1 -0
  326. package/dist/scaffold/index.d.mts +12 -0
  327. package/dist/scaffold/manifest-dsl.cjs +188 -0
  328. package/dist/scaffold/manifest-dsl.d.cts +8 -0
  329. package/dist/scaffold/manifest-dsl.d.cts.map +1 -0
  330. package/dist/scaffold/manifest-dsl.d.mts +8 -0
  331. package/dist/scaffold/manifest-dsl.d.mts.map +1 -0
  332. package/dist/scaffold/manifest-dsl.mjs +188 -0
  333. package/dist/scaffold/manifest-dsl.mjs.map +1 -0
  334. package/dist/scaffold/module-dsl.cjs +284 -0
  335. package/dist/scaffold/module-dsl.d.cts +8 -0
  336. package/dist/scaffold/module-dsl.d.cts.map +1 -0
  337. package/dist/scaffold/module-dsl.d.mts +8 -0
  338. package/dist/scaffold/module-dsl.d.mts.map +1 -0
  339. package/dist/scaffold/module-dsl.mjs +284 -0
  340. package/dist/scaffold/module-dsl.mjs.map +1 -0
  341. package/dist/scaffold/resolver.cjs +156 -0
  342. package/dist/scaffold/resolver.d.cts +7 -0
  343. package/dist/scaffold/resolver.d.cts.map +1 -0
  344. package/dist/scaffold/resolver.d.mts +7 -0
  345. package/dist/scaffold/resolver.d.mts.map +1 -0
  346. package/dist/scaffold/resolver.mjs +156 -0
  347. package/dist/scaffold/resolver.mjs.map +1 -0
  348. package/dist/scaffold/runtime.cjs +24 -0
  349. package/dist/scaffold/runtime.d.cts +19 -0
  350. package/dist/scaffold/runtime.d.cts.map +1 -0
  351. package/dist/scaffold/runtime.d.mts +19 -0
  352. package/dist/scaffold/runtime.d.mts.map +1 -0
  353. package/dist/scaffold/runtime.mjs +25 -0
  354. package/dist/scaffold/runtime.mjs.map +1 -0
  355. package/dist/scaffold/shell-dsl.cjs +279 -0
  356. package/dist/scaffold/shell-dsl.d.cts +8 -0
  357. package/dist/scaffold/shell-dsl.d.cts.map +1 -0
  358. package/dist/scaffold/shell-dsl.d.mts +8 -0
  359. package/dist/scaffold/shell-dsl.d.mts.map +1 -0
  360. package/dist/scaffold/shell-dsl.mjs +279 -0
  361. package/dist/scaffold/shell-dsl.mjs.map +1 -0
  362. package/dist/scaffold/surface-dsl.cjs +182 -0
  363. package/dist/scaffold/surface-dsl.d.cts +8 -0
  364. package/dist/scaffold/surface-dsl.d.cts.map +1 -0
  365. package/dist/scaffold/surface-dsl.d.mts +8 -0
  366. package/dist/scaffold/surface-dsl.d.mts.map +1 -0
  367. package/dist/scaffold/surface-dsl.mjs +182 -0
  368. package/dist/scaffold/surface-dsl.mjs.map +1 -0
  369. package/dist/scaffold/surfaces.cjs +84 -0
  370. package/dist/scaffold/surfaces.d.cts +23 -0
  371. package/dist/scaffold/surfaces.d.cts.map +1 -0
  372. package/dist/scaffold/surfaces.d.mts +24 -0
  373. package/dist/scaffold/surfaces.d.mts.map +1 -0
  374. package/dist/scaffold/surfaces.mjs +84 -0
  375. package/dist/scaffold/surfaces.mjs.map +1 -0
  376. package/dist/scaffold/types.d.cts +264 -0
  377. package/dist/scaffold/types.d.cts.map +1 -0
  378. package/dist/scaffold/types.d.mts +265 -0
  379. package/dist/scaffold/types.d.mts.map +1 -0
  380. package/dist/scaffold/workspace-dsl.cjs +339 -0
  381. package/dist/scaffold/workspace-dsl.d.cts +49 -0
  382. package/dist/scaffold/workspace-dsl.d.cts.map +1 -0
  383. package/dist/scaffold/workspace-dsl.d.mts +49 -0
  384. package/dist/scaffold/workspace-dsl.d.mts.map +1 -0
  385. package/dist/scaffold/workspace-dsl.mjs +337 -0
  386. package/dist/scaffold/workspace-dsl.mjs.map +1 -0
  387. package/dist/scope/index.d.mts +3 -0
  388. package/dist/scope/read-blocklet-scope.cjs +29 -0
  389. package/dist/scope/read-blocklet-scope.d.cts +8 -0
  390. package/dist/scope/read-blocklet-scope.d.cts.map +1 -0
  391. package/dist/scope/read-blocklet-scope.d.mts +8 -0
  392. package/dist/scope/read-blocklet-scope.d.mts.map +1 -0
  393. package/dist/scope/read-blocklet-scope.mjs +30 -0
  394. package/dist/scope/read-blocklet-scope.mjs.map +1 -0
  395. package/dist/scope/resolve-scoped-afs.cjs +87 -0
  396. package/dist/scope/resolve-scoped-afs.d.cts +7 -0
  397. package/dist/scope/resolve-scoped-afs.d.cts.map +1 -0
  398. package/dist/scope/resolve-scoped-afs.d.mts +7 -0
  399. package/dist/scope/resolve-scoped-afs.d.mts.map +1 -0
  400. package/dist/scope/resolve-scoped-afs.mjs +88 -0
  401. package/dist/scope/resolve-scoped-afs.mjs.map +1 -0
  402. package/dist/scope/types.d.cts +25 -0
  403. package/dist/scope/types.d.cts.map +1 -0
  404. package/dist/scope/types.d.mts +25 -0
  405. package/dist/scope/types.d.mts.map +1 -0
  406. package/dist/session/backends.cjs +90 -0
  407. package/dist/session/backends.d.cts +35 -0
  408. package/dist/session/backends.d.cts.map +1 -0
  409. package/dist/session/backends.d.mts +35 -0
  410. package/dist/session/backends.d.mts.map +1 -0
  411. package/dist/session/backends.mjs +89 -0
  412. package/dist/session/backends.mjs.map +1 -0
  413. package/dist/session/replication-resolver.cjs +323 -0
  414. package/dist/session/replication-resolver.d.cts +71 -0
  415. package/dist/session/replication-resolver.d.cts.map +1 -0
  416. package/dist/session/replication-resolver.d.mts +71 -0
  417. package/dist/session/replication-resolver.d.mts.map +1 -0
  418. package/dist/session/replication-resolver.mjs +323 -0
  419. package/dist/session/replication-resolver.mjs.map +1 -0
  420. package/dist/session/role-level.cjs +36 -0
  421. package/dist/session/role-level.d.cts +24 -0
  422. package/dist/session/role-level.d.cts.map +1 -0
  423. package/dist/session/role-level.d.mts +24 -0
  424. package/dist/session/role-level.d.mts.map +1 -0
  425. package/dist/session/role-level.mjs +35 -0
  426. package/dist/session/role-level.mjs.map +1 -0
  427. package/dist/session/session-dir-providers.cjs +254 -0
  428. package/dist/session/session-dir-providers.d.cts +32 -0
  429. package/dist/session/session-dir-providers.d.cts.map +1 -0
  430. package/dist/session/session-dir-providers.d.mts +32 -0
  431. package/dist/session/session-dir-providers.d.mts.map +1 -0
  432. package/dist/session/session-dir-providers.mjs +252 -0
  433. package/dist/session/session-dir-providers.mjs.map +1 -0
  434. package/dist/session/session-id.cjs +20 -0
  435. package/dist/session/session-id.d.cts +15 -0
  436. package/dist/session/session-id.d.cts.map +1 -0
  437. package/dist/session/session-id.d.mts +15 -0
  438. package/dist/session/session-id.d.mts.map +1 -0
  439. package/dist/session/session-id.mjs +20 -0
  440. package/dist/session/session-id.mjs.map +1 -0
  441. package/dist/session/session-user-afs.cjs +899 -0
  442. package/dist/session/session-user-afs.d.cts +296 -0
  443. package/dist/session/session-user-afs.d.cts.map +1 -0
  444. package/dist/session/session-user-afs.d.mts +296 -0
  445. package/dist/session/session-user-afs.d.mts.map +1 -0
  446. package/dist/session/session-user-afs.mjs +896 -0
  447. package/dist/session/session-user-afs.mjs.map +1 -0
  448. package/dist/session/settings-cascade.cjs +69 -0
  449. package/dist/session/settings-cascade.d.cts +81 -0
  450. package/dist/session/settings-cascade.d.cts.map +1 -0
  451. package/dist/session/settings-cascade.d.mts +81 -0
  452. package/dist/session/settings-cascade.d.mts.map +1 -0
  453. package/dist/session/settings-cascade.mjs +69 -0
  454. package/dist/session/settings-cascade.mjs.map +1 -0
  455. package/dist/session/settings-resolver.cjs +770 -0
  456. package/dist/session/settings-resolver.d.cts +177 -0
  457. package/dist/session/settings-resolver.d.cts.map +1 -0
  458. package/dist/session/settings-resolver.d.mts +177 -0
  459. package/dist/session/settings-resolver.d.mts.map +1 -0
  460. package/dist/session/settings-resolver.mjs +771 -0
  461. package/dist/session/settings-resolver.mjs.map +1 -0
  462. package/dist/session/settings-schema-store.cjs +0 -0
  463. package/dist/session/settings-schema-store.d.cts +72 -0
  464. package/dist/session/settings-schema-store.d.cts.map +1 -0
  465. package/dist/session/settings-schema-store.d.mts +72 -0
  466. package/dist/session/settings-schema-store.d.mts.map +1 -0
  467. package/dist/session/settings-schema-store.mjs +0 -0
  468. package/dist/session/settings-schema-store.mjs.map +1 -0
  469. package/dist/system-mounts/index.cjs +14 -0
  470. package/dist/system-mounts/index.d.cts +6 -0
  471. package/dist/system-mounts/index.d.mts +6 -0
  472. package/dist/system-mounts/index.mjs +6 -0
  473. package/dist/system-mounts/install.cjs +101 -0
  474. package/dist/system-mounts/install.d.cts +36 -0
  475. package/dist/system-mounts/install.d.cts.map +1 -0
  476. package/dist/system-mounts/install.d.mts +37 -0
  477. package/dist/system-mounts/install.d.mts.map +1 -0
  478. package/dist/system-mounts/install.mjs +102 -0
  479. package/dist/system-mounts/install.mjs.map +1 -0
  480. package/dist/system-mounts/installers.cjs +247 -0
  481. package/dist/system-mounts/installers.d.cts +13 -0
  482. package/dist/system-mounts/installers.d.cts.map +1 -0
  483. package/dist/system-mounts/installers.d.mts +14 -0
  484. package/dist/system-mounts/installers.d.mts.map +1 -0
  485. package/dist/system-mounts/installers.mjs +244 -0
  486. package/dist/system-mounts/installers.mjs.map +1 -0
  487. package/dist/system-mounts/lists.cjs +122 -0
  488. package/dist/system-mounts/lists.d.cts +34 -0
  489. package/dist/system-mounts/lists.d.cts.map +1 -0
  490. package/dist/system-mounts/lists.d.mts +34 -0
  491. package/dist/system-mounts/lists.d.mts.map +1 -0
  492. package/dist/system-mounts/lists.mjs +122 -0
  493. package/dist/system-mounts/lists.mjs.map +1 -0
  494. package/dist/system-mounts/types.d.cts +124 -0
  495. package/dist/system-mounts/types.d.cts.map +1 -0
  496. package/dist/system-mounts/types.d.mts +125 -0
  497. package/dist/system-mounts/types.d.mts.map +1 -0
  498. package/dist/system-mounts/validate.cjs +56 -0
  499. package/dist/system-mounts/validate.d.cts +34 -0
  500. package/dist/system-mounts/validate.d.cts.map +1 -0
  501. package/dist/system-mounts/validate.d.mts +34 -0
  502. package/dist/system-mounts/validate.d.mts.map +1 -0
  503. package/dist/system-mounts/validate.mjs +56 -0
  504. package/dist/system-mounts/validate.mjs.map +1 -0
  505. package/dist/terminal-llm.cjs +90 -0
  506. package/dist/terminal-llm.d.cts +50 -0
  507. package/dist/terminal-llm.d.cts.map +1 -0
  508. package/dist/terminal-llm.d.mts +50 -0
  509. package/dist/terminal-llm.d.mts.map +1 -0
  510. package/dist/terminal-llm.mjs +90 -0
  511. package/dist/terminal-llm.mjs.map +1 -0
  512. package/dist/terminal-repl.cjs +371 -0
  513. package/dist/terminal-repl.d.cts +69 -0
  514. package/dist/terminal-repl.d.cts.map +1 -0
  515. package/dist/terminal-repl.d.mts +69 -0
  516. package/dist/terminal-repl.d.mts.map +1 -0
  517. package/dist/terminal-repl.mjs +370 -0
  518. package/dist/terminal-repl.mjs.map +1 -0
  519. package/dist/transport/idle-timer.cjs +136 -0
  520. package/dist/transport/idle-timer.d.cts +92 -0
  521. package/dist/transport/idle-timer.d.cts.map +1 -0
  522. package/dist/transport/idle-timer.d.mts +92 -0
  523. package/dist/transport/idle-timer.d.mts.map +1 -0
  524. package/dist/transport/idle-timer.mjs +132 -0
  525. package/dist/transport/idle-timer.mjs.map +1 -0
  526. package/dist/web-component-dsl.cjs +153 -0
  527. package/dist/web-component-dsl.d.cts +27 -0
  528. package/dist/web-component-dsl.d.cts.map +1 -0
  529. package/dist/web-component-dsl.d.mts +27 -0
  530. package/dist/web-component-dsl.d.mts.map +1 -0
  531. package/dist/web-component-dsl.mjs +152 -0
  532. package/dist/web-component-dsl.mjs.map +1 -0
  533. package/package.json +81 -0
@@ -0,0 +1,80 @@
1
+ const require_dsl_shared = require('../dsl-shared.cjs');
2
+
3
+ //#region src/auto-surface/value-dsl.ts
4
+ var AutoSurfaceValueDslCompileError = class extends Error {
5
+ constructor(message, line, column = 1) {
6
+ super(`${line}:${column} ${message}`);
7
+ this.line = line;
8
+ this.column = column;
9
+ this.name = "AutoSurfaceValueDslCompileError";
10
+ }
11
+ };
12
+ const LAYERS = new Set([
13
+ "system",
14
+ "package",
15
+ "instance",
16
+ "user"
17
+ ]);
18
+ function compileAutoSurfaceValueDsl(source) {
19
+ const values = [];
20
+ const declaration = require_dsl_shared.parseDeclaration(source, {
21
+ kind: "surface-values",
22
+ expected: "Expected surface-values <layer> {",
23
+ fieldKeywords: ["value"],
24
+ error: parseSharedError
25
+ });
26
+ const layer = declaration.id;
27
+ if (!LAYERS.has(layer)) throw new AutoSurfaceValueDslCompileError(`Unsupported value layer: ${declaration.id}`, declaration.idToken.line, declaration.idToken.column);
28
+ for (const field of declaration.fields) values.push(parseValueField(field));
29
+ const files = {};
30
+ for (const entry of values) {
31
+ const file = `${layer}/${entry.path}.value.json`;
32
+ if (Object.hasOwn(files, file)) throw new AutoSurfaceValueDslCompileError(`Duplicate auto-surface value path: ${entry.path}`, entry.line, entry.column);
33
+ files[file] = { value: entry.value };
34
+ }
35
+ return {
36
+ layer,
37
+ files,
38
+ values
39
+ };
40
+ }
41
+ function formatAutoSurfaceValueDsl(source) {
42
+ const compiled = compileAutoSurfaceValueDsl(source);
43
+ const lines = [`surface-values ${compiled.layer} {`];
44
+ for (const entry of compiled.values) lines.push(` value ${entry.path} ${JSON.stringify(entry.value)}`);
45
+ lines.push("}");
46
+ return `${lines.join("\n")}\n`;
47
+ }
48
+ function normalizeValuePath(path, line, column) {
49
+ const normalized = path.replace(/^\//, "").replace(/\/$/, "");
50
+ if (!normalized || normalized.includes("..")) throw new AutoSurfaceValueDslCompileError("value path cannot be empty or contain traversal", line, column);
51
+ return normalized;
52
+ }
53
+ function parseValueField(field) {
54
+ const path = field.values[0];
55
+ if (path?.type !== "word" || field.values.length < 2) throw new AutoSurfaceValueDslCompileError("Expected value <path> <json>", field.name.line, field.name.column);
56
+ return {
57
+ path: normalizeValuePath(path.value, path.line, path.column),
58
+ value: parseJsonValue(joinDslValues(field.values.slice(1)), field.name.line, path.column),
59
+ line: field.name.line,
60
+ column: path.column
61
+ };
62
+ }
63
+ function joinDslValues(tokens) {
64
+ return tokens.map((token) => token.value).join(" ");
65
+ }
66
+ function parseSharedError(message, line, column = 1) {
67
+ return new AutoSurfaceValueDslCompileError(message, line, column);
68
+ }
69
+ function parseJsonValue(source, line, column) {
70
+ try {
71
+ return JSON.parse(source);
72
+ } catch (error) {
73
+ throw new AutoSurfaceValueDslCompileError(`Invalid JSON value: ${error instanceof Error ? error.message : String(error)}`, line, column);
74
+ }
75
+ }
76
+
77
+ //#endregion
78
+ exports.AutoSurfaceValueDslCompileError = AutoSurfaceValueDslCompileError;
79
+ exports.compileAutoSurfaceValueDsl = compileAutoSurfaceValueDsl;
80
+ exports.formatAutoSurfaceValueDsl = formatAutoSurfaceValueDsl;
@@ -0,0 +1,24 @@
1
+ import { AutoSurfaceLayer } from "./types.cjs";
2
+
3
+ //#region src/auto-surface/value-dsl.d.ts
4
+ interface AutoSurfaceValueDslCompileResult {
5
+ layer: AutoSurfaceLayer;
6
+ files: Record<string, unknown>;
7
+ values: AutoSurfaceValueDslEntry[];
8
+ }
9
+ interface AutoSurfaceValueDslEntry {
10
+ path: string;
11
+ value: unknown;
12
+ line: number;
13
+ column: number;
14
+ }
15
+ declare class AutoSurfaceValueDslCompileError extends Error {
16
+ readonly line: number;
17
+ readonly column: number;
18
+ constructor(message: string, line: number, column?: number);
19
+ }
20
+ declare function compileAutoSurfaceValueDsl(source: string): AutoSurfaceValueDslCompileResult;
21
+ declare function formatAutoSurfaceValueDsl(source: string): string;
22
+ //#endregion
23
+ export { AutoSurfaceValueDslCompileError, AutoSurfaceValueDslCompileResult, AutoSurfaceValueDslEntry, compileAutoSurfaceValueDsl, formatAutoSurfaceValueDsl };
24
+ //# sourceMappingURL=value-dsl.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-dsl.d.cts","names":[],"sources":["../../src/auto-surface/value-dsl.ts"],"mappings":";;;UAGiB,gCAAA;EACf,KAAA,EAAO,gBAAA;EACP,KAAA,EAAO,MAAA;EACP,MAAA,EAAQ,wBAAA;AAAA;AAAA,UAGO,wBAAA;EACf,IAAA;EACA,KAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,cAGW,+BAAA,SAAwC,KAAA;EAAA,SAGxC,IAAA;EAAA,SACA,MAAA;cAFT,OAAA,UACS,IAAA,UACA,MAAA;AAAA;AAAA,iBASG,0BAAA,CAA2B,MAAA,WAAiB,gCAAA;AAAA,iBAuC5C,yBAAA,CAA0B,MAAA"}
@@ -0,0 +1,24 @@
1
+ import { AutoSurfaceLayer } from "./types.mjs";
2
+
3
+ //#region src/auto-surface/value-dsl.d.ts
4
+ interface AutoSurfaceValueDslCompileResult {
5
+ layer: AutoSurfaceLayer;
6
+ files: Record<string, unknown>;
7
+ values: AutoSurfaceValueDslEntry[];
8
+ }
9
+ interface AutoSurfaceValueDslEntry {
10
+ path: string;
11
+ value: unknown;
12
+ line: number;
13
+ column: number;
14
+ }
15
+ declare class AutoSurfaceValueDslCompileError extends Error {
16
+ readonly line: number;
17
+ readonly column: number;
18
+ constructor(message: string, line: number, column?: number);
19
+ }
20
+ declare function compileAutoSurfaceValueDsl(source: string): AutoSurfaceValueDslCompileResult;
21
+ declare function formatAutoSurfaceValueDsl(source: string): string;
22
+ //#endregion
23
+ export { AutoSurfaceValueDslCompileError, AutoSurfaceValueDslCompileResult, AutoSurfaceValueDslEntry, compileAutoSurfaceValueDsl, formatAutoSurfaceValueDsl };
24
+ //# sourceMappingURL=value-dsl.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-dsl.d.mts","names":[],"sources":["../../src/auto-surface/value-dsl.ts"],"mappings":";;;UAGiB,gCAAA;EACf,KAAA,EAAO,gBAAA;EACP,KAAA,EAAO,MAAA;EACP,MAAA,EAAQ,wBAAA;AAAA;AAAA,UAGO,wBAAA;EACf,IAAA;EACA,KAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,cAGW,+BAAA,SAAwC,KAAA;EAAA,SAGxC,IAAA;EAAA,SACA,MAAA;cAFT,OAAA,UACS,IAAA,UACA,MAAA;AAAA;AAAA,iBASG,0BAAA,CAA2B,MAAA,WAAiB,gCAAA;AAAA,iBAuC5C,yBAAA,CAA0B,MAAA"}
@@ -0,0 +1,79 @@
1
+ import { parseDeclaration } from "../dsl-shared.mjs";
2
+
3
+ //#region src/auto-surface/value-dsl.ts
4
+ var AutoSurfaceValueDslCompileError = class extends Error {
5
+ constructor(message, line, column = 1) {
6
+ super(`${line}:${column} ${message}`);
7
+ this.line = line;
8
+ this.column = column;
9
+ this.name = "AutoSurfaceValueDslCompileError";
10
+ }
11
+ };
12
+ const LAYERS = new Set([
13
+ "system",
14
+ "package",
15
+ "instance",
16
+ "user"
17
+ ]);
18
+ function compileAutoSurfaceValueDsl(source) {
19
+ const values = [];
20
+ const declaration = parseDeclaration(source, {
21
+ kind: "surface-values",
22
+ expected: "Expected surface-values <layer> {",
23
+ fieldKeywords: ["value"],
24
+ error: parseSharedError
25
+ });
26
+ const layer = declaration.id;
27
+ if (!LAYERS.has(layer)) throw new AutoSurfaceValueDslCompileError(`Unsupported value layer: ${declaration.id}`, declaration.idToken.line, declaration.idToken.column);
28
+ for (const field of declaration.fields) values.push(parseValueField(field));
29
+ const files = {};
30
+ for (const entry of values) {
31
+ const file = `${layer}/${entry.path}.value.json`;
32
+ if (Object.hasOwn(files, file)) throw new AutoSurfaceValueDslCompileError(`Duplicate auto-surface value path: ${entry.path}`, entry.line, entry.column);
33
+ files[file] = { value: entry.value };
34
+ }
35
+ return {
36
+ layer,
37
+ files,
38
+ values
39
+ };
40
+ }
41
+ function formatAutoSurfaceValueDsl(source) {
42
+ const compiled = compileAutoSurfaceValueDsl(source);
43
+ const lines = [`surface-values ${compiled.layer} {`];
44
+ for (const entry of compiled.values) lines.push(` value ${entry.path} ${JSON.stringify(entry.value)}`);
45
+ lines.push("}");
46
+ return `${lines.join("\n")}\n`;
47
+ }
48
+ function normalizeValuePath(path, line, column) {
49
+ const normalized = path.replace(/^\//, "").replace(/\/$/, "");
50
+ if (!normalized || normalized.includes("..")) throw new AutoSurfaceValueDslCompileError("value path cannot be empty or contain traversal", line, column);
51
+ return normalized;
52
+ }
53
+ function parseValueField(field) {
54
+ const path = field.values[0];
55
+ if (path?.type !== "word" || field.values.length < 2) throw new AutoSurfaceValueDslCompileError("Expected value <path> <json>", field.name.line, field.name.column);
56
+ return {
57
+ path: normalizeValuePath(path.value, path.line, path.column),
58
+ value: parseJsonValue(joinDslValues(field.values.slice(1)), field.name.line, path.column),
59
+ line: field.name.line,
60
+ column: path.column
61
+ };
62
+ }
63
+ function joinDslValues(tokens) {
64
+ return tokens.map((token) => token.value).join(" ");
65
+ }
66
+ function parseSharedError(message, line, column = 1) {
67
+ return new AutoSurfaceValueDslCompileError(message, line, column);
68
+ }
69
+ function parseJsonValue(source, line, column) {
70
+ try {
71
+ return JSON.parse(source);
72
+ } catch (error) {
73
+ throw new AutoSurfaceValueDslCompileError(`Invalid JSON value: ${error instanceof Error ? error.message : String(error)}`, line, column);
74
+ }
75
+ }
76
+
77
+ //#endregion
78
+ export { AutoSurfaceValueDslCompileError, compileAutoSurfaceValueDsl, formatAutoSurfaceValueDsl };
79
+ //# sourceMappingURL=value-dsl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-dsl.mjs","names":[],"sources":["../../src/auto-surface/value-dsl.ts"],"sourcesContent":["import { type DslField, type DslToken, parseDeclaration } from \"../dsl-shared.js\";\nimport type { AutoSurfaceLayer } from \"./types.js\";\n\nexport interface AutoSurfaceValueDslCompileResult {\n layer: AutoSurfaceLayer;\n files: Record<string, unknown>;\n values: AutoSurfaceValueDslEntry[];\n}\n\nexport interface AutoSurfaceValueDslEntry {\n path: string;\n value: unknown;\n line: number;\n column: number;\n}\n\nexport class AutoSurfaceValueDslCompileError extends Error {\n constructor(\n message: string,\n readonly line: number,\n readonly column = 1,\n ) {\n super(`${line}:${column} ${message}`);\n this.name = \"AutoSurfaceValueDslCompileError\";\n }\n}\n\nconst LAYERS = new Set<AutoSurfaceLayer>([\"system\", \"package\", \"instance\", \"user\"]);\n\nexport function compileAutoSurfaceValueDsl(source: string): AutoSurfaceValueDslCompileResult {\n const values: AutoSurfaceValueDslEntry[] = [];\n\n const declaration = parseDeclaration(source, {\n kind: \"surface-values\",\n expected: \"Expected surface-values <layer> {\",\n fieldKeywords: [\"value\"],\n error: parseSharedError,\n });\n\n const layer = declaration.id as AutoSurfaceLayer;\n if (!LAYERS.has(layer)) {\n throw new AutoSurfaceValueDslCompileError(\n `Unsupported value layer: ${declaration.id}`,\n declaration.idToken.line,\n declaration.idToken.column,\n );\n }\n\n for (const field of declaration.fields) {\n values.push(parseValueField(field));\n }\n\n const files: Record<string, unknown> = {};\n for (const entry of values) {\n const file = `${layer}/${entry.path}.value.json`;\n if (Object.hasOwn(files, file)) {\n throw new AutoSurfaceValueDslCompileError(\n `Duplicate auto-surface value path: ${entry.path}`,\n entry.line,\n entry.column,\n );\n }\n files[file] = { value: entry.value };\n }\n\n return { layer, files, values };\n}\n\nexport function formatAutoSurfaceValueDsl(source: string): string {\n const compiled = compileAutoSurfaceValueDsl(source);\n const lines = [`surface-values ${compiled.layer} {`];\n for (const entry of compiled.values) {\n lines.push(` value ${entry.path} ${JSON.stringify(entry.value)}`);\n }\n lines.push(\"}\");\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nfunction normalizeValuePath(path: string, line: number, column: number): string {\n const normalized = path.replace(/^\\//, \"\").replace(/\\/$/, \"\");\n if (!normalized || normalized.includes(\"..\")) {\n throw new AutoSurfaceValueDslCompileError(\n \"value path cannot be empty or contain traversal\",\n line,\n column,\n );\n }\n return normalized;\n}\n\nfunction parseValueField(field: DslField): AutoSurfaceValueDslEntry {\n const path = field.values[0];\n if (path?.type !== \"word\" || field.values.length < 2) {\n throw new AutoSurfaceValueDslCompileError(\n \"Expected value <path> <json>\",\n field.name.line,\n field.name.column,\n );\n }\n\n return {\n path: normalizeValuePath(path.value, path.line, path.column),\n value: parseJsonValue(joinDslValues(field.values.slice(1)), field.name.line, path.column),\n line: field.name.line,\n column: path.column,\n };\n}\n\nfunction joinDslValues(tokens: DslToken[]): string {\n return tokens.map((token) => token.value).join(\" \");\n}\n\nfunction parseSharedError(message: string, line: number, column = 1): Error {\n return new AutoSurfaceValueDslCompileError(message, line, column);\n}\n\nfunction parseJsonValue(source: string, line: number, column: number): unknown {\n try {\n return JSON.parse(source);\n } catch (error) {\n throw new AutoSurfaceValueDslCompileError(\n `Invalid JSON value: ${error instanceof Error ? error.message : String(error)}`,\n line,\n column,\n );\n }\n}\n"],"mappings":";;;AAgBA,IAAa,kCAAb,cAAqD,MAAM;CACzD,YACE,SACA,AAAS,MACT,AAAS,SAAS,GAClB;AACA,QAAM,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU;EAH5B;EACA;AAGT,OAAK,OAAO;;;AAIhB,MAAM,SAAS,IAAI,IAAsB;CAAC;CAAU;CAAW;CAAY;CAAO,CAAC;AAEnF,SAAgB,2BAA2B,QAAkD;CAC3F,MAAM,SAAqC,EAAE;CAE7C,MAAM,cAAc,iBAAiB,QAAQ;EAC3C,MAAM;EACN,UAAU;EACV,eAAe,CAAC,QAAQ;EACxB,OAAO;EACR,CAAC;CAEF,MAAM,QAAQ,YAAY;AAC1B,KAAI,CAAC,OAAO,IAAI,MAAM,CACpB,OAAM,IAAI,gCACR,4BAA4B,YAAY,MACxC,YAAY,QAAQ,MACpB,YAAY,QAAQ,OACrB;AAGH,MAAK,MAAM,SAAS,YAAY,OAC9B,QAAO,KAAK,gBAAgB,MAAM,CAAC;CAGrC,MAAM,QAAiC,EAAE;AACzC,MAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,KAAK;AACpC,MAAI,OAAO,OAAO,OAAO,KAAK,CAC5B,OAAM,IAAI,gCACR,sCAAsC,MAAM,QAC5C,MAAM,MACN,MAAM,OACP;AAEH,QAAM,QAAQ,EAAE,OAAO,MAAM,OAAO;;AAGtC,QAAO;EAAE;EAAO;EAAO;EAAQ;;AAGjC,SAAgB,0BAA0B,QAAwB;CAChE,MAAM,WAAW,2BAA2B,OAAO;CACnD,MAAM,QAAQ,CAAC,kBAAkB,SAAS,MAAM,IAAI;AACpD,MAAK,MAAM,SAAS,SAAS,OAC3B,OAAM,KAAK,WAAW,MAAM,KAAK,GAAG,KAAK,UAAU,MAAM,MAAM,GAAG;AAEpE,OAAM,KAAK,IAAI;AACf,QAAO,GAAG,MAAM,KAAK,KAAK,CAAC;;AAG7B,SAAS,mBAAmB,MAAc,MAAc,QAAwB;CAC9E,MAAM,aAAa,KAAK,QAAQ,OAAO,GAAG,CAAC,QAAQ,OAAO,GAAG;AAC7D,KAAI,CAAC,cAAc,WAAW,SAAS,KAAK,CAC1C,OAAM,IAAI,gCACR,mDACA,MACA,OACD;AAEH,QAAO;;AAGT,SAAS,gBAAgB,OAA2C;CAClE,MAAM,OAAO,MAAM,OAAO;AAC1B,KAAI,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS,EACjD,OAAM,IAAI,gCACR,gCACA,MAAM,KAAK,MACX,MAAM,KAAK,OACZ;AAGH,QAAO;EACL,MAAM,mBAAmB,KAAK,OAAO,KAAK,MAAM,KAAK,OAAO;EAC5D,OAAO,eAAe,cAAc,MAAM,OAAO,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,KAAK,OAAO;EACzF,MAAM,MAAM,KAAK;EACjB,QAAQ,KAAK;EACd;;AAGH,SAAS,cAAc,QAA4B;AACjD,QAAO,OAAO,KAAK,UAAU,MAAM,MAAM,CAAC,KAAK,IAAI;;AAGrD,SAAS,iBAAiB,SAAiB,MAAc,SAAS,GAAU;AAC1E,QAAO,IAAI,gCAAgC,SAAS,MAAM,OAAO;;AAGnE,SAAS,eAAe,QAAgB,MAAc,QAAyB;AAC7E,KAAI;AACF,SAAO,KAAK,MAAM,OAAO;UAClB,OAAO;AACd,QAAM,IAAI,gCACR,uBAAuB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,IAC7E,MACA,OACD"}
@@ -0,0 +1,94 @@
1
+ let _aigne_afs = require("@aigne/afs");
2
+
3
+ //#region src/blocklet/activation.ts
4
+ /**
5
+ * AOS Blocklet activation — creates Runtime AFS and configures mounts + routes.
6
+ *
7
+ * Wraps core createBlockletAFS with AOS-level concerns:
8
+ * - Domain registration via ActivationHooks
9
+ * - Credential injection via ActivationHooks
10
+ * - Route loading from Runtime AFS
11
+ * - Clean deactivation with rollback
12
+ */
13
+ function collectDomainBindTargets(info) {
14
+ const targets = [];
15
+ for (const site of info.manifest.sites ?? []) {
16
+ if (site.domain) targets.push({
17
+ kind: "domain",
18
+ value: site.domain
19
+ });
20
+ for (const alias of site.aliases ?? []) targets.push({
21
+ kind: "alias",
22
+ value: alias
23
+ });
24
+ }
25
+ return targets;
26
+ }
27
+ /**
28
+ * Activate a blocklet: create Runtime AFS, seed data, register domains.
29
+ *
30
+ * Returns the activated state that can be passed to deactivateBlocklet() later.
31
+ */
32
+ async function activateBlocklet(options) {
33
+ const { info, globalAFS, dataPath, hooks, createProvider } = options;
34
+ const { afs: runtimeAFS, ownedProviders } = await (0, _aigne_afs.createBlockletAFS)(info.mountPath, dataPath, globalAFS, {
35
+ manifest: info.manifest,
36
+ createProvider,
37
+ blockletDiskPath: info.diskPath
38
+ });
39
+ await (0, _aigne_afs.seedBlockletData)(runtimeAFS);
40
+ await (0, _aigne_afs.seedRoutes)(runtimeAFS);
41
+ await (0, _aigne_afs.seedMountFiles)(runtimeAFS, info.manifest);
42
+ const registeredDomains = [];
43
+ if (info.manifest.sites && hooks?.onDomainBind) {
44
+ const bindTargets = collectDomainBindTargets(info);
45
+ const bindResults = await Promise.all(bindTargets.map(async (target) => {
46
+ try {
47
+ await hooks.onDomainBind(info.id, target.value);
48
+ return {
49
+ ok: true,
50
+ target
51
+ };
52
+ } catch {
53
+ return {
54
+ ok: false,
55
+ target
56
+ };
57
+ }
58
+ }));
59
+ const firstFailure = bindResults.find((result) => !result.ok);
60
+ if (firstFailure) {
61
+ for (const result of bindResults) {
62
+ if (!result.ok) continue;
63
+ try {
64
+ await hooks.onDomainUnbind?.(info.id, result.target.value);
65
+ } catch {}
66
+ }
67
+ throw new Error(`Failed to bind ${firstFailure.target.kind} "${firstFailure.target.value}" for blocklet "${info.id}"`);
68
+ }
69
+ registeredDomains.push(...bindResults.map((result) => result.target.value));
70
+ }
71
+ await globalAFS.mount(runtimeAFS, info.mountPath, { replace: true });
72
+ return {
73
+ info,
74
+ runtimeAFS,
75
+ ownedProviders,
76
+ domains: registeredDomains
77
+ };
78
+ }
79
+ /**
80
+ * Deactivate a blocklet: unregister domains, close owned providers, unmount.
81
+ */
82
+ async function deactivateBlocklet(activated, globalAFS, hooks) {
83
+ if (hooks?.onDomainUnbind) for (const domain of activated.domains) try {
84
+ await hooks.onDomainUnbind(activated.info.id, domain);
85
+ } catch {}
86
+ for (const provider of activated.ownedProviders) try {
87
+ await provider.close?.();
88
+ } catch {}
89
+ await globalAFS.unmount(activated.info.mountPath);
90
+ }
91
+
92
+ //#endregion
93
+ exports.activateBlocklet = activateBlocklet;
94
+ exports.deactivateBlocklet = deactivateBlocklet;
@@ -0,0 +1,30 @@
1
+ import { ActivatedBlocklet, ActivationHooks, BlockletInfo } from "./types.cjs";
2
+ import * as _aigne_afs3 from "@aigne/afs";
3
+ import { AFS, AFSModule } from "@aigne/afs";
4
+
5
+ //#region src/blocklet/activation.d.ts
6
+ interface ActivateBlockletOptions {
7
+ /** The blocklet to activate */
8
+ info: BlockletInfo;
9
+ /** The global AFS instance */
10
+ globalAFS: AFS;
11
+ /** Data directory path for this blocklet (runtime-specific) */
12
+ dataPath: string;
13
+ /** Platform-specific hooks */
14
+ hooks?: ActivationHooks;
15
+ /** Provider factory for owned mounts */
16
+ createProvider?: (mount: _aigne_afs3.MountConfig) => Promise<AFSModule>;
17
+ }
18
+ /**
19
+ * Activate a blocklet: create Runtime AFS, seed data, register domains.
20
+ *
21
+ * Returns the activated state that can be passed to deactivateBlocklet() later.
22
+ */
23
+ declare function activateBlocklet(options: ActivateBlockletOptions): Promise<ActivatedBlocklet>;
24
+ /**
25
+ * Deactivate a blocklet: unregister domains, close owned providers, unmount.
26
+ */
27
+ declare function deactivateBlocklet(activated: ActivatedBlocklet, globalAFS: AFS, hooks?: ActivationHooks): Promise<void>;
28
+ //#endregion
29
+ export { ActivateBlockletOptions, activateBlocklet, deactivateBlocklet };
30
+ //# sourceMappingURL=activation.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activation.d.cts","names":[],"sources":["../../src/blocklet/activation.ts"],"mappings":";;;;;UAwBiB,uBAAA;EAUuD;EARtE,IAAA,EAAM,YAAA;EAQ+D;EANrE,SAAA,EAAW,GAAA;EAFX;EAIA,QAAA;EAFA;EAIA,KAAA,GAAQ,eAAA;EAFR;EAIA,cAAA,IAAkB,KAAA,EAFK,WAAA,CAEuB,WAAA,KAAgB,OAAA,CAAQ,SAAA;AAAA;;;;;;iBAwBlD,gBAAA,CACpB,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,iBAAA;;AAFX;;iBAyEsB,kBAAA,CACpB,SAAA,EAAW,iBAAA,EACX,SAAA,EAAW,GAAA,EACX,KAAA,GAAQ,eAAA,GACP,OAAA"}
@@ -0,0 +1,30 @@
1
+ import { ActivatedBlocklet, ActivationHooks, BlockletInfo } from "./types.mjs";
2
+ import * as _aigne_afs3 from "@aigne/afs";
3
+ import { AFS, AFSModule } from "@aigne/afs";
4
+
5
+ //#region src/blocklet/activation.d.ts
6
+ interface ActivateBlockletOptions {
7
+ /** The blocklet to activate */
8
+ info: BlockletInfo;
9
+ /** The global AFS instance */
10
+ globalAFS: AFS;
11
+ /** Data directory path for this blocklet (runtime-specific) */
12
+ dataPath: string;
13
+ /** Platform-specific hooks */
14
+ hooks?: ActivationHooks;
15
+ /** Provider factory for owned mounts */
16
+ createProvider?: (mount: _aigne_afs3.MountConfig) => Promise<AFSModule>;
17
+ }
18
+ /**
19
+ * Activate a blocklet: create Runtime AFS, seed data, register domains.
20
+ *
21
+ * Returns the activated state that can be passed to deactivateBlocklet() later.
22
+ */
23
+ declare function activateBlocklet(options: ActivateBlockletOptions): Promise<ActivatedBlocklet>;
24
+ /**
25
+ * Deactivate a blocklet: unregister domains, close owned providers, unmount.
26
+ */
27
+ declare function deactivateBlocklet(activated: ActivatedBlocklet, globalAFS: AFS, hooks?: ActivationHooks): Promise<void>;
28
+ //#endregion
29
+ export { ActivateBlockletOptions, activateBlocklet, deactivateBlocklet };
30
+ //# sourceMappingURL=activation.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activation.d.mts","names":[],"sources":["../../src/blocklet/activation.ts"],"mappings":";;;;;UAwBiB,uBAAA;EAUuD;EARtE,IAAA,EAAM,YAAA;EAQ+D;EANrE,SAAA,EAAW,GAAA;EAFX;EAIA,QAAA;EAFA;EAIA,KAAA,GAAQ,eAAA;EAFR;EAIA,cAAA,IAAkB,KAAA,EAFK,WAAA,CAEuB,WAAA,KAAgB,OAAA,CAAQ,SAAA;AAAA;;;;;;iBAwBlD,gBAAA,CACpB,OAAA,EAAS,uBAAA,GACR,OAAA,CAAQ,iBAAA;;AAFX;;iBAyEsB,kBAAA,CACpB,SAAA,EAAW,iBAAA,EACX,SAAA,EAAW,GAAA,EACX,KAAA,GAAQ,eAAA,GACP,OAAA"}
@@ -0,0 +1,94 @@
1
+ import { createBlockletAFS, seedBlockletData, seedMountFiles, seedRoutes } from "@aigne/afs";
2
+
3
+ //#region src/blocklet/activation.ts
4
+ /**
5
+ * AOS Blocklet activation — creates Runtime AFS and configures mounts + routes.
6
+ *
7
+ * Wraps core createBlockletAFS with AOS-level concerns:
8
+ * - Domain registration via ActivationHooks
9
+ * - Credential injection via ActivationHooks
10
+ * - Route loading from Runtime AFS
11
+ * - Clean deactivation with rollback
12
+ */
13
+ function collectDomainBindTargets(info) {
14
+ const targets = [];
15
+ for (const site of info.manifest.sites ?? []) {
16
+ if (site.domain) targets.push({
17
+ kind: "domain",
18
+ value: site.domain
19
+ });
20
+ for (const alias of site.aliases ?? []) targets.push({
21
+ kind: "alias",
22
+ value: alias
23
+ });
24
+ }
25
+ return targets;
26
+ }
27
+ /**
28
+ * Activate a blocklet: create Runtime AFS, seed data, register domains.
29
+ *
30
+ * Returns the activated state that can be passed to deactivateBlocklet() later.
31
+ */
32
+ async function activateBlocklet(options) {
33
+ const { info, globalAFS, dataPath, hooks, createProvider } = options;
34
+ const { afs: runtimeAFS, ownedProviders } = await createBlockletAFS(info.mountPath, dataPath, globalAFS, {
35
+ manifest: info.manifest,
36
+ createProvider,
37
+ blockletDiskPath: info.diskPath
38
+ });
39
+ await seedBlockletData(runtimeAFS);
40
+ await seedRoutes(runtimeAFS);
41
+ await seedMountFiles(runtimeAFS, info.manifest);
42
+ const registeredDomains = [];
43
+ if (info.manifest.sites && hooks?.onDomainBind) {
44
+ const bindTargets = collectDomainBindTargets(info);
45
+ const bindResults = await Promise.all(bindTargets.map(async (target) => {
46
+ try {
47
+ await hooks.onDomainBind(info.id, target.value);
48
+ return {
49
+ ok: true,
50
+ target
51
+ };
52
+ } catch {
53
+ return {
54
+ ok: false,
55
+ target
56
+ };
57
+ }
58
+ }));
59
+ const firstFailure = bindResults.find((result) => !result.ok);
60
+ if (firstFailure) {
61
+ for (const result of bindResults) {
62
+ if (!result.ok) continue;
63
+ try {
64
+ await hooks.onDomainUnbind?.(info.id, result.target.value);
65
+ } catch {}
66
+ }
67
+ throw new Error(`Failed to bind ${firstFailure.target.kind} "${firstFailure.target.value}" for blocklet "${info.id}"`);
68
+ }
69
+ registeredDomains.push(...bindResults.map((result) => result.target.value));
70
+ }
71
+ await globalAFS.mount(runtimeAFS, info.mountPath, { replace: true });
72
+ return {
73
+ info,
74
+ runtimeAFS,
75
+ ownedProviders,
76
+ domains: registeredDomains
77
+ };
78
+ }
79
+ /**
80
+ * Deactivate a blocklet: unregister domains, close owned providers, unmount.
81
+ */
82
+ async function deactivateBlocklet(activated, globalAFS, hooks) {
83
+ if (hooks?.onDomainUnbind) for (const domain of activated.domains) try {
84
+ await hooks.onDomainUnbind(activated.info.id, domain);
85
+ } catch {}
86
+ for (const provider of activated.ownedProviders) try {
87
+ await provider.close?.();
88
+ } catch {}
89
+ await globalAFS.unmount(activated.info.mountPath);
90
+ }
91
+
92
+ //#endregion
93
+ export { activateBlocklet, deactivateBlocklet };
94
+ //# sourceMappingURL=activation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activation.mjs","names":[],"sources":["../../src/blocklet/activation.ts"],"sourcesContent":["/**\n * AOS Blocklet activation — creates Runtime AFS and configures mounts + routes.\n *\n * Wraps core createBlockletAFS with AOS-level concerns:\n * - Domain registration via ActivationHooks\n * - Credential injection via ActivationHooks\n * - Route loading from Runtime AFS\n * - Clean deactivation with rollback\n */\n\nimport {\n type AFS,\n type AFSModule,\n createBlockletAFS,\n seedBlockletData,\n seedMountFiles,\n seedRoutes,\n} from \"@aigne/afs\";\nimport type { ActivatedBlocklet, ActivationHooks, BlockletInfo } from \"./types.js\";\n\n// ---------------------------------------------------------------------------\n// Activation\n// ---------------------------------------------------------------------------\n\nexport interface ActivateBlockletOptions {\n /** The blocklet to activate */\n info: BlockletInfo;\n /** The global AFS instance */\n globalAFS: AFS;\n /** Data directory path for this blocklet (runtime-specific) */\n dataPath: string;\n /** Platform-specific hooks */\n hooks?: ActivationHooks;\n /** Provider factory for owned mounts */\n createProvider?: (mount: import(\"@aigne/afs\").MountConfig) => Promise<AFSModule>;\n}\n\ninterface DomainBindTarget {\n kind: \"domain\" | \"alias\";\n value: string;\n}\n\nfunction collectDomainBindTargets(info: BlockletInfo): DomainBindTarget[] {\n const targets: DomainBindTarget[] = [];\n for (const site of info.manifest.sites ?? []) {\n if (site.domain) targets.push({ kind: \"domain\", value: site.domain });\n for (const alias of site.aliases ?? []) {\n targets.push({ kind: \"alias\", value: alias });\n }\n }\n return targets;\n}\n\n/**\n * Activate a blocklet: create Runtime AFS, seed data, register domains.\n *\n * Returns the activated state that can be passed to deactivateBlocklet() later.\n */\nexport async function activateBlocklet(\n options: ActivateBlockletOptions,\n): Promise<ActivatedBlocklet> {\n const { info, globalAFS, dataPath, hooks, createProvider } = options;\n\n // 1. Create Runtime AFS via core factory\n const { afs: runtimeAFS, ownedProviders } = await createBlockletAFS(\n info.mountPath,\n dataPath,\n globalAFS,\n {\n manifest: info.manifest,\n createProvider,\n blockletDiskPath: info.diskPath,\n },\n );\n\n // 2. Seed data + routes + mount files\n await seedBlockletData(runtimeAFS);\n await seedRoutes(runtimeAFS);\n await seedMountFiles(runtimeAFS, info.manifest);\n\n // 3. Register domains from manifest.sites\n const registeredDomains: string[] = [];\n if (info.manifest.sites && hooks?.onDomainBind) {\n const bindTargets = collectDomainBindTargets(info);\n const bindResults = await Promise.all(\n bindTargets.map(async (target) => {\n try {\n await hooks.onDomainBind!(info.id, target.value);\n return { ok: true as const, target };\n } catch {\n return { ok: false as const, target };\n }\n }),\n );\n\n const firstFailure = bindResults.find((result) => !result.ok);\n if (firstFailure) {\n for (const result of bindResults) {\n if (!result.ok) continue;\n try {\n await hooks.onDomainUnbind?.(info.id, result.target.value);\n } catch {\n /* best effort */\n }\n }\n throw new Error(\n `Failed to bind ${firstFailure.target.kind} \"${firstFailure.target.value}\" for blocklet \"${info.id}\"`,\n );\n }\n\n registeredDomains.push(...bindResults.map((result) => result.target.value));\n }\n\n // 4. Replace mount in global AFS with Runtime AFS\n await globalAFS.mount(runtimeAFS, info.mountPath, { replace: true });\n\n return {\n info,\n runtimeAFS,\n ownedProviders,\n domains: registeredDomains,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Deactivation\n// ---------------------------------------------------------------------------\n\n/**\n * Deactivate a blocklet: unregister domains, close owned providers, unmount.\n */\nexport async function deactivateBlocklet(\n activated: ActivatedBlocklet,\n globalAFS: AFS,\n hooks?: ActivationHooks,\n): Promise<void> {\n // 1. Unregister domains\n if (hooks?.onDomainUnbind) {\n for (const domain of activated.domains) {\n try {\n await hooks.onDomainUnbind(activated.info.id, domain);\n } catch {\n /* best effort */\n }\n }\n }\n\n // 2. Close owned providers\n for (const provider of activated.ownedProviders) {\n try {\n await provider.close?.();\n } catch {\n /* best effort */\n }\n }\n\n // 3. Unmount from global AFS\n await globalAFS.unmount(activated.info.mountPath);\n}\n"],"mappings":";;;;;;;;;;;;AA0CA,SAAS,yBAAyB,MAAwC;CACxE,MAAM,UAA8B,EAAE;AACtC,MAAK,MAAM,QAAQ,KAAK,SAAS,SAAS,EAAE,EAAE;AAC5C,MAAI,KAAK,OAAQ,SAAQ,KAAK;GAAE,MAAM;GAAU,OAAO,KAAK;GAAQ,CAAC;AACrE,OAAK,MAAM,SAAS,KAAK,WAAW,EAAE,CACpC,SAAQ,KAAK;GAAE,MAAM;GAAS,OAAO;GAAO,CAAC;;AAGjD,QAAO;;;;;;;AAQT,eAAsB,iBACpB,SAC4B;CAC5B,MAAM,EAAE,MAAM,WAAW,UAAU,OAAO,mBAAmB;CAG7D,MAAM,EAAE,KAAK,YAAY,mBAAmB,MAAM,kBAChD,KAAK,WACL,UACA,WACA;EACE,UAAU,KAAK;EACf;EACA,kBAAkB,KAAK;EACxB,CACF;AAGD,OAAM,iBAAiB,WAAW;AAClC,OAAM,WAAW,WAAW;AAC5B,OAAM,eAAe,YAAY,KAAK,SAAS;CAG/C,MAAM,oBAA8B,EAAE;AACtC,KAAI,KAAK,SAAS,SAAS,OAAO,cAAc;EAC9C,MAAM,cAAc,yBAAyB,KAAK;EAClD,MAAM,cAAc,MAAM,QAAQ,IAChC,YAAY,IAAI,OAAO,WAAW;AAChC,OAAI;AACF,UAAM,MAAM,aAAc,KAAK,IAAI,OAAO,MAAM;AAChD,WAAO;KAAE,IAAI;KAAe;KAAQ;WAC9B;AACN,WAAO;KAAE,IAAI;KAAgB;KAAQ;;IAEvC,CACH;EAED,MAAM,eAAe,YAAY,MAAM,WAAW,CAAC,OAAO,GAAG;AAC7D,MAAI,cAAc;AAChB,QAAK,MAAM,UAAU,aAAa;AAChC,QAAI,CAAC,OAAO,GAAI;AAChB,QAAI;AACF,WAAM,MAAM,iBAAiB,KAAK,IAAI,OAAO,OAAO,MAAM;YACpD;;AAIV,SAAM,IAAI,MACR,kBAAkB,aAAa,OAAO,KAAK,IAAI,aAAa,OAAO,MAAM,kBAAkB,KAAK,GAAG,GACpG;;AAGH,oBAAkB,KAAK,GAAG,YAAY,KAAK,WAAW,OAAO,OAAO,MAAM,CAAC;;AAI7E,OAAM,UAAU,MAAM,YAAY,KAAK,WAAW,EAAE,SAAS,MAAM,CAAC;AAEpE,QAAO;EACL;EACA;EACA;EACA,SAAS;EACV;;;;;AAUH,eAAsB,mBACpB,WACA,WACA,OACe;AAEf,KAAI,OAAO,eACT,MAAK,MAAM,UAAU,UAAU,QAC7B,KAAI;AACF,QAAM,MAAM,eAAe,UAAU,KAAK,IAAI,OAAO;SAC/C;AAOZ,MAAK,MAAM,YAAY,UAAU,eAC/B,KAAI;AACF,QAAM,SAAS,SAAS;SAClB;AAMV,OAAM,UAAU,QAAQ,UAAU,KAAK,UAAU"}