@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,339 @@
1
+ const require_dsl_shared = require('../dsl-shared.cjs');
2
+ const require_dsl_error = require('./dsl-error.cjs');
3
+
4
+ //#region src/scaffold/workspace-dsl.ts
5
+ const STRING = "\"((?:[^\"\\\\]|\\\\.)*)\"";
6
+ function pathHasTraversal(path) {
7
+ let decoded = path;
8
+ try {
9
+ decoded = decodeURIComponent(path);
10
+ } catch {}
11
+ const re = /(^|\/)\.\.($|\/)/;
12
+ return re.test(path) || re.test(decoded);
13
+ }
14
+ /**
15
+ * Project a parsed workspace definition onto the formalized convention
16
+ * manifest — flattening sections to their folder roots and lifting the agent
17
+ * and default content path.
18
+ */
19
+ function workspaceManifestFromDefinition(definition) {
20
+ const roots = [];
21
+ for (const section of definition.sections ?? []) for (const root of section.roots ?? []) roots.push({
22
+ id: root.id,
23
+ title: root.title,
24
+ path: root.path,
25
+ ...root.editable !== void 0 ? { editable: root.editable } : {}
26
+ });
27
+ return {
28
+ roots,
29
+ ...definition.defaultPath ? { defaultPath: definition.defaultPath } : {},
30
+ ...definition.agent?.module ? { agent: {
31
+ module: definition.agent.module,
32
+ ...definition.agent.title ? { title: definition.agent.title } : {},
33
+ ...definition.agent.placeholder ? { placeholder: definition.agent.placeholder } : {}
34
+ } } : {}
35
+ };
36
+ }
37
+ /**
38
+ * Schema-validate a workspace convention manifest (strict: declare ⇒ execute,
39
+ * never silently degrade to an empty workspace). Throws a
40
+ * {@link ScaffoldDslCompileError} on any violation:
41
+ * - no folder roots at all,
42
+ * - a root `from` / `default` path that is relative or contains `..` traversal.
43
+ */
44
+ function validateWorkspaceManifest(manifest) {
45
+ if (!manifest.roots || manifest.roots.length === 0) throw parseError(1, "Workspace manifest must declare at least one root");
46
+ for (const root of manifest.roots) {
47
+ if (!root.path.startsWith("/")) throw parseError(1, `Workspace root "${root.id}" path must be absolute: ${root.path}`);
48
+ if (pathHasTraversal(root.path)) throw parseError(1, `Workspace root "${root.id}" path must not contain traversal (..): ${root.path}`);
49
+ }
50
+ if (manifest.defaultPath !== void 0) {
51
+ if (!manifest.defaultPath.startsWith("/")) throw parseError(1, `Workspace default path must be absolute: ${manifest.defaultPath}`);
52
+ if (pathHasTraversal(manifest.defaultPath)) throw parseError(1, `Workspace default path must not contain traversal (..): ${manifest.defaultPath}`);
53
+ }
54
+ }
55
+ function compileWorkspaceDsl(source) {
56
+ const declaration = require_dsl_shared.parseDeclaration(source, {
57
+ kind: "workspace",
58
+ allowQuotedId: true,
59
+ allowHeadValues: true,
60
+ expected: "Expected workspace \"Title\" {",
61
+ fieldKeywords: [
62
+ "description",
63
+ "default",
64
+ "detail",
65
+ "agent",
66
+ "rail",
67
+ "group",
68
+ "root"
69
+ ],
70
+ fieldInlineContinuationKeywords: { root: ["description"] },
71
+ nestedFieldKeywords: ["group"],
72
+ error: parseSharedError
73
+ });
74
+ const variant = parseVariant(declaration.headValues ?? []);
75
+ const workspace = {
76
+ title: declaration.id,
77
+ ...variant ? { variant } : {},
78
+ rail: [],
79
+ sections: []
80
+ };
81
+ let railOrder = 1;
82
+ const sections = [];
83
+ for (const field of declaration.fields) {
84
+ if (field.name.value === "description") {
85
+ workspace.description = parseSingleStringField(field, "Expected description \"<text>\"");
86
+ continue;
87
+ }
88
+ if (field.name.value === "default") {
89
+ workspace.defaultPath = parseSingleStringField(field, "Expected default \"<path>\"");
90
+ continue;
91
+ }
92
+ if (field.name.value === "detail") {
93
+ workspace.detail = parseDetailField(field);
94
+ continue;
95
+ }
96
+ if (field.name.value === "agent") {
97
+ workspace.agent = parseAgentField(field);
98
+ continue;
99
+ }
100
+ if (field.name.value === "rail") {
101
+ workspace.rail ??= [];
102
+ workspace.rail.push(parseRailField(field, railOrder++));
103
+ continue;
104
+ }
105
+ if (field.name.value === "group") {
106
+ sections.push(parseGroupField(field, sections.length + 1));
107
+ continue;
108
+ }
109
+ if (field.name.value === "root") {
110
+ const section = ensureDefaultSection(sections);
111
+ section.roots ??= [];
112
+ section.roots.push(parseRootField(field, section.roots.length + 1));
113
+ continue;
114
+ }
115
+ throw parseError(field.name.line, `Unsupported workspace DSL line: ${field.name.value}`, field.name.column);
116
+ }
117
+ workspace.sections = sections;
118
+ if (workspace.rail?.length === 0) delete workspace.rail;
119
+ if (workspace.sections.length === 0) throw parseError(1, "Workspace DSL must define at least one root");
120
+ return workspace;
121
+ }
122
+ function formatWorkspaceDsl(source) {
123
+ const workspace = compileWorkspaceDsl(source);
124
+ const lines = [`workspace ${quote(workspace.title ?? "Workspace")}${workspace.variant ? ` variant ${workspace.variant}` : ""} {`];
125
+ if (workspace.description) lines.push(` description ${quote(workspace.description)}`);
126
+ if (workspace.defaultPath) lines.push(` default ${quote(workspace.defaultPath)}`);
127
+ if (workspace.detail?.renderer) lines.push(` detail ${workspace.detail.renderer}${workspace.detail.pattern ? ` pattern ${workspace.detail.pattern}` : ""}`);
128
+ if (workspace.agent?.module) lines.push(` agent ${workspace.agent.module}${workspace.agent.title ? ` ${quote(workspace.agent.title)}` : ""}${workspace.agent.placeholder ? ` placeholder ${quote(workspace.agent.placeholder)}` : ""}`);
129
+ for (const item of workspace.rail ?? []) lines.push(` rail ${quote(item.title)}${item.icon ? ` icon ${item.icon}` : ""}${item.href ? ` href ${quote(item.href)}` : ""}${item.active ? " active" : ""}`);
130
+ const sections = workspace.sections ?? [];
131
+ if (sections.length > 0) lines.push("");
132
+ sections.forEach((section, index) => {
133
+ if (index > 0) lines.push("");
134
+ const sectionId = section.id && section.id !== slugify(section.title) ? `${section.id} ` : "";
135
+ lines.push(` group ${sectionId}${quote(section.title)} {`);
136
+ if (section.description) lines.push(` description ${quote(section.description)}`);
137
+ for (const root of section.roots ?? []) {
138
+ const options = [
139
+ root.maxDepth !== void 0 ? `depth ${root.maxDepth}` : void 0,
140
+ root.itemStyle && root.itemStyle !== "compact" ? `style ${root.itemStyle}` : void 0,
141
+ ...formatRootFilterOptions(root),
142
+ root.description ? `description ${quote(root.description)}` : void 0,
143
+ root.editable === true ? "editable" : root.editable === false ? "readonly" : void 0
144
+ ].filter(Boolean).join(" ");
145
+ const rootId = root.id && root.id !== slugify(root.title) ? `${root.id} ` : "";
146
+ lines.push(` root ${rootId}${quote(root.title)} from ${quote(root.path)}${options ? ` ${options}` : ""}`);
147
+ }
148
+ lines.push(" }");
149
+ });
150
+ lines.push("}");
151
+ return `${lines.join("\n")}\n`;
152
+ }
153
+ function ensureDefaultSection(sections) {
154
+ let section = sections[0];
155
+ if (!section) {
156
+ section = {
157
+ id: "workspace",
158
+ title: "Workspace",
159
+ order: 1,
160
+ roots: []
161
+ };
162
+ sections.push(section);
163
+ }
164
+ return section;
165
+ }
166
+ function parseVariant(tokens) {
167
+ if (tokens.length === 0) return void 0;
168
+ if (tokens.length === 2 && tokens[0]?.type === "word" && tokens[0].value === "variant") {
169
+ const variant = tokens[1];
170
+ if (variant?.type === "word") return variant.value;
171
+ }
172
+ const token = tokens[0];
173
+ throw parseError(token?.line ?? 1, "Expected workspace \"Title\" [variant name] {", token?.column);
174
+ }
175
+ function parseDetailField(field) {
176
+ const renderer = field.values[0];
177
+ if (renderer?.type !== "word" || renderer.value !== "surface" && renderer.value !== "auto-surface") throw parseError(renderer?.line ?? field.name.line, "Expected detail surface|auto-surface");
178
+ const patternKeyword = field.values[1];
179
+ const pattern = field.values[2];
180
+ if (!patternKeyword) return { renderer: renderer.value };
181
+ if (patternKeyword.type === "word" && patternKeyword.value === "pattern" && pattern?.type === "word") return {
182
+ renderer: renderer.value,
183
+ pattern: pattern.value
184
+ };
185
+ throw parseError(patternKeyword.line, "Expected detail surface|auto-surface [pattern name]");
186
+ }
187
+ function parseAgentField(field) {
188
+ const module = field.values[0];
189
+ if (module?.type !== "word") throw parseError(module?.line ?? field.name.line, "Expected agent <module> [\"Title\"]");
190
+ let index = 1;
191
+ let title;
192
+ if (field.values[index]?.type === "string") {
193
+ title = require_dsl_shared.parseDslStringToken(field.values[index], parseSharedError);
194
+ index += 1;
195
+ }
196
+ let placeholder;
197
+ const placeholderKeyword = field.values[index];
198
+ if (placeholderKeyword) {
199
+ const value = field.values[index + 1];
200
+ if (placeholderKeyword.type !== "word" || placeholderKeyword.value !== "placeholder" || value?.type !== "string") throw parseError(placeholderKeyword.line, "Expected agent <module> [\"Title\"] [placeholder \"...\"]");
201
+ placeholder = require_dsl_shared.parseDslStringToken(value, parseSharedError);
202
+ index += 2;
203
+ }
204
+ if (field.values.length !== index) {
205
+ const token = field.values[index];
206
+ throw parseError(token.line, "Expected agent <module> [\"Title\"] [placeholder \"...\"]", token.column);
207
+ }
208
+ return {
209
+ module: module.value,
210
+ ...title ? { title } : {},
211
+ ...placeholder ? { placeholder } : {}
212
+ };
213
+ }
214
+ function parseRailField(field, order) {
215
+ const titleToken = field.values[0];
216
+ if (titleToken?.type !== "string") throw parseError(titleToken?.line ?? field.name.line, "Expected rail \"Title\"");
217
+ const title = require_dsl_shared.parseDslStringToken(titleToken, parseSharedError);
218
+ const rest = joinDslValues(field.values.slice(1));
219
+ const icon = rest.match(/\bicon\s+([A-Za-z0-9_-]+)/);
220
+ const href = rest.match(/* @__PURE__ */ new RegExp(`\\bhref\\s+${STRING}`));
221
+ return {
222
+ id: slugify(title),
223
+ title,
224
+ ...icon?.[1] ? { icon: icon[1] } : {},
225
+ ...href?.[1] ? { href: unescapeString(href[1]) } : {},
226
+ ...rest.match(/\bactive\b/) ? { active: true } : {},
227
+ order
228
+ };
229
+ }
230
+ function parseGroupField(field, order) {
231
+ const parsed = parseOptionalIdTitleField(field, "Expected group [id] \"Title\" {");
232
+ const section = {
233
+ id: parsed.id ?? slugify(parsed.title),
234
+ title: parsed.title,
235
+ order,
236
+ roots: []
237
+ };
238
+ let rootOrder = 1;
239
+ for (const child of field.children ?? []) {
240
+ if (child.name.value === "description") {
241
+ section.description = parseSingleStringField(child, "Expected description \"<text>\"");
242
+ continue;
243
+ }
244
+ if (child.name.value === "root") {
245
+ section.roots?.push(parseRootField(child, rootOrder++));
246
+ continue;
247
+ }
248
+ throw parseError(child.name.line, `Unsupported workspace group DSL line: ${child.name.value}`, child.name.column);
249
+ }
250
+ return section;
251
+ }
252
+ function parseRootField(field, order) {
253
+ const parsed = parseOptionalIdTitleField(field, "Expected root [id] \"Title\" from \"<path>\"");
254
+ const from = field.values[parsed.nextIndex];
255
+ const path = field.values[parsed.nextIndex + 1];
256
+ if (from?.type !== "word" || from.value !== "from" || path?.type !== "string") throw parseError(from?.line ?? field.name.line, "Expected root [id] \"Title\" from \"<path>\"");
257
+ const rest = joinDslValues(field.values.slice(parsed.nextIndex + 2));
258
+ const depth = rest.match(/\bdepth\s+(\d+)/);
259
+ const style = rest.match(/\bstyle\s+([A-Za-z0-9_-]+)/);
260
+ const descriptionValue = rest.match(/* @__PURE__ */ new RegExp(`\\bdescription\\s+${STRING}`));
261
+ const excludes = parseStringListOption(rest, "exclude");
262
+ const filter = excludes.length > 0 ? { exclude: excludes } : rest.match(/\bfilter\s+none\b/) ? void 0 : { exclude: [".aup"] };
263
+ const editable = rest.match(/\beditable\b/) ? true : rest.match(/\breadonly\b/) ? false : void 0;
264
+ return {
265
+ id: parsed.id ?? slugify(parsed.title),
266
+ title: parsed.title,
267
+ path: require_dsl_shared.parseDslStringToken(path, parseSharedError),
268
+ ...descriptionValue?.[1] ? { description: unescapeString(descriptionValue[1]) } : {},
269
+ order,
270
+ maxDepth: depth ? Number(depth[1]) : 1,
271
+ layout: "grouped",
272
+ itemStyle: style?.[1] ?? "compact",
273
+ ...filter ? { filter } : {},
274
+ sort: { field: "id" },
275
+ ...editable !== void 0 ? { editable } : {}
276
+ };
277
+ }
278
+ function parseOptionalIdTitleField(field, message) {
279
+ const first = field.values[0];
280
+ const second = field.values[1];
281
+ if (first?.type === "string") return {
282
+ title: require_dsl_shared.parseDslStringToken(first, parseSharedError),
283
+ nextIndex: 1
284
+ };
285
+ if (first?.type === "word" && second?.type === "string") return {
286
+ id: first.value,
287
+ title: require_dsl_shared.parseDslStringToken(second, parseSharedError),
288
+ nextIndex: 2
289
+ };
290
+ throw parseError(first?.line ?? field.name.line, message, first?.column ?? field.name.column);
291
+ }
292
+ function parseSingleStringField(field, message) {
293
+ const value = field.values[0];
294
+ if (field.values.length !== 1 || value?.type !== "string") throw parseError(value?.line ?? field.name.line, message, value?.column ?? field.name.column);
295
+ return require_dsl_shared.parseDslStringToken(value, parseSharedError);
296
+ }
297
+ function joinDslValues(tokens) {
298
+ return tokens.map((token) => token.value).join(" ");
299
+ }
300
+ function parseSharedError(message, line, column = 1) {
301
+ return parseError(line, message, column);
302
+ }
303
+ function unescapeString(value) {
304
+ return value.replace(/\\"/g, "\"").replace(/\\\\/g, "\\");
305
+ }
306
+ function quote(value) {
307
+ return JSON.stringify(value);
308
+ }
309
+ function parseStringListOption(rest, option) {
310
+ const optionMatch = rest.match(/* @__PURE__ */ new RegExp(`\\b${option}\\b`));
311
+ if (!optionMatch || optionMatch.index === void 0) return [];
312
+ const tail = rest.slice(optionMatch.index + option.length).trimStart();
313
+ const nextKeywordIndex = tail.search(/\s+(?:description|depth|style|editable|readonly|filter)\b/);
314
+ const valueSource = nextKeywordIndex >= 0 ? tail.slice(0, nextKeywordIndex) : tail;
315
+ const values = [];
316
+ for (const match of valueSource.matchAll(new RegExp(STRING, "g"))) values.push(unescapeString(match[1] ?? ""));
317
+ return values;
318
+ }
319
+ function formatRootFilterOptions(root) {
320
+ if (!root.filter) return ["filter none"];
321
+ if (typeof root.filter === "string") return [];
322
+ const exclude = root.filter.exclude;
323
+ if (!Array.isArray(exclude)) return [];
324
+ const values = exclude.filter((value) => typeof value === "string");
325
+ if (values.length === 1 && values[0] === ".aup") return [];
326
+ return [`exclude ${values.map((value) => quote(value)).join(" ")}`];
327
+ }
328
+ function slugify(value) {
329
+ return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || "workspace";
330
+ }
331
+ function parseError(line, message, column = 1) {
332
+ return require_dsl_error.scaffoldDslParseError("workspace", line, message, column);
333
+ }
334
+
335
+ //#endregion
336
+ exports.compileWorkspaceDsl = compileWorkspaceDsl;
337
+ exports.formatWorkspaceDsl = formatWorkspaceDsl;
338
+ exports.validateWorkspaceManifest = validateWorkspaceManifest;
339
+ exports.workspaceManifestFromDefinition = workspaceManifestFromDefinition;
@@ -0,0 +1,49 @@
1
+ import { ScaffoldWorkspaceDefinition } from "./types.cjs";
2
+
3
+ //#region src/scaffold/workspace-dsl.d.ts
4
+ /**
5
+ * Formalized `afs-workspace` convention contract (task 0.1).
6
+ *
7
+ * The `workspace.dsl` shell language parses into a {@link ScaffoldWorkspaceDefinition}
8
+ * (rail/variant/sections/etc — the full shell). The *convention schema* is the
9
+ * narrower contract the generalized wiring depends on: the folder roots (each a
10
+ * select→content source), the agent, and the default content path. Extracting
11
+ * it into a flat, validated manifest keeps the convention decoupled from the
12
+ * particular DSL surface and gives one place to reject bad manifests.
13
+ */
14
+ interface WorkspaceManifestRoot {
15
+ id: string;
16
+ title: string;
17
+ /** Absolute AFS path to the folder this root projects. */
18
+ path: string;
19
+ editable?: boolean;
20
+ }
21
+ interface WorkspaceManifestAgent {
22
+ module: string;
23
+ title?: string;
24
+ placeholder?: string;
25
+ }
26
+ interface WorkspaceManifest {
27
+ roots: WorkspaceManifestRoot[];
28
+ defaultPath?: string;
29
+ agent?: WorkspaceManifestAgent;
30
+ }
31
+ /**
32
+ * Project a parsed workspace definition onto the formalized convention
33
+ * manifest — flattening sections to their folder roots and lifting the agent
34
+ * and default content path.
35
+ */
36
+ declare function workspaceManifestFromDefinition(definition: ScaffoldWorkspaceDefinition): WorkspaceManifest;
37
+ /**
38
+ * Schema-validate a workspace convention manifest (strict: declare ⇒ execute,
39
+ * never silently degrade to an empty workspace). Throws a
40
+ * {@link ScaffoldDslCompileError} on any violation:
41
+ * - no folder roots at all,
42
+ * - a root `from` / `default` path that is relative or contains `..` traversal.
43
+ */
44
+ declare function validateWorkspaceManifest(manifest: WorkspaceManifest): void;
45
+ declare function compileWorkspaceDsl(source: string): ScaffoldWorkspaceDefinition;
46
+ declare function formatWorkspaceDsl(source: string): string;
47
+ //#endregion
48
+ export { WorkspaceManifest, WorkspaceManifestAgent, WorkspaceManifestRoot, compileWorkspaceDsl, formatWorkspaceDsl, validateWorkspaceManifest, workspaceManifestFromDefinition };
49
+ //# sourceMappingURL=workspace-dsl.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-dsl.d.cts","names":[],"sources":["../../src/scaffold/workspace-dsl.ts"],"mappings":";;;;;AA0BA;;;;;;;;UAAiB,qBAAA;EACf,EAAA;EACA,KAAA;EAMqC;EAJrC,IAAA;EACA,QAAA;AAAA;AAAA,UAGe,sBAAA;EACf,MAAA;EACA,KAAA;EACA,WAAA;AAAA;AAAA,UAGe,iBAAA;EACf,KAAA,EAAO,qBAAA;EACP,WAAA;EACA,KAAA,GAAQ,sBAAA;AAAA;;;;;;iBAqBM,+BAAA,CACd,UAAA,EAAY,2BAAA,GACX,iBAAA;;;;;;;;iBAkCa,yBAAA,CAA0B,QAAA,EAAU,iBAAA;AAAA,iBA4BpC,mBAAA,CAAoB,MAAA,WAAiB,2BAAA;AAAA,iBAsErC,kBAAA,CAAmB,MAAA"}
@@ -0,0 +1,49 @@
1
+ import { ScaffoldWorkspaceDefinition } from "./types.mjs";
2
+
3
+ //#region src/scaffold/workspace-dsl.d.ts
4
+ /**
5
+ * Formalized `afs-workspace` convention contract (task 0.1).
6
+ *
7
+ * The `workspace.dsl` shell language parses into a {@link ScaffoldWorkspaceDefinition}
8
+ * (rail/variant/sections/etc — the full shell). The *convention schema* is the
9
+ * narrower contract the generalized wiring depends on: the folder roots (each a
10
+ * select→content source), the agent, and the default content path. Extracting
11
+ * it into a flat, validated manifest keeps the convention decoupled from the
12
+ * particular DSL surface and gives one place to reject bad manifests.
13
+ */
14
+ interface WorkspaceManifestRoot {
15
+ id: string;
16
+ title: string;
17
+ /** Absolute AFS path to the folder this root projects. */
18
+ path: string;
19
+ editable?: boolean;
20
+ }
21
+ interface WorkspaceManifestAgent {
22
+ module: string;
23
+ title?: string;
24
+ placeholder?: string;
25
+ }
26
+ interface WorkspaceManifest {
27
+ roots: WorkspaceManifestRoot[];
28
+ defaultPath?: string;
29
+ agent?: WorkspaceManifestAgent;
30
+ }
31
+ /**
32
+ * Project a parsed workspace definition onto the formalized convention
33
+ * manifest — flattening sections to their folder roots and lifting the agent
34
+ * and default content path.
35
+ */
36
+ declare function workspaceManifestFromDefinition(definition: ScaffoldWorkspaceDefinition): WorkspaceManifest;
37
+ /**
38
+ * Schema-validate a workspace convention manifest (strict: declare ⇒ execute,
39
+ * never silently degrade to an empty workspace). Throws a
40
+ * {@link ScaffoldDslCompileError} on any violation:
41
+ * - no folder roots at all,
42
+ * - a root `from` / `default` path that is relative or contains `..` traversal.
43
+ */
44
+ declare function validateWorkspaceManifest(manifest: WorkspaceManifest): void;
45
+ declare function compileWorkspaceDsl(source: string): ScaffoldWorkspaceDefinition;
46
+ declare function formatWorkspaceDsl(source: string): string;
47
+ //#endregion
48
+ export { WorkspaceManifest, WorkspaceManifestAgent, WorkspaceManifestRoot, compileWorkspaceDsl, formatWorkspaceDsl, validateWorkspaceManifest, workspaceManifestFromDefinition };
49
+ //# sourceMappingURL=workspace-dsl.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-dsl.d.mts","names":[],"sources":["../../src/scaffold/workspace-dsl.ts"],"mappings":";;;;;AA0BA;;;;;;;;UAAiB,qBAAA;EACf,EAAA;EACA,KAAA;EAMqC;EAJrC,IAAA;EACA,QAAA;AAAA;AAAA,UAGe,sBAAA;EACf,MAAA;EACA,KAAA;EACA,WAAA;AAAA;AAAA,UAGe,iBAAA;EACf,KAAA,EAAO,qBAAA;EACP,WAAA;EACA,KAAA,GAAQ,sBAAA;AAAA;;;;;;iBAqBM,+BAAA,CACd,UAAA,EAAY,2BAAA,GACX,iBAAA;;;;;;;;iBAkCa,yBAAA,CAA0B,QAAA,EAAU,iBAAA;AAAA,iBA4BpC,mBAAA,CAAoB,MAAA,WAAiB,2BAAA;AAAA,iBAsErC,kBAAA,CAAmB,MAAA"}