@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,182 @@
1
+ const require_dsl_shared = require('../dsl-shared.cjs');
2
+ const require_dsl_error = require('./dsl-error.cjs');
3
+
4
+ //#region src/scaffold/surface-dsl.ts
5
+ const STRING = "\"((?:[^\"\\\\]|\\\\.)*)\"";
6
+ function compileSurfaceDsl(source) {
7
+ const declaration = require_dsl_shared.parseDeclaration(source, {
8
+ kind: "surface",
9
+ allowQuotedTitle: true,
10
+ expected: "Expected surface id \"Title\" {",
11
+ fieldKeywords: [
12
+ "title",
13
+ "kind",
14
+ "module",
15
+ "projector",
16
+ "definition-root",
17
+ "value-root",
18
+ "scope",
19
+ "order",
20
+ "metadata"
21
+ ],
22
+ nestedFieldKeywords: ["metadata"],
23
+ wildcardNestedFieldKeywords: ["metadata"],
24
+ error: parseSharedError
25
+ });
26
+ if (!declaration.title) throw parseError(declaration.idToken.line, "Expected surface id \"Title\" {", declaration.idToken.column);
27
+ const surface = {
28
+ id: declaration.id,
29
+ title: declaration.title,
30
+ kind: "auto-surface"
31
+ };
32
+ for (const field of declaration.fields) {
33
+ if (field.name.value === "title") {
34
+ surface.title = parseStringField(field, "Expected title \"<text>\"");
35
+ continue;
36
+ }
37
+ if (field.name.value === "kind") {
38
+ surface.kind = parseIdentifierField(field, "kind");
39
+ continue;
40
+ }
41
+ if (field.name.value === "module") {
42
+ surface.module = parseIdentifierField(field, "module");
43
+ continue;
44
+ }
45
+ if (field.name.value === "projector") {
46
+ surface.projector = parseIdentifierField(field, "projector");
47
+ continue;
48
+ }
49
+ if (field.name.value === "definition-root") {
50
+ surface.definitionRoot = parseStringField(field, "Expected definition-root \"<path>\"");
51
+ continue;
52
+ }
53
+ if (field.name.value === "value-root") {
54
+ const layer = field.values[0];
55
+ const root = field.values[1];
56
+ if (field.values.length !== 2 || layer?.type !== "word" || ![
57
+ "system",
58
+ "package",
59
+ "instance",
60
+ "user"
61
+ ].includes(layer.value) || root?.type !== "string") throw parseError(field.name.line, "Expected value-root system|package|instance|user \"<path>\"", field.name.column);
62
+ surface.valueRoots ??= {};
63
+ surface.valueRoots[layer.value] = require_dsl_shared.parseDslStringToken(root, parseSharedError);
64
+ continue;
65
+ }
66
+ if (field.name.value === "scope") {
67
+ surface.scope = parseIdentifierField(field, "scope");
68
+ continue;
69
+ }
70
+ if (field.name.value === "order") {
71
+ surface.order = parseNumberField(field, "order");
72
+ continue;
73
+ }
74
+ if (field.name.value === "metadata") applyMetadataField(surface, field);
75
+ }
76
+ return surface;
77
+ }
78
+ function formatSurfaceDsl(source) {
79
+ const surface = compileSurfaceDsl(source);
80
+ const lines = [`surface ${surface.id} ${quote(surface.title ?? surface.id)} {`];
81
+ lines.push(` kind ${surface.kind}`);
82
+ if (surface.module) lines.push(` module ${surface.module}`);
83
+ if (surface.projector) lines.push(` projector ${surface.projector}`);
84
+ if (surface.definitionRoot) lines.push(` definition-root ${quote(surface.definitionRoot)}`);
85
+ for (const layer of [
86
+ "system",
87
+ "package",
88
+ "instance",
89
+ "user"
90
+ ]) {
91
+ const root = surface.valueRoots?.[layer];
92
+ if (root) lines.push(` value-root ${layer} ${quote(root)}`);
93
+ }
94
+ if (surface.scope) lines.push(` scope ${surface.scope}`);
95
+ if (surface.order !== void 0) lines.push(` order ${surface.order}`);
96
+ pushMetadataLines(lines, surface.metadata);
97
+ lines.push("}");
98
+ return `${lines.join("\n")}\n`;
99
+ }
100
+ function pushMetadataLines(lines, metadata) {
101
+ const entries = Object.entries(metadata ?? {});
102
+ if (entries.length === 0) return;
103
+ if (entries.length === 1) {
104
+ const [key, value] = entries[0];
105
+ lines.push(` metadata ${key} ${formatMetadataValue(value)}`);
106
+ return;
107
+ }
108
+ lines.push(" metadata {");
109
+ for (const [key, value] of entries) lines.push(` ${key} ${formatMetadataValue(value)}`);
110
+ lines.push(" }");
111
+ }
112
+ function applyMetadataField(surface, field) {
113
+ surface.metadata ??= {};
114
+ if (field.children) {
115
+ if (field.values.length > 0) throw parseError(field.name.line, "Expected metadata { ... }", field.name.column);
116
+ for (const child of field.children) surface.metadata[child.name.value] = parseMetadataValue(joinDslValues(child.values), child.name.line);
117
+ return;
118
+ }
119
+ const key = field.values[0];
120
+ if (key?.type !== "word" || field.values.length < 2) throw parseError(field.name.line, "Expected metadata <key> <value>", field.name.column);
121
+ surface.metadata[key.value] = parseMetadataValue(joinDslValues(field.values.slice(1)), field.name.line);
122
+ }
123
+ function parseMetadataValue(input, lineNumber) {
124
+ const string = input.match(/* @__PURE__ */ new RegExp(`^${STRING}$`));
125
+ if (string) return unescapeString(string[1] ?? "");
126
+ if (input === "true") return true;
127
+ if (input === "false") return false;
128
+ if (/^-?\d+(?:\.\d+)?$/.test(input)) return Number(input);
129
+ if (input.startsWith("[")) try {
130
+ return JSON.parse(input);
131
+ } catch (err) {
132
+ throw parseError(lineNumber, `Invalid metadata array: ${err instanceof Error ? err.message : String(err)}`);
133
+ }
134
+ throw parseError(lineNumber, `Unsupported metadata value: ${input}`);
135
+ }
136
+ function parseSharedError(message, line, column = 1) {
137
+ return parseError(line, message, column);
138
+ }
139
+ function parseIdentifierField(field, name) {
140
+ const value = field.values[0];
141
+ if (field.values.length !== 1 || value?.type !== "word" || !/^[A-Za-z0-9_-]+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <identifier>`, value?.column ?? field.name.column);
142
+ return value.value;
143
+ }
144
+ function parseNumberField(field, name) {
145
+ const value = field.values[0];
146
+ if (field.values.length !== 1 || value?.type !== "word" || !/^\d+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <number>`, value?.column ?? field.name.column);
147
+ return Number(value.value);
148
+ }
149
+ function parseStringField(field, message) {
150
+ const value = field.values[0];
151
+ if (field.values.length !== 1 || value?.type !== "string") throw parseError(value?.line ?? field.name.line, message, value?.column ?? field.name.column);
152
+ return require_dsl_shared.parseDslStringToken(value, parseSharedError);
153
+ }
154
+ function joinDslValues(tokens) {
155
+ return tokens.map((token) => token.value).join(" ");
156
+ }
157
+ function formatMetadataValue(value) {
158
+ if (typeof value === "string") return quote(value);
159
+ if (typeof value === "boolean" || typeof value === "number") return String(value);
160
+ return formatInlineJson(value);
161
+ }
162
+ function unescapeString(value) {
163
+ return value.replace(/\\"/g, "\"").replace(/\\\\/g, "\\");
164
+ }
165
+ function quote(value) {
166
+ return JSON.stringify(value);
167
+ }
168
+ function isRecord(value) {
169
+ return typeof value === "object" && value !== null && !Array.isArray(value);
170
+ }
171
+ function formatInlineJson(value) {
172
+ if (Array.isArray(value)) return `[${value.map(formatInlineJson).join(", ")}]`;
173
+ if (isRecord(value)) return `{${Object.entries(value).map(([key, entry]) => `${quote(key)}: ${formatInlineJson(entry)}`).join(", ")}}`;
174
+ return JSON.stringify(value);
175
+ }
176
+ function parseError(line, message, column = 1) {
177
+ return require_dsl_error.scaffoldDslParseError("surface", line, message, column);
178
+ }
179
+
180
+ //#endregion
181
+ exports.compileSurfaceDsl = compileSurfaceDsl;
182
+ exports.formatSurfaceDsl = formatSurfaceDsl;
@@ -0,0 +1,8 @@
1
+ import { ScaffoldSurfaceDefinition } from "./types.cjs";
2
+
3
+ //#region src/scaffold/surface-dsl.d.ts
4
+ declare function compileSurfaceDsl(source: string): ScaffoldSurfaceDefinition;
5
+ declare function formatSurfaceDsl(source: string): string;
6
+ //#endregion
7
+ export { compileSurfaceDsl, formatSurfaceDsl };
8
+ //# sourceMappingURL=surface-dsl.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-dsl.d.cts","names":[],"sources":["../../src/scaffold/surface-dsl.ts"],"mappings":";;;iBAYgB,iBAAA,CAAkB,MAAA,WAAiB,yBAAA;AAAA,iBAiGnC,gBAAA,CAAiB,MAAA"}
@@ -0,0 +1,8 @@
1
+ import { ScaffoldSurfaceDefinition } from "./types.mjs";
2
+
3
+ //#region src/scaffold/surface-dsl.d.ts
4
+ declare function compileSurfaceDsl(source: string): ScaffoldSurfaceDefinition;
5
+ declare function formatSurfaceDsl(source: string): string;
6
+ //#endregion
7
+ export { compileSurfaceDsl, formatSurfaceDsl };
8
+ //# sourceMappingURL=surface-dsl.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-dsl.d.mts","names":[],"sources":["../../src/scaffold/surface-dsl.ts"],"mappings":";;;iBAYgB,iBAAA,CAAkB,MAAA,WAAiB,yBAAA;AAAA,iBAiGnC,gBAAA,CAAiB,MAAA"}
@@ -0,0 +1,182 @@
1
+ import { parseDeclaration, parseDslStringToken } from "../dsl-shared.mjs";
2
+ import { scaffoldDslParseError } from "./dsl-error.mjs";
3
+
4
+ //#region src/scaffold/surface-dsl.ts
5
+ const STRING = "\"((?:[^\"\\\\]|\\\\.)*)\"";
6
+ function compileSurfaceDsl(source) {
7
+ const declaration = parseDeclaration(source, {
8
+ kind: "surface",
9
+ allowQuotedTitle: true,
10
+ expected: "Expected surface id \"Title\" {",
11
+ fieldKeywords: [
12
+ "title",
13
+ "kind",
14
+ "module",
15
+ "projector",
16
+ "definition-root",
17
+ "value-root",
18
+ "scope",
19
+ "order",
20
+ "metadata"
21
+ ],
22
+ nestedFieldKeywords: ["metadata"],
23
+ wildcardNestedFieldKeywords: ["metadata"],
24
+ error: parseSharedError
25
+ });
26
+ if (!declaration.title) throw parseError(declaration.idToken.line, "Expected surface id \"Title\" {", declaration.idToken.column);
27
+ const surface = {
28
+ id: declaration.id,
29
+ title: declaration.title,
30
+ kind: "auto-surface"
31
+ };
32
+ for (const field of declaration.fields) {
33
+ if (field.name.value === "title") {
34
+ surface.title = parseStringField(field, "Expected title \"<text>\"");
35
+ continue;
36
+ }
37
+ if (field.name.value === "kind") {
38
+ surface.kind = parseIdentifierField(field, "kind");
39
+ continue;
40
+ }
41
+ if (field.name.value === "module") {
42
+ surface.module = parseIdentifierField(field, "module");
43
+ continue;
44
+ }
45
+ if (field.name.value === "projector") {
46
+ surface.projector = parseIdentifierField(field, "projector");
47
+ continue;
48
+ }
49
+ if (field.name.value === "definition-root") {
50
+ surface.definitionRoot = parseStringField(field, "Expected definition-root \"<path>\"");
51
+ continue;
52
+ }
53
+ if (field.name.value === "value-root") {
54
+ const layer = field.values[0];
55
+ const root = field.values[1];
56
+ if (field.values.length !== 2 || layer?.type !== "word" || ![
57
+ "system",
58
+ "package",
59
+ "instance",
60
+ "user"
61
+ ].includes(layer.value) || root?.type !== "string") throw parseError(field.name.line, "Expected value-root system|package|instance|user \"<path>\"", field.name.column);
62
+ surface.valueRoots ??= {};
63
+ surface.valueRoots[layer.value] = parseDslStringToken(root, parseSharedError);
64
+ continue;
65
+ }
66
+ if (field.name.value === "scope") {
67
+ surface.scope = parseIdentifierField(field, "scope");
68
+ continue;
69
+ }
70
+ if (field.name.value === "order") {
71
+ surface.order = parseNumberField(field, "order");
72
+ continue;
73
+ }
74
+ if (field.name.value === "metadata") applyMetadataField(surface, field);
75
+ }
76
+ return surface;
77
+ }
78
+ function formatSurfaceDsl(source) {
79
+ const surface = compileSurfaceDsl(source);
80
+ const lines = [`surface ${surface.id} ${quote(surface.title ?? surface.id)} {`];
81
+ lines.push(` kind ${surface.kind}`);
82
+ if (surface.module) lines.push(` module ${surface.module}`);
83
+ if (surface.projector) lines.push(` projector ${surface.projector}`);
84
+ if (surface.definitionRoot) lines.push(` definition-root ${quote(surface.definitionRoot)}`);
85
+ for (const layer of [
86
+ "system",
87
+ "package",
88
+ "instance",
89
+ "user"
90
+ ]) {
91
+ const root = surface.valueRoots?.[layer];
92
+ if (root) lines.push(` value-root ${layer} ${quote(root)}`);
93
+ }
94
+ if (surface.scope) lines.push(` scope ${surface.scope}`);
95
+ if (surface.order !== void 0) lines.push(` order ${surface.order}`);
96
+ pushMetadataLines(lines, surface.metadata);
97
+ lines.push("}");
98
+ return `${lines.join("\n")}\n`;
99
+ }
100
+ function pushMetadataLines(lines, metadata) {
101
+ const entries = Object.entries(metadata ?? {});
102
+ if (entries.length === 0) return;
103
+ if (entries.length === 1) {
104
+ const [key, value] = entries[0];
105
+ lines.push(` metadata ${key} ${formatMetadataValue(value)}`);
106
+ return;
107
+ }
108
+ lines.push(" metadata {");
109
+ for (const [key, value] of entries) lines.push(` ${key} ${formatMetadataValue(value)}`);
110
+ lines.push(" }");
111
+ }
112
+ function applyMetadataField(surface, field) {
113
+ surface.metadata ??= {};
114
+ if (field.children) {
115
+ if (field.values.length > 0) throw parseError(field.name.line, "Expected metadata { ... }", field.name.column);
116
+ for (const child of field.children) surface.metadata[child.name.value] = parseMetadataValue(joinDslValues(child.values), child.name.line);
117
+ return;
118
+ }
119
+ const key = field.values[0];
120
+ if (key?.type !== "word" || field.values.length < 2) throw parseError(field.name.line, "Expected metadata <key> <value>", field.name.column);
121
+ surface.metadata[key.value] = parseMetadataValue(joinDslValues(field.values.slice(1)), field.name.line);
122
+ }
123
+ function parseMetadataValue(input, lineNumber) {
124
+ const string = input.match(/* @__PURE__ */ new RegExp(`^${STRING}$`));
125
+ if (string) return unescapeString(string[1] ?? "");
126
+ if (input === "true") return true;
127
+ if (input === "false") return false;
128
+ if (/^-?\d+(?:\.\d+)?$/.test(input)) return Number(input);
129
+ if (input.startsWith("[")) try {
130
+ return JSON.parse(input);
131
+ } catch (err) {
132
+ throw parseError(lineNumber, `Invalid metadata array: ${err instanceof Error ? err.message : String(err)}`);
133
+ }
134
+ throw parseError(lineNumber, `Unsupported metadata value: ${input}`);
135
+ }
136
+ function parseSharedError(message, line, column = 1) {
137
+ return parseError(line, message, column);
138
+ }
139
+ function parseIdentifierField(field, name) {
140
+ const value = field.values[0];
141
+ if (field.values.length !== 1 || value?.type !== "word" || !/^[A-Za-z0-9_-]+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <identifier>`, value?.column ?? field.name.column);
142
+ return value.value;
143
+ }
144
+ function parseNumberField(field, name) {
145
+ const value = field.values[0];
146
+ if (field.values.length !== 1 || value?.type !== "word" || !/^\d+$/.test(value.value)) throw parseError(value?.line ?? field.name.line, `Expected ${name} <number>`, value?.column ?? field.name.column);
147
+ return Number(value.value);
148
+ }
149
+ function parseStringField(field, message) {
150
+ const value = field.values[0];
151
+ if (field.values.length !== 1 || value?.type !== "string") throw parseError(value?.line ?? field.name.line, message, value?.column ?? field.name.column);
152
+ return parseDslStringToken(value, parseSharedError);
153
+ }
154
+ function joinDslValues(tokens) {
155
+ return tokens.map((token) => token.value).join(" ");
156
+ }
157
+ function formatMetadataValue(value) {
158
+ if (typeof value === "string") return quote(value);
159
+ if (typeof value === "boolean" || typeof value === "number") return String(value);
160
+ return formatInlineJson(value);
161
+ }
162
+ function unescapeString(value) {
163
+ return value.replace(/\\"/g, "\"").replace(/\\\\/g, "\\");
164
+ }
165
+ function quote(value) {
166
+ return JSON.stringify(value);
167
+ }
168
+ function isRecord(value) {
169
+ return typeof value === "object" && value !== null && !Array.isArray(value);
170
+ }
171
+ function formatInlineJson(value) {
172
+ if (Array.isArray(value)) return `[${value.map(formatInlineJson).join(", ")}]`;
173
+ if (isRecord(value)) return `{${Object.entries(value).map(([key, entry]) => `${quote(key)}: ${formatInlineJson(entry)}`).join(", ")}}`;
174
+ return JSON.stringify(value);
175
+ }
176
+ function parseError(line, message, column = 1) {
177
+ return scaffoldDslParseError("surface", line, message, column);
178
+ }
179
+
180
+ //#endregion
181
+ export { compileSurfaceDsl, formatSurfaceDsl };
182
+ //# sourceMappingURL=surface-dsl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-dsl.mjs","names":[],"sources":["../../src/scaffold/surface-dsl.ts"],"sourcesContent":["import type { AutoSurfaceLayer } from \"../auto-surface/index.js\";\nimport {\n type DslField,\n type DslToken,\n parseDeclaration,\n parseDslStringToken,\n} from \"../dsl-shared.js\";\nimport { scaffoldDslParseError } from \"./dsl-error.js\";\nimport type { ScaffoldSurfaceDefinition } from \"./types.js\";\n\nconst STRING = '\"((?:[^\"\\\\\\\\]|\\\\\\\\.)*)\"';\n\nexport function compileSurfaceDsl(source: string): ScaffoldSurfaceDefinition {\n const declaration = parseDeclaration(source, {\n kind: \"surface\",\n allowQuotedTitle: true,\n expected: 'Expected surface id \"Title\" {',\n fieldKeywords: [\n \"title\",\n \"kind\",\n \"module\",\n \"projector\",\n \"definition-root\",\n \"value-root\",\n \"scope\",\n \"order\",\n \"metadata\",\n ],\n nestedFieldKeywords: [\"metadata\"],\n wildcardNestedFieldKeywords: [\"metadata\"],\n error: parseSharedError,\n });\n\n if (!declaration.title) {\n throw parseError(\n declaration.idToken.line,\n 'Expected surface id \"Title\" {',\n declaration.idToken.column,\n );\n }\n\n const surface: ScaffoldSurfaceDefinition = {\n id: declaration.id,\n title: declaration.title,\n kind: \"auto-surface\",\n };\n\n for (const field of declaration.fields) {\n if (field.name.value === \"title\") {\n surface.title = parseStringField(field, 'Expected title \"<text>\"');\n continue;\n }\n if (field.name.value === \"kind\") {\n surface.kind = parseIdentifierField(field, \"kind\");\n continue;\n }\n if (field.name.value === \"module\") {\n surface.module = parseIdentifierField(field, \"module\");\n continue;\n }\n if (field.name.value === \"projector\") {\n surface.projector = parseIdentifierField(\n field,\n \"projector\",\n ) as ScaffoldSurfaceDefinition[\"projector\"];\n continue;\n }\n if (field.name.value === \"definition-root\") {\n surface.definitionRoot = parseStringField(field, 'Expected definition-root \"<path>\"');\n continue;\n }\n if (field.name.value === \"value-root\") {\n const layer = field.values[0];\n const root = field.values[1];\n if (\n field.values.length !== 2 ||\n layer?.type !== \"word\" ||\n ![\"system\", \"package\", \"instance\", \"user\"].includes(layer.value) ||\n root?.type !== \"string\"\n ) {\n throw parseError(\n field.name.line,\n 'Expected value-root system|package|instance|user \"<path>\"',\n field.name.column,\n );\n }\n surface.valueRoots ??= {};\n surface.valueRoots[layer.value as AutoSurfaceLayer] = parseDslStringToken(\n root,\n parseSharedError,\n );\n continue;\n }\n if (field.name.value === \"scope\") {\n surface.scope = parseIdentifierField(field, \"scope\") as ScaffoldSurfaceDefinition[\"scope\"];\n continue;\n }\n if (field.name.value === \"order\") {\n surface.order = parseNumberField(field, \"order\");\n continue;\n }\n if (field.name.value === \"metadata\") {\n applyMetadataField(surface, field);\n }\n }\n\n return surface;\n}\n\nexport function formatSurfaceDsl(source: string): string {\n const surface = compileSurfaceDsl(source);\n const lines = [`surface ${surface.id} ${quote(surface.title ?? surface.id)} {`];\n lines.push(` kind ${surface.kind}`);\n if (surface.module) lines.push(` module ${surface.module}`);\n if (surface.projector) lines.push(` projector ${surface.projector}`);\n if (surface.definitionRoot) lines.push(` definition-root ${quote(surface.definitionRoot)}`);\n for (const layer of [\"system\", \"package\", \"instance\", \"user\"] as const) {\n const root = surface.valueRoots?.[layer];\n if (root) lines.push(` value-root ${layer} ${quote(root)}`);\n }\n if (surface.scope) lines.push(` scope ${surface.scope}`);\n if (surface.order !== undefined) lines.push(` order ${surface.order}`);\n pushMetadataLines(lines, surface.metadata);\n lines.push(\"}\");\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nfunction pushMetadataLines(lines: string[], metadata: Record<string, unknown> | undefined): void {\n const entries = Object.entries(metadata ?? {});\n if (entries.length === 0) return;\n if (entries.length === 1) {\n const [key, value] = entries[0]!;\n lines.push(` metadata ${key} ${formatMetadataValue(value)}`);\n return;\n }\n lines.push(\" metadata {\");\n for (const [key, value] of entries) {\n lines.push(` ${key} ${formatMetadataValue(value)}`);\n }\n lines.push(\" }\");\n}\n\nfunction applyMetadataField(surface: ScaffoldSurfaceDefinition, field: DslField): void {\n surface.metadata ??= {};\n if (field.children) {\n if (field.values.length > 0) {\n throw parseError(field.name.line, \"Expected metadata { ... }\", field.name.column);\n }\n for (const child of field.children) {\n surface.metadata[child.name.value] = parseMetadataValue(\n joinDslValues(child.values),\n child.name.line,\n );\n }\n return;\n }\n\n const key = field.values[0];\n if (key?.type !== \"word\" || field.values.length < 2) {\n throw parseError(field.name.line, \"Expected metadata <key> <value>\", field.name.column);\n }\n surface.metadata[key.value] = parseMetadataValue(\n joinDslValues(field.values.slice(1)),\n field.name.line,\n );\n}\n\nfunction parseMetadataValue(input: string, lineNumber: number): unknown {\n const string = input.match(new RegExp(`^${STRING}$`));\n if (string) return unescapeString(string[1] ?? \"\");\n if (input === \"true\") return true;\n if (input === \"false\") return false;\n if (/^-?\\d+(?:\\.\\d+)?$/.test(input)) return Number(input);\n if (input.startsWith(\"[\")) {\n try {\n return JSON.parse(input);\n } catch (err) {\n throw parseError(\n lineNumber,\n `Invalid metadata array: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n throw parseError(lineNumber, `Unsupported metadata value: ${input}`);\n}\n\nfunction parseSharedError(message: string, line: number, column = 1): Error {\n return parseError(line, message, column);\n}\n\nfunction parseIdentifierField(field: DslField, name: string): string {\n const value = field.values[0];\n if (\n field.values.length !== 1 ||\n value?.type !== \"word\" ||\n !/^[A-Za-z0-9_-]+$/.test(value.value)\n ) {\n throw parseError(\n value?.line ?? field.name.line,\n `Expected ${name} <identifier>`,\n value?.column ?? field.name.column,\n );\n }\n return value.value;\n}\n\nfunction parseNumberField(field: DslField, name: string): number {\n const value = field.values[0];\n if (field.values.length !== 1 || value?.type !== \"word\" || !/^\\d+$/.test(value.value)) {\n throw parseError(\n value?.line ?? field.name.line,\n `Expected ${name} <number>`,\n value?.column ?? field.name.column,\n );\n }\n return Number(value.value);\n}\n\nfunction parseStringField(field: DslField, message: string): string {\n const value = field.values[0];\n if (field.values.length !== 1 || value?.type !== \"string\") {\n throw parseError(value?.line ?? field.name.line, message, value?.column ?? field.name.column);\n }\n return parseDslStringToken(value, parseSharedError);\n}\n\nfunction joinDslValues(tokens: DslToken[]): string {\n return tokens.map((token) => token.value).join(\" \");\n}\n\nfunction formatMetadataValue(value: unknown): string {\n if (typeof value === \"string\") return quote(value);\n if (typeof value === \"boolean\" || typeof value === \"number\") return String(value);\n return formatInlineJson(value);\n}\n\nfunction unescapeString(value: string): string {\n return value.replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, \"\\\\\");\n}\n\nfunction quote(value: string): string {\n return JSON.stringify(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction formatInlineJson(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(formatInlineJson).join(\", \")}]`;\n if (isRecord(value)) {\n return `{${Object.entries(value)\n .map(([key, entry]) => `${quote(key)}: ${formatInlineJson(entry)}`)\n .join(\", \")}}`;\n }\n return JSON.stringify(value);\n}\n\nfunction parseError(line: number, message: string, column = 1): Error {\n return scaffoldDslParseError(\"surface\", line, message, column);\n}\n"],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ const require_fragments = require('../auto-surface/fragments.cjs');
2
+ const require_projection = require('../auto-surface/projection.cjs');
3
+ const require_scenario = require('../auto-surface/scenario.cjs');
4
+
5
+ //#region src/scaffold/surfaces.ts
6
+ async function resolveScaffoldSurfaces(scaffold, options) {
7
+ const diagnostics = [];
8
+ const surfaces = {};
9
+ for (const definition of scaffold.definition.surfaces) {
10
+ if (definition.kind !== "auto-surface") {
11
+ diagnostics.push({
12
+ code: "unsupported_surface_kind",
13
+ severity: "warning",
14
+ surfaceId: definition.id,
15
+ message: `Surface "${definition.id}" uses unsupported kind "${definition.kind}"`
16
+ });
17
+ continue;
18
+ }
19
+ try {
20
+ const resolved = await resolveAutoSurfaceScaffoldSurface(definition, options);
21
+ surfaces[definition.id] = resolved;
22
+ } catch (error) {
23
+ diagnostics.push({
24
+ code: "surface_resolve_error",
25
+ severity: "error",
26
+ surfaceId: definition.id,
27
+ message: error instanceof Error ? error.message : String(error)
28
+ });
29
+ }
30
+ }
31
+ return {
32
+ surfaces,
33
+ diagnostics
34
+ };
35
+ }
36
+ async function resolveScaffoldSurface(scaffold, surfaceId, options) {
37
+ const surface = scaffold.surfacesById[surfaceId];
38
+ if (!surface) return void 0;
39
+ if (surface.kind !== "auto-surface") return void 0;
40
+ return resolveAutoSurfaceScaffoldSurface(surface, options);
41
+ }
42
+ async function resolveAutoSurfaceScaffoldSurface(surface, options) {
43
+ const scenario = await buildAutoSurfaceScenario(surface, options);
44
+ return {
45
+ kind: "auto-surface",
46
+ definition: surface,
47
+ scenario,
48
+ projection: require_projection.projectAutoSurface(scenario.resolved, {
49
+ projector: surface.projector ?? options.autoSurface?.defaultProjector ?? "settings-shell",
50
+ scope: surface.scope ?? options.autoSurface?.defaultScope
51
+ })
52
+ };
53
+ }
54
+ async function buildAutoSurfaceScenario(surface, options) {
55
+ const definitions = [];
56
+ if (options.autoSurface?.systemDefinitionRoot) definitions.push({
57
+ source: options.autoSurface.systemDefinitionSource ?? "arc://system",
58
+ owner: "system",
59
+ reader: options.afs,
60
+ root: options.autoSurface.systemDefinitionRoot
61
+ });
62
+ definitions.push({
63
+ source: options.autoSurface?.packageDefinitionSource ?? "blocklet://package",
64
+ owner: "package",
65
+ reader: options.afs,
66
+ root: surface.definitionRoot ?? options.autoSurface?.packageDefinitionRoot ?? require_fragments.DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT
67
+ });
68
+ const valueRoots = {
69
+ ...options.autoSurface?.valueRoots ?? {},
70
+ ...surface.valueRoots ?? {}
71
+ };
72
+ return require_scenario.resolveAutoSurfaceScenario({
73
+ definitions,
74
+ values: Object.entries(valueRoots).filter(([, root]) => typeof root === "string" && root.length > 0).map(([layer, root]) => ({
75
+ layer,
76
+ reader: options.afs,
77
+ root
78
+ }))
79
+ });
80
+ }
81
+
82
+ //#endregion
83
+ exports.resolveScaffoldSurface = resolveScaffoldSurface;
84
+ exports.resolveScaffoldSurfaces = resolveScaffoldSurfaces;
@@ -0,0 +1,23 @@
1
+ import { AutoSurfaceLayer, AutoSurfaceProjectorName } from "../auto-surface/types.cjs";
2
+ import { ResolvedScaffoldDefinition, ResolvedScaffoldSurface, ResolvedScaffoldSurfaces } from "./types.cjs";
3
+ import { ScaffoldAfsReader } from "./afs.cjs";
4
+
5
+ //#region src/scaffold/surfaces.d.ts
6
+ interface ResolveScaffoldAutoSurfaceOptions {
7
+ systemDefinitionRoot?: string;
8
+ systemDefinitionSource?: string;
9
+ packageDefinitionRoot?: string;
10
+ packageDefinitionSource?: string;
11
+ valueRoots?: Partial<Record<AutoSurfaceLayer, string>>;
12
+ defaultProjector?: AutoSurfaceProjectorName;
13
+ defaultScope?: AutoSurfaceLayer | "all";
14
+ }
15
+ interface ResolveScaffoldSurfacesOptions {
16
+ afs: ScaffoldAfsReader;
17
+ autoSurface?: ResolveScaffoldAutoSurfaceOptions;
18
+ }
19
+ declare function resolveScaffoldSurfaces(scaffold: ResolvedScaffoldDefinition, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurfaces>;
20
+ declare function resolveScaffoldSurface(scaffold: ResolvedScaffoldDefinition, surfaceId: string, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurface | undefined>;
21
+ //#endregion
22
+ export { ResolveScaffoldAutoSurfaceOptions, ResolveScaffoldSurfacesOptions, resolveScaffoldSurface, resolveScaffoldSurfaces };
23
+ //# sourceMappingURL=surfaces.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surfaces.d.cts","names":[],"sources":["../../src/scaffold/surfaces.ts"],"mappings":";;;;;UAkBiB,iCAAA;EACf,oBAAA;EACA,sBAAA;EACA,qBAAA;EACA,uBAAA;EACA,UAAA,GAAa,OAAA,CAAQ,MAAA,CAAO,gBAAA;EAC5B,gBAAA,GAAmB,wBAAA;EACnB,YAAA,GAAe,gBAAA;AAAA;AAAA,UAGA,8BAAA;EACf,GAAA,EAAK,iBAAA;EACL,WAAA,GAAc,iCAAA;AAAA;AAAA,iBAGM,uBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,wBAAA;AAAA,iBA+BW,sBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,SAAA,UACA,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,uBAAA"}
@@ -0,0 +1,24 @@
1
+ import { AutoSurfaceLayer, AutoSurfaceProjectorName } from "../auto-surface/types.mjs";
2
+ import "../auto-surface/index.mjs";
3
+ import { ResolvedScaffoldDefinition, ResolvedScaffoldSurface, ResolvedScaffoldSurfaces } from "./types.mjs";
4
+ import { ScaffoldAfsReader } from "./afs.mjs";
5
+
6
+ //#region src/scaffold/surfaces.d.ts
7
+ interface ResolveScaffoldAutoSurfaceOptions {
8
+ systemDefinitionRoot?: string;
9
+ systemDefinitionSource?: string;
10
+ packageDefinitionRoot?: string;
11
+ packageDefinitionSource?: string;
12
+ valueRoots?: Partial<Record<AutoSurfaceLayer, string>>;
13
+ defaultProjector?: AutoSurfaceProjectorName;
14
+ defaultScope?: AutoSurfaceLayer | "all";
15
+ }
16
+ interface ResolveScaffoldSurfacesOptions {
17
+ afs: ScaffoldAfsReader;
18
+ autoSurface?: ResolveScaffoldAutoSurfaceOptions;
19
+ }
20
+ declare function resolveScaffoldSurfaces(scaffold: ResolvedScaffoldDefinition, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurfaces>;
21
+ declare function resolveScaffoldSurface(scaffold: ResolvedScaffoldDefinition, surfaceId: string, options: ResolveScaffoldSurfacesOptions): Promise<ResolvedScaffoldSurface | undefined>;
22
+ //#endregion
23
+ export { ResolveScaffoldAutoSurfaceOptions, ResolveScaffoldSurfacesOptions, resolveScaffoldSurface, resolveScaffoldSurfaces };
24
+ //# sourceMappingURL=surfaces.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surfaces.d.mts","names":[],"sources":["../../src/scaffold/surfaces.ts"],"mappings":";;;;;;UAkBiB,iCAAA;EACf,oBAAA;EACA,sBAAA;EACA,qBAAA;EACA,uBAAA;EACA,UAAA,GAAa,OAAA,CAAQ,MAAA,CAAO,gBAAA;EAC5B,gBAAA,GAAmB,wBAAA;EACnB,YAAA,GAAe,gBAAA;AAAA;AAAA,UAGA,8BAAA;EACf,GAAA,EAAK,iBAAA;EACL,WAAA,GAAc,iCAAA;AAAA;AAAA,iBAGM,uBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,wBAAA;AAAA,iBA+BW,sBAAA,CACpB,QAAA,EAAU,0BAAA,EACV,SAAA,UACA,OAAA,EAAS,8BAAA,GACR,OAAA,CAAQ,uBAAA"}
@@ -0,0 +1,84 @@
1
+ import { DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT } from "../auto-surface/fragments.mjs";
2
+ import { projectAutoSurface } from "../auto-surface/projection.mjs";
3
+ import { resolveAutoSurfaceScenario } from "../auto-surface/scenario.mjs";
4
+
5
+ //#region src/scaffold/surfaces.ts
6
+ async function resolveScaffoldSurfaces(scaffold, options) {
7
+ const diagnostics = [];
8
+ const surfaces = {};
9
+ for (const definition of scaffold.definition.surfaces) {
10
+ if (definition.kind !== "auto-surface") {
11
+ diagnostics.push({
12
+ code: "unsupported_surface_kind",
13
+ severity: "warning",
14
+ surfaceId: definition.id,
15
+ message: `Surface "${definition.id}" uses unsupported kind "${definition.kind}"`
16
+ });
17
+ continue;
18
+ }
19
+ try {
20
+ const resolved = await resolveAutoSurfaceScaffoldSurface(definition, options);
21
+ surfaces[definition.id] = resolved;
22
+ } catch (error) {
23
+ diagnostics.push({
24
+ code: "surface_resolve_error",
25
+ severity: "error",
26
+ surfaceId: definition.id,
27
+ message: error instanceof Error ? error.message : String(error)
28
+ });
29
+ }
30
+ }
31
+ return {
32
+ surfaces,
33
+ diagnostics
34
+ };
35
+ }
36
+ async function resolveScaffoldSurface(scaffold, surfaceId, options) {
37
+ const surface = scaffold.surfacesById[surfaceId];
38
+ if (!surface) return void 0;
39
+ if (surface.kind !== "auto-surface") return void 0;
40
+ return resolveAutoSurfaceScaffoldSurface(surface, options);
41
+ }
42
+ async function resolveAutoSurfaceScaffoldSurface(surface, options) {
43
+ const scenario = await buildAutoSurfaceScenario(surface, options);
44
+ return {
45
+ kind: "auto-surface",
46
+ definition: surface,
47
+ scenario,
48
+ projection: projectAutoSurface(scenario.resolved, {
49
+ projector: surface.projector ?? options.autoSurface?.defaultProjector ?? "settings-shell",
50
+ scope: surface.scope ?? options.autoSurface?.defaultScope
51
+ })
52
+ };
53
+ }
54
+ async function buildAutoSurfaceScenario(surface, options) {
55
+ const definitions = [];
56
+ if (options.autoSurface?.systemDefinitionRoot) definitions.push({
57
+ source: options.autoSurface.systemDefinitionSource ?? "arc://system",
58
+ owner: "system",
59
+ reader: options.afs,
60
+ root: options.autoSurface.systemDefinitionRoot
61
+ });
62
+ definitions.push({
63
+ source: options.autoSurface?.packageDefinitionSource ?? "blocklet://package",
64
+ owner: "package",
65
+ reader: options.afs,
66
+ root: surface.definitionRoot ?? options.autoSurface?.packageDefinitionRoot ?? DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT
67
+ });
68
+ const valueRoots = {
69
+ ...options.autoSurface?.valueRoots ?? {},
70
+ ...surface.valueRoots ?? {}
71
+ };
72
+ return resolveAutoSurfaceScenario({
73
+ definitions,
74
+ values: Object.entries(valueRoots).filter(([, root]) => typeof root === "string" && root.length > 0).map(([layer, root]) => ({
75
+ layer,
76
+ reader: options.afs,
77
+ root
78
+ }))
79
+ });
80
+ }
81
+
82
+ //#endregion
83
+ export { resolveScaffoldSurface, resolveScaffoldSurfaces };
84
+ //# sourceMappingURL=surfaces.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surfaces.mjs","names":[],"sources":["../../src/scaffold/surfaces.ts"],"sourcesContent":["import {\n type AutoSurfaceLayer,\n type AutoSurfaceProjectorName,\n type AutoSurfaceResolvedScenario,\n DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT,\n projectAutoSurface,\n resolveAutoSurfaceScenario,\n} from \"../auto-surface/index.js\";\nimport type { ScaffoldAfsReader } from \"./afs.js\";\nimport type {\n ResolvedScaffoldAutoSurface,\n ResolvedScaffoldDefinition,\n ResolvedScaffoldSurface,\n ResolvedScaffoldSurfaces,\n ScaffoldSurfaceDefinition,\n ScaffoldSurfaceRuntimeDiagnostic,\n} from \"./types.js\";\n\nexport interface ResolveScaffoldAutoSurfaceOptions {\n systemDefinitionRoot?: string;\n systemDefinitionSource?: string;\n packageDefinitionRoot?: string;\n packageDefinitionSource?: string;\n valueRoots?: Partial<Record<AutoSurfaceLayer, string>>;\n defaultProjector?: AutoSurfaceProjectorName;\n defaultScope?: AutoSurfaceLayer | \"all\";\n}\n\nexport interface ResolveScaffoldSurfacesOptions {\n afs: ScaffoldAfsReader;\n autoSurface?: ResolveScaffoldAutoSurfaceOptions;\n}\n\nexport async function resolveScaffoldSurfaces(\n scaffold: ResolvedScaffoldDefinition,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<ResolvedScaffoldSurfaces> {\n const diagnostics: ScaffoldSurfaceRuntimeDiagnostic[] = [];\n const surfaces: Record<string, ResolvedScaffoldSurface> = {};\n\n for (const definition of scaffold.definition.surfaces) {\n if (definition.kind !== \"auto-surface\") {\n diagnostics.push({\n code: \"unsupported_surface_kind\",\n severity: \"warning\",\n surfaceId: definition.id,\n message: `Surface \"${definition.id}\" uses unsupported kind \"${definition.kind}\"`,\n });\n continue;\n }\n\n try {\n const resolved = await resolveAutoSurfaceScaffoldSurface(definition, options);\n surfaces[definition.id] = resolved;\n } catch (error) {\n diagnostics.push({\n code: \"surface_resolve_error\",\n severity: \"error\",\n surfaceId: definition.id,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return { surfaces, diagnostics };\n}\n\nexport async function resolveScaffoldSurface(\n scaffold: ResolvedScaffoldDefinition,\n surfaceId: string,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<ResolvedScaffoldSurface | undefined> {\n const surface = scaffold.surfacesById[surfaceId];\n if (!surface) return undefined;\n if (surface.kind !== \"auto-surface\") return undefined;\n return resolveAutoSurfaceScaffoldSurface(surface, options);\n}\n\nasync function resolveAutoSurfaceScaffoldSurface(\n surface: ScaffoldSurfaceDefinition,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<ResolvedScaffoldAutoSurface> {\n const scenario = await buildAutoSurfaceScenario(surface, options);\n return {\n kind: \"auto-surface\",\n definition: surface,\n scenario,\n projection: projectAutoSurface(scenario.resolved, {\n projector: surface.projector ?? options.autoSurface?.defaultProjector ?? \"settings-shell\",\n scope: surface.scope ?? options.autoSurface?.defaultScope,\n }),\n };\n}\n\nasync function buildAutoSurfaceScenario(\n surface: ScaffoldSurfaceDefinition,\n options: ResolveScaffoldSurfacesOptions,\n): Promise<AutoSurfaceResolvedScenario> {\n const definitions = [];\n if (options.autoSurface?.systemDefinitionRoot) {\n definitions.push({\n source: options.autoSurface.systemDefinitionSource ?? \"arc://system\",\n owner: \"system\" as const,\n reader: options.afs,\n root: options.autoSurface.systemDefinitionRoot,\n });\n }\n definitions.push({\n source: options.autoSurface?.packageDefinitionSource ?? \"blocklet://package\",\n owner: \"package\" as const,\n reader: options.afs,\n root:\n surface.definitionRoot ??\n options.autoSurface?.packageDefinitionRoot ??\n DEFAULT_AUTO_SURFACE_DEFINITIONS_ROOT,\n });\n\n const valueRoots = {\n ...(options.autoSurface?.valueRoots ?? {}),\n ...(surface.valueRoots ?? {}),\n };\n const values = Object.entries(valueRoots)\n .filter(([, root]) => typeof root === \"string\" && root.length > 0)\n .map(([layer, root]) => ({\n layer: layer as AutoSurfaceLayer,\n reader: options.afs,\n root,\n }));\n\n return resolveAutoSurfaceScenario({\n definitions,\n values,\n });\n}\n"],"mappings":";;;;;AAiCA,eAAsB,wBACpB,UACA,SACmC;CACnC,MAAM,cAAkD,EAAE;CAC1D,MAAM,WAAoD,EAAE;AAE5D,MAAK,MAAM,cAAc,SAAS,WAAW,UAAU;AACrD,MAAI,WAAW,SAAS,gBAAgB;AACtC,eAAY,KAAK;IACf,MAAM;IACN,UAAU;IACV,WAAW,WAAW;IACtB,SAAS,YAAY,WAAW,GAAG,2BAA2B,WAAW,KAAK;IAC/E,CAAC;AACF;;AAGF,MAAI;GACF,MAAM,WAAW,MAAM,kCAAkC,YAAY,QAAQ;AAC7E,YAAS,WAAW,MAAM;WACnB,OAAO;AACd,eAAY,KAAK;IACf,MAAM;IACN,UAAU;IACV,WAAW,WAAW;IACtB,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAChE,CAAC;;;AAIN,QAAO;EAAE;EAAU;EAAa;;AAGlC,eAAsB,uBACpB,UACA,WACA,SAC8C;CAC9C,MAAM,UAAU,SAAS,aAAa;AACtC,KAAI,CAAC,QAAS,QAAO;AACrB,KAAI,QAAQ,SAAS,eAAgB,QAAO;AAC5C,QAAO,kCAAkC,SAAS,QAAQ;;AAG5D,eAAe,kCACb,SACA,SACsC;CACtC,MAAM,WAAW,MAAM,yBAAyB,SAAS,QAAQ;AACjE,QAAO;EACL,MAAM;EACN,YAAY;EACZ;EACA,YAAY,mBAAmB,SAAS,UAAU;GAChD,WAAW,QAAQ,aAAa,QAAQ,aAAa,oBAAoB;GACzE,OAAO,QAAQ,SAAS,QAAQ,aAAa;GAC9C,CAAC;EACH;;AAGH,eAAe,yBACb,SACA,SACsC;CACtC,MAAM,cAAc,EAAE;AACtB,KAAI,QAAQ,aAAa,qBACvB,aAAY,KAAK;EACf,QAAQ,QAAQ,YAAY,0BAA0B;EACtD,OAAO;EACP,QAAQ,QAAQ;EAChB,MAAM,QAAQ,YAAY;EAC3B,CAAC;AAEJ,aAAY,KAAK;EACf,QAAQ,QAAQ,aAAa,2BAA2B;EACxD,OAAO;EACP,QAAQ,QAAQ;EAChB,MACE,QAAQ,kBACR,QAAQ,aAAa,yBACrB;EACH,CAAC;CAEF,MAAM,aAAa;EACjB,GAAI,QAAQ,aAAa,cAAc,EAAE;EACzC,GAAI,QAAQ,cAAc,EAAE;EAC7B;AASD,QAAO,2BAA2B;EAChC;EACA,QAVa,OAAO,QAAQ,WAAW,CACtC,QAAQ,GAAG,UAAU,OAAO,SAAS,YAAY,KAAK,SAAS,EAAE,CACjE,KAAK,CAAC,OAAO,WAAW;GAChB;GACP,QAAQ,QAAQ;GAChB;GACD,EAAE;EAKJ,CAAC"}