@vibesdotdev/config 0.0.1

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 (620) hide show
  1. package/README.md +85 -0
  2. package/SPEC.md +71 -0
  3. package/dist/adapters/cli/flags.d.ts +75 -0
  4. package/dist/adapters/cli/flags.d.ts.map +1 -0
  5. package/dist/adapters/cli/flags.js +221 -0
  6. package/dist/adapters/cli/flags.js.map +1 -0
  7. package/dist/adapters/cli/index.d.ts +12 -0
  8. package/dist/adapters/cli/index.d.ts.map +1 -0
  9. package/dist/adapters/cli/index.js +9 -0
  10. package/dist/adapters/cli/index.js.map +1 -0
  11. package/dist/adapters/cli/mappings.d.ts +17 -0
  12. package/dist/adapters/cli/mappings.d.ts.map +1 -0
  13. package/dist/adapters/cli/mappings.js +32 -0
  14. package/dist/adapters/cli/mappings.js.map +1 -0
  15. package/dist/adapters/cli/prompts.d.ts +28 -0
  16. package/dist/adapters/cli/prompts.d.ts.map +1 -0
  17. package/dist/adapters/cli/prompts.js +55 -0
  18. package/dist/adapters/cli/prompts.js.map +1 -0
  19. package/dist/adapters/cli/schemas/flags.schema.d.ts +8 -0
  20. package/dist/adapters/cli/schemas/flags.schema.d.ts.map +1 -0
  21. package/dist/adapters/cli/schemas/flags.schema.js +2 -0
  22. package/dist/adapters/cli/schemas/flags.schema.js.map +1 -0
  23. package/dist/adapters/cli/schemas/mappings.schema.d.ts +2 -0
  24. package/dist/adapters/cli/schemas/mappings.schema.d.ts.map +1 -0
  25. package/dist/adapters/cli/schemas/mappings.schema.js +2 -0
  26. package/dist/adapters/cli/schemas/mappings.schema.js.map +1 -0
  27. package/dist/adapters/cli/schemas/prompts.schema.d.ts +5 -0
  28. package/dist/adapters/cli/schemas/prompts.schema.d.ts.map +1 -0
  29. package/dist/adapters/cli/schemas/prompts.schema.js +2 -0
  30. package/dist/adapters/cli/schemas/prompts.schema.js.map +1 -0
  31. package/dist/adapters/cli/schemas/wizard.schema.d.ts +19 -0
  32. package/dist/adapters/cli/schemas/wizard.schema.d.ts.map +1 -0
  33. package/dist/adapters/cli/schemas/wizard.schema.js +2 -0
  34. package/dist/adapters/cli/schemas/wizard.schema.js.map +1 -0
  35. package/dist/adapters/cli/wizard.d.ts +33 -0
  36. package/dist/adapters/cli/wizard.d.ts.map +1 -0
  37. package/dist/adapters/cli/wizard.js +77 -0
  38. package/dist/adapters/cli/wizard.js.map +1 -0
  39. package/dist/browser/index.d.ts +7 -0
  40. package/dist/browser/index.d.ts.map +1 -0
  41. package/dist/browser/index.js +4 -0
  42. package/dist/browser/index.js.map +1 -0
  43. package/dist/cli/settings.descriptor.d.ts +9 -0
  44. package/dist/cli/settings.descriptor.d.ts.map +1 -0
  45. package/dist/cli/settings.descriptor.js +18 -0
  46. package/dist/cli/settings.descriptor.js.map +1 -0
  47. package/dist/cli/types.d.ts +57 -0
  48. package/dist/cli/types.d.ts.map +1 -0
  49. package/dist/cli/types.js +9 -0
  50. package/dist/cli/types.js.map +1 -0
  51. package/dist/client/index.d.ts +19 -0
  52. package/dist/client/index.d.ts.map +1 -0
  53. package/dist/client/index.js +145 -0
  54. package/dist/client/index.js.map +1 -0
  55. package/dist/client/storage.d.ts +48 -0
  56. package/dist/client/storage.d.ts.map +1 -0
  57. package/dist/client/storage.js +46 -0
  58. package/dist/client/storage.js.map +1 -0
  59. package/dist/collection/collection.d.ts +46 -0
  60. package/dist/collection/collection.d.ts.map +1 -0
  61. package/dist/collection/collection.js +93 -0
  62. package/dist/collection/collection.js.map +1 -0
  63. package/dist/collection/index.d.ts +6 -0
  64. package/dist/collection/index.d.ts.map +1 -0
  65. package/dist/collection/index.js +5 -0
  66. package/dist/collection/index.js.map +1 -0
  67. package/dist/common/index.d.ts +7 -0
  68. package/dist/common/index.d.ts.map +1 -0
  69. package/dist/common/index.js +4 -0
  70. package/dist/common/index.js.map +1 -0
  71. package/dist/config.context.descriptor.d.ts +21 -0
  72. package/dist/config.context.descriptor.d.ts.map +1 -0
  73. package/dist/config.context.descriptor.js +11 -0
  74. package/dist/config.context.descriptor.js.map +1 -0
  75. package/dist/config.plugin.d.ts +15 -0
  76. package/dist/config.plugin.d.ts.map +1 -0
  77. package/dist/config.plugin.js +166 -0
  78. package/dist/config.plugin.js.map +1 -0
  79. package/dist/crud/base-types.d.ts +10 -0
  80. package/dist/crud/base-types.d.ts.map +1 -0
  81. package/dist/crud/base-types.js +10 -0
  82. package/dist/crud/base-types.js.map +1 -0
  83. package/dist/crud/index.d.ts +4 -0
  84. package/dist/crud/index.d.ts.map +1 -0
  85. package/dist/crud/index.js +2 -0
  86. package/dist/crud/index.js.map +1 -0
  87. package/dist/crud/schemas/base-types.schema.d.ts +19 -0
  88. package/dist/crud/schemas/base-types.schema.d.ts.map +1 -0
  89. package/dist/crud/schemas/base-types.schema.js +2 -0
  90. package/dist/crud/schemas/base-types.schema.js.map +1 -0
  91. package/dist/crud/schemas/shared.schema.d.ts +13 -0
  92. package/dist/crud/schemas/shared.schema.d.ts.map +1 -0
  93. package/dist/crud/schemas/shared.schema.js +2 -0
  94. package/dist/crud/schemas/shared.schema.js.map +1 -0
  95. package/dist/crud/shared.d.ts +8 -0
  96. package/dist/crud/shared.d.ts.map +1 -0
  97. package/dist/crud/shared.js +8 -0
  98. package/dist/crud/shared.js.map +1 -0
  99. package/dist/crud/types.d.ts +250 -0
  100. package/dist/crud/types.d.ts.map +1 -0
  101. package/dist/crud/types.js +22 -0
  102. package/dist/crud/types.js.map +1 -0
  103. package/dist/docs/environment.docs.descriptor.d.ts +4 -0
  104. package/dist/docs/environment.docs.descriptor.d.ts.map +1 -0
  105. package/dist/docs/environment.docs.descriptor.js +383 -0
  106. package/dist/docs/environment.docs.descriptor.js.map +1 -0
  107. package/dist/docs/manifests.docs.descriptor.d.ts +4 -0
  108. package/dist/docs/manifests.docs.descriptor.d.ts.map +1 -0
  109. package/dist/docs/manifests.docs.descriptor.js +503 -0
  110. package/dist/docs/manifests.docs.descriptor.js.map +1 -0
  111. package/dist/docs/validation.docs.descriptor.d.ts +4 -0
  112. package/dist/docs/validation.docs.descriptor.d.ts.map +1 -0
  113. package/dist/docs/validation.docs.descriptor.js +441 -0
  114. package/dist/docs/validation.docs.descriptor.js.map +1 -0
  115. package/dist/doctor.d.ts +42 -0
  116. package/dist/doctor.d.ts.map +1 -0
  117. package/dist/doctor.js +119 -0
  118. package/dist/doctor.js.map +1 -0
  119. package/dist/env.d.ts +28 -0
  120. package/dist/env.d.ts.map +1 -0
  121. package/dist/env.js +75 -0
  122. package/dist/env.js.map +1 -0
  123. package/dist/env.runtime.d.ts +19 -0
  124. package/dist/env.runtime.d.ts.map +1 -0
  125. package/dist/env.runtime.js +37 -0
  126. package/dist/env.runtime.js.map +1 -0
  127. package/dist/environment/current.d.ts +32 -0
  128. package/dist/environment/current.d.ts.map +1 -0
  129. package/dist/environment/current.js +91 -0
  130. package/dist/environment/current.js.map +1 -0
  131. package/dist/environment/environment.config.descriptor.d.ts +11 -0
  132. package/dist/environment/environment.config.descriptor.d.ts.map +1 -0
  133. package/dist/environment/environment.config.descriptor.js +51 -0
  134. package/dist/environment/environment.config.descriptor.js.map +1 -0
  135. package/dist/environment/environment.config.schema.d.ts +47 -0
  136. package/dist/environment/environment.config.schema.d.ts.map +1 -0
  137. package/dist/environment/environment.config.schema.js +19 -0
  138. package/dist/environment/environment.config.schema.js.map +1 -0
  139. package/dist/environment/environment.local.descriptor.d.ts +11 -0
  140. package/dist/environment/environment.local.descriptor.d.ts.map +1 -0
  141. package/dist/environment/environment.local.descriptor.js +42 -0
  142. package/dist/environment/environment.local.descriptor.js.map +1 -0
  143. package/dist/environment/environment.plugin.d.ts +9 -0
  144. package/dist/environment/environment.plugin.d.ts.map +1 -0
  145. package/dist/environment/environment.plugin.js +27 -0
  146. package/dist/environment/environment.plugin.js.map +1 -0
  147. package/dist/environment/environment.production.descriptor.d.ts +10 -0
  148. package/dist/environment/environment.production.descriptor.d.ts.map +1 -0
  149. package/dist/environment/environment.production.descriptor.js +37 -0
  150. package/dist/environment/environment.production.descriptor.js.map +1 -0
  151. package/dist/environment/environment.staging.descriptor.d.ts +11 -0
  152. package/dist/environment/environment.staging.descriptor.d.ts.map +1 -0
  153. package/dist/environment/environment.staging.descriptor.js +22 -0
  154. package/dist/environment/environment.staging.descriptor.js.map +1 -0
  155. package/dist/environment/index.d.ts +8 -0
  156. package/dist/environment/index.d.ts.map +1 -0
  157. package/dist/environment/index.js +9 -0
  158. package/dist/environment/index.js.map +1 -0
  159. package/dist/environment/kinds/environment.default.d.ts +23 -0
  160. package/dist/environment/kinds/environment.default.d.ts.map +1 -0
  161. package/dist/environment/kinds/environment.default.js +49 -0
  162. package/dist/environment/kinds/environment.default.js.map +1 -0
  163. package/dist/environment/kinds/environment.interface.d.ts +7 -0
  164. package/dist/environment/kinds/environment.interface.d.ts.map +1 -0
  165. package/dist/environment/kinds/environment.interface.js +7 -0
  166. package/dist/environment/kinds/environment.interface.js.map +1 -0
  167. package/dist/environment/kinds/environment.kind.d.ts +10 -0
  168. package/dist/environment/kinds/environment.kind.d.ts.map +1 -0
  169. package/dist/environment/kinds/environment.kind.js +57 -0
  170. package/dist/environment/kinds/environment.kind.js.map +1 -0
  171. package/dist/environment/kinds/environment.schema.d.ts +34 -0
  172. package/dist/environment/kinds/environment.schema.d.ts.map +1 -0
  173. package/dist/environment/kinds/environment.schema.js +46 -0
  174. package/dist/environment/kinds/environment.schema.js.map +1 -0
  175. package/dist/environment/kinds/index.d.ts +8 -0
  176. package/dist/environment/kinds/index.d.ts.map +1 -0
  177. package/dist/environment/kinds/index.js +7 -0
  178. package/dist/environment/kinds/index.js.map +1 -0
  179. package/dist/environment/kinds/schemas/environment.interface.schema.d.ts +11 -0
  180. package/dist/environment/kinds/schemas/environment.interface.schema.d.ts.map +1 -0
  181. package/dist/environment/kinds/schemas/environment.interface.schema.js +2 -0
  182. package/dist/environment/kinds/schemas/environment.interface.schema.js.map +1 -0
  183. package/dist/environment/kinds/schemas/environment.schema.d.ts +30 -0
  184. package/dist/environment/kinds/schemas/environment.schema.d.ts.map +1 -0
  185. package/dist/environment/kinds/schemas/environment.schema.js +2 -0
  186. package/dist/environment/kinds/schemas/environment.schema.js.map +1 -0
  187. package/dist/environment/schemas/current.schema.d.ts +20 -0
  188. package/dist/environment/schemas/current.schema.d.ts.map +1 -0
  189. package/dist/environment/schemas/current.schema.js +2 -0
  190. package/dist/environment/schemas/current.schema.js.map +1 -0
  191. package/dist/environment/schemas/environment.config.schema.d.ts +4 -0
  192. package/dist/environment/schemas/environment.config.schema.d.ts.map +1 -0
  193. package/dist/environment/schemas/environment.config.schema.js +2 -0
  194. package/dist/environment/schemas/environment.config.schema.js.map +1 -0
  195. package/dist/extensions/index.d.ts +8 -0
  196. package/dist/extensions/index.d.ts.map +1 -0
  197. package/dist/extensions/index.js +8 -0
  198. package/dist/extensions/index.js.map +1 -0
  199. package/dist/extensions/registry.d.ts +41 -0
  200. package/dist/extensions/registry.d.ts.map +1 -0
  201. package/dist/extensions/registry.js +142 -0
  202. package/dist/extensions/registry.js.map +1 -0
  203. package/dist/extensions/types.d.ts +101 -0
  204. package/dist/extensions/types.d.ts.map +1 -0
  205. package/dist/extensions/types.js +8 -0
  206. package/dist/extensions/types.js.map +1 -0
  207. package/dist/form/core/field-resolver.d.ts +42 -0
  208. package/dist/form/core/field-resolver.d.ts.map +1 -0
  209. package/dist/form/core/field-resolver.js +293 -0
  210. package/dist/form/core/field-resolver.js.map +1 -0
  211. package/dist/form/core/groups.d.ts +20 -0
  212. package/dist/form/core/groups.d.ts.map +1 -0
  213. package/dist/form/core/groups.js +69 -0
  214. package/dist/form/core/groups.js.map +1 -0
  215. package/dist/form/core/index.d.ts +8 -0
  216. package/dist/form/core/index.d.ts.map +1 -0
  217. package/dist/form/core/index.js +6 -0
  218. package/dist/form/core/index.js.map +1 -0
  219. package/dist/form/core/nested-utils.d.ts +40 -0
  220. package/dist/form/core/nested-utils.d.ts.map +1 -0
  221. package/dist/form/core/nested-utils.js +98 -0
  222. package/dist/form/core/nested-utils.js.map +1 -0
  223. package/dist/form/core/schemas/validation.schema.d.ts +9 -0
  224. package/dist/form/core/schemas/validation.schema.d.ts.map +1 -0
  225. package/dist/form/core/schemas/validation.schema.js +2 -0
  226. package/dist/form/core/schemas/validation.schema.js.map +1 -0
  227. package/dist/form/core/types.d.ts +103 -0
  228. package/dist/form/core/types.d.ts.map +1 -0
  229. package/dist/form/core/types.js +2 -0
  230. package/dist/form/core/types.js.map +1 -0
  231. package/dist/form/core/validation.d.ts +23 -0
  232. package/dist/form/core/validation.d.ts.map +1 -0
  233. package/dist/form/core/validation.js +103 -0
  234. package/dist/form/core/validation.js.map +1 -0
  235. package/dist/form/core/visibility.d.ts +37 -0
  236. package/dist/form/core/visibility.d.ts.map +1 -0
  237. package/dist/form/core/visibility.js +128 -0
  238. package/dist/form/core/visibility.js.map +1 -0
  239. package/dist/form/index.d.ts +8 -0
  240. package/dist/form/index.d.ts.map +1 -0
  241. package/dist/form/index.js +2 -0
  242. package/dist/form/index.js.map +1 -0
  243. package/dist/index.d.ts +18 -0
  244. package/dist/index.d.ts.map +1 -0
  245. package/dist/index.js +18 -0
  246. package/dist/index.js.map +1 -0
  247. package/dist/loader/cli/index.d.ts +61 -0
  248. package/dist/loader/cli/index.d.ts.map +1 -0
  249. package/dist/loader/cli/index.js +263 -0
  250. package/dist/loader/cli/index.js.map +1 -0
  251. package/dist/loader/cli/loaders.d.ts +13 -0
  252. package/dist/loader/cli/loaders.d.ts.map +1 -0
  253. package/dist/loader/cli/loaders.js +132 -0
  254. package/dist/loader/cli/loaders.js.map +1 -0
  255. package/dist/loader/cli/types.d.ts +152 -0
  256. package/dist/loader/cli/types.d.ts.map +1 -0
  257. package/dist/loader/cli/types.js +5 -0
  258. package/dist/loader/cli/types.js.map +1 -0
  259. package/dist/loader/cli/utils.d.ts +53 -0
  260. package/dist/loader/cli/utils.d.ts.map +1 -0
  261. package/dist/loader/cli/utils.js +198 -0
  262. package/dist/loader/cli/utils.js.map +1 -0
  263. package/dist/loader/client.d.ts +18 -0
  264. package/dist/loader/client.d.ts.map +1 -0
  265. package/dist/loader/client.js +109 -0
  266. package/dist/loader/client.js.map +1 -0
  267. package/dist/loader/discovery.d.ts +48 -0
  268. package/dist/loader/discovery.d.ts.map +1 -0
  269. package/dist/loader/discovery.js +253 -0
  270. package/dist/loader/discovery.js.map +1 -0
  271. package/dist/loader/file-loader.d.ts +17 -0
  272. package/dist/loader/file-loader.d.ts.map +1 -0
  273. package/dist/loader/file-loader.js +237 -0
  274. package/dist/loader/file-loader.js.map +1 -0
  275. package/dist/loader/index.d.ts +9 -0
  276. package/dist/loader/index.d.ts.map +1 -0
  277. package/dist/loader/index.js +8 -0
  278. package/dist/loader/index.js.map +1 -0
  279. package/dist/loader/index.server.d.ts +66 -0
  280. package/dist/loader/index.server.d.ts.map +1 -0
  281. package/dist/loader/index.server.js +256 -0
  282. package/dist/loader/index.server.js.map +1 -0
  283. package/dist/loader/merge.d.ts +88 -0
  284. package/dist/loader/merge.d.ts.map +1 -0
  285. package/dist/loader/merge.js +301 -0
  286. package/dist/loader/merge.js.map +1 -0
  287. package/dist/loader/schemas/merge.schema.d.ts +8 -0
  288. package/dist/loader/schemas/merge.schema.d.ts.map +1 -0
  289. package/dist/loader/schemas/merge.schema.js +2 -0
  290. package/dist/loader/schemas/merge.schema.js.map +1 -0
  291. package/dist/loader/schemas/validation.schema.d.ts +17 -0
  292. package/dist/loader/schemas/validation.schema.d.ts.map +1 -0
  293. package/dist/loader/schemas/validation.schema.js +2 -0
  294. package/dist/loader/schemas/validation.schema.js.map +1 -0
  295. package/dist/loader/server.d.ts +3 -0
  296. package/dist/loader/server.d.ts.map +1 -0
  297. package/dist/loader/server.js +2 -0
  298. package/dist/loader/server.js.map +1 -0
  299. package/dist/loader/types.d.ts +136 -0
  300. package/dist/loader/types.d.ts.map +1 -0
  301. package/dist/loader/types.js +24 -0
  302. package/dist/loader/types.js.map +1 -0
  303. package/dist/loader/validation.d.ts +59 -0
  304. package/dist/loader/validation.d.ts.map +1 -0
  305. package/dist/loader/validation.js +218 -0
  306. package/dist/loader/validation.js.map +1 -0
  307. package/dist/manifest/builder.d.ts +172 -0
  308. package/dist/manifest/builder.d.ts.map +1 -0
  309. package/dist/manifest/builder.js +336 -0
  310. package/dist/manifest/builder.js.map +1 -0
  311. package/dist/manifest/config-manifest.d.ts +199 -0
  312. package/dist/manifest/config-manifest.d.ts.map +1 -0
  313. package/dist/manifest/config-manifest.js +388 -0
  314. package/dist/manifest/config-manifest.js.map +1 -0
  315. package/dist/manifest/index.d.ts +10 -0
  316. package/dist/manifest/index.d.ts.map +1 -0
  317. package/dist/manifest/index.js +20 -0
  318. package/dist/manifest/index.js.map +1 -0
  319. package/dist/manifest/schema.d.ts +460 -0
  320. package/dist/manifest/schema.d.ts.map +1 -0
  321. package/dist/manifest/schema.js +187 -0
  322. package/dist/manifest/schema.js.map +1 -0
  323. package/dist/manifest/schemas/builder.schema.d.ts +20 -0
  324. package/dist/manifest/schemas/builder.schema.d.ts.map +1 -0
  325. package/dist/manifest/schemas/builder.schema.js +2 -0
  326. package/dist/manifest/schemas/builder.schema.js.map +1 -0
  327. package/dist/manifest/schemas/config-manifest.schema.d.ts +2 -0
  328. package/dist/manifest/schemas/config-manifest.schema.d.ts.map +1 -0
  329. package/dist/manifest/schemas/config-manifest.schema.js +2 -0
  330. package/dist/manifest/schemas/config-manifest.schema.js.map +1 -0
  331. package/dist/manifest/schemas/schema.schema.d.ts +83 -0
  332. package/dist/manifest/schemas/schema.schema.d.ts.map +1 -0
  333. package/dist/manifest/schemas/schema.schema.js +2 -0
  334. package/dist/manifest/schemas/schema.schema.js.map +1 -0
  335. package/dist/manifest/types.d.ts +563 -0
  336. package/dist/manifest/types.d.ts.map +1 -0
  337. package/dist/manifest/types.js +9 -0
  338. package/dist/manifest/types.js.map +1 -0
  339. package/dist/routing/index.d.ts +29 -0
  340. package/dist/routing/index.d.ts.map +1 -0
  341. package/dist/routing/index.js +35 -0
  342. package/dist/routing/index.js.map +1 -0
  343. package/dist/routing/merge.d.ts +164 -0
  344. package/dist/routing/merge.d.ts.map +1 -0
  345. package/dist/routing/merge.js +460 -0
  346. package/dist/routing/merge.js.map +1 -0
  347. package/dist/routing/registry.d.ts +145 -0
  348. package/dist/routing/registry.d.ts.map +1 -0
  349. package/dist/routing/registry.js +459 -0
  350. package/dist/routing/registry.js.map +1 -0
  351. package/dist/routing/schemas/merge.schema.d.ts +5 -0
  352. package/dist/routing/schemas/merge.schema.d.ts.map +1 -0
  353. package/dist/routing/schemas/merge.schema.js +2 -0
  354. package/dist/routing/schemas/merge.schema.js.map +1 -0
  355. package/dist/routing/types.d.ts +358 -0
  356. package/dist/routing/types.d.ts.map +1 -0
  357. package/dist/routing/types.js +89 -0
  358. package/dist/routing/types.js.map +1 -0
  359. package/dist/schema/extend-zod.d.ts +137 -0
  360. package/dist/schema/extend-zod.d.ts.map +1 -0
  361. package/dist/schema/extend-zod.js +243 -0
  362. package/dist/schema/extend-zod.js.map +1 -0
  363. package/dist/schema/index.d.ts +9 -0
  364. package/dist/schema/index.d.ts.map +1 -0
  365. package/dist/schema/index.js +10 -0
  366. package/dist/schema/index.js.map +1 -0
  367. package/dist/schema/references.d.ts +9 -0
  368. package/dist/schema/references.d.ts.map +1 -0
  369. package/dist/schema/references.js +9 -0
  370. package/dist/schema/references.js.map +1 -0
  371. package/dist/schema/resolver.d.ts +45 -0
  372. package/dist/schema/resolver.d.ts.map +1 -0
  373. package/dist/schema/resolver.js +267 -0
  374. package/dist/schema/resolver.js.map +1 -0
  375. package/dist/schema/schemas/extend-zod.schema.d.ts +16 -0
  376. package/dist/schema/schemas/extend-zod.schema.d.ts.map +1 -0
  377. package/dist/schema/schemas/extend-zod.schema.js +2 -0
  378. package/dist/schema/schemas/extend-zod.schema.js.map +1 -0
  379. package/dist/schema/schemas/references.schema.d.ts +70 -0
  380. package/dist/schema/schemas/references.schema.d.ts.map +1 -0
  381. package/dist/schema/schemas/references.schema.js +2 -0
  382. package/dist/schema/schemas/references.schema.js.map +1 -0
  383. package/dist/schemas/collection.d.ts +31 -0
  384. package/dist/schemas/collection.d.ts.map +1 -0
  385. package/dist/schemas/collection.js +22 -0
  386. package/dist/schemas/collection.js.map +1 -0
  387. package/dist/schemas/config-manifest-descriptor.d.ts +495 -0
  388. package/dist/schemas/config-manifest-descriptor.d.ts.map +1 -0
  389. package/dist/schemas/config-manifest-descriptor.js +210 -0
  390. package/dist/schemas/config-manifest-descriptor.js.map +1 -0
  391. package/dist/schemas/config-registry-state.d.ts +8 -0
  392. package/dist/schemas/config-registry-state.d.ts.map +1 -0
  393. package/dist/schemas/config-registry-state.js +6 -0
  394. package/dist/schemas/config-registry-state.js.map +1 -0
  395. package/dist/schemas/doctor.schema.d.ts +25 -0
  396. package/dist/schemas/doctor.schema.d.ts.map +1 -0
  397. package/dist/schemas/doctor.schema.js +2 -0
  398. package/dist/schemas/doctor.schema.js.map +1 -0
  399. package/dist/schemas/index.d.ts +8 -0
  400. package/dist/schemas/index.d.ts.map +1 -0
  401. package/dist/schemas/index.js +21 -0
  402. package/dist/schemas/index.js.map +1 -0
  403. package/dist/server/index.d.ts +5 -0
  404. package/dist/server/index.d.ts.map +1 -0
  405. package/dist/server/index.js +4 -0
  406. package/dist/server/index.js.map +1 -0
  407. package/dist/services/config-accessor.d.ts +40 -0
  408. package/dist/services/config-accessor.d.ts.map +1 -0
  409. package/dist/services/config-accessor.js +180 -0
  410. package/dist/services/config-accessor.js.map +1 -0
  411. package/dist/services/config-storage/index.d.ts +8 -0
  412. package/dist/services/config-storage/index.d.ts.map +1 -0
  413. package/dist/services/config-storage/index.js +7 -0
  414. package/dist/services/config-storage/index.js.map +1 -0
  415. package/dist/services/config-storage/service.d.ts +63 -0
  416. package/dist/services/config-storage/service.d.ts.map +1 -0
  417. package/dist/services/config-storage/service.js +234 -0
  418. package/dist/services/config-storage/service.js.map +1 -0
  419. package/dist/services/config.d.ts +3 -0
  420. package/dist/services/config.d.ts.map +1 -0
  421. package/dist/services/config.js +30 -0
  422. package/dist/services/config.js.map +1 -0
  423. package/dist/services/encryption.d.ts +114 -0
  424. package/dist/services/encryption.d.ts.map +1 -0
  425. package/dist/services/encryption.js +232 -0
  426. package/dist/services/encryption.js.map +1 -0
  427. package/dist/services/index.d.ts +12 -0
  428. package/dist/services/index.d.ts.map +1 -0
  429. package/dist/services/index.js +16 -0
  430. package/dist/services/index.js.map +1 -0
  431. package/dist/services/loader/loader.descriptor.d.ts +103 -0
  432. package/dist/services/loader/loader.descriptor.d.ts.map +1 -0
  433. package/dist/services/loader/loader.descriptor.js +60 -0
  434. package/dist/services/loader/loader.descriptor.js.map +1 -0
  435. package/dist/services/loader/loader.impl.cloud.d.ts +55 -0
  436. package/dist/services/loader/loader.impl.cloud.d.ts.map +1 -0
  437. package/dist/services/loader/loader.impl.cloud.js +182 -0
  438. package/dist/services/loader/loader.impl.cloud.js.map +1 -0
  439. package/dist/services/loader/loader.impl.consumer.d.ts +48 -0
  440. package/dist/services/loader/loader.impl.consumer.d.ts.map +1 -0
  441. package/dist/services/loader/loader.impl.consumer.js +175 -0
  442. package/dist/services/loader/loader.impl.consumer.js.map +1 -0
  443. package/dist/services/loader/loader.impl.consumer.local-first.d.ts +59 -0
  444. package/dist/services/loader/loader.impl.consumer.local-first.d.ts.map +1 -0
  445. package/dist/services/loader/loader.impl.consumer.local-first.js +347 -0
  446. package/dist/services/loader/loader.impl.consumer.local-first.js.map +1 -0
  447. package/dist/services/manifest-utils.d.ts +47 -0
  448. package/dist/services/manifest-utils.d.ts.map +1 -0
  449. package/dist/services/manifest-utils.js +105 -0
  450. package/dist/services/manifest-utils.js.map +1 -0
  451. package/dist/services/schemas/config-accessor.schema.d.ts +10 -0
  452. package/dist/services/schemas/config-accessor.schema.d.ts.map +1 -0
  453. package/dist/services/schemas/config-accessor.schema.js +2 -0
  454. package/dist/services/schemas/config-accessor.schema.js.map +1 -0
  455. package/dist/services/schemas/encryption.schema.d.ts +22 -0
  456. package/dist/services/schemas/encryption.schema.d.ts.map +1 -0
  457. package/dist/services/schemas/encryption.schema.js +2 -0
  458. package/dist/services/schemas/encryption.schema.js.map +1 -0
  459. package/dist/services/schemas/manifest-utils.schema.d.ts +4 -0
  460. package/dist/services/schemas/manifest-utils.schema.d.ts.map +1 -0
  461. package/dist/services/schemas/manifest-utils.schema.js +2 -0
  462. package/dist/services/schemas/manifest-utils.schema.js.map +1 -0
  463. package/dist/settings/assemble.d.ts +28 -0
  464. package/dist/settings/assemble.d.ts.map +1 -0
  465. package/dist/settings/assemble.js +30 -0
  466. package/dist/settings/assemble.js.map +1 -0
  467. package/dist/settings/index.d.ts +10 -0
  468. package/dist/settings/index.d.ts.map +1 -0
  469. package/dist/settings/index.js +10 -0
  470. package/dist/settings/index.js.map +1 -0
  471. package/dist/settings/settings-section.schema.d.ts +49 -0
  472. package/dist/settings/settings-section.schema.d.ts.map +1 -0
  473. package/dist/settings/settings-section.schema.js +70 -0
  474. package/dist/settings/settings-section.schema.js.map +1 -0
  475. package/dist/storage/adapter.d.ts +11 -0
  476. package/dist/storage/adapter.d.ts.map +1 -0
  477. package/dist/storage/adapter.js +8 -0
  478. package/dist/storage/adapter.js.map +1 -0
  479. package/dist/storage/index.d.ts +8 -0
  480. package/dist/storage/index.d.ts.map +1 -0
  481. package/dist/storage/index.js +8 -0
  482. package/dist/storage/index.js.map +1 -0
  483. package/dist/storage/schemas.d.ts +257 -0
  484. package/dist/storage/schemas.d.ts.map +1 -0
  485. package/dist/storage/schemas.js +179 -0
  486. package/dist/storage/schemas.js.map +1 -0
  487. package/dist/storage/types.d.ts +74 -0
  488. package/dist/storage/types.d.ts.map +1 -0
  489. package/dist/storage/types.js +7 -0
  490. package/dist/storage/types.js.map +1 -0
  491. package/dist/system-constants.d.ts +95 -0
  492. package/dist/system-constants.d.ts.map +1 -0
  493. package/dist/system-constants.js +110 -0
  494. package/dist/system-constants.js.map +1 -0
  495. package/package.json +417 -0
  496. package/src/adapters/cli/flags.ts +260 -0
  497. package/src/adapters/cli/index.ts +24 -0
  498. package/src/adapters/cli/mappings.ts +43 -0
  499. package/src/adapters/cli/prompts.ts +70 -0
  500. package/src/adapters/cli/schemas/flags.schema.ts +8 -0
  501. package/src/adapters/cli/schemas/mappings.schema.ts +3 -0
  502. package/src/adapters/cli/schemas/prompts.schema.ts +4 -0
  503. package/src/adapters/cli/schemas/wizard.schema.ts +21 -0
  504. package/src/adapters/cli/wizard.ts +106 -0
  505. package/src/adapters/web/components/ManifestForm.svelte +817 -0
  506. package/src/browser/index.ts +86 -0
  507. package/src/cli/settings.descriptor.ts +23 -0
  508. package/src/cli/types.ts +59 -0
  509. package/src/client/index.ts +169 -0
  510. package/src/client/storage.ts +76 -0
  511. package/src/collection/collection.ts +121 -0
  512. package/src/collection/index.ts +6 -0
  513. package/src/common/index.ts +86 -0
  514. package/src/config.context.descriptor.ts +12 -0
  515. package/src/config.plugin.ts +214 -0
  516. package/src/crud/base-types.ts +10 -0
  517. package/src/crud/index.ts +15 -0
  518. package/src/crud/schemas/base-types.schema.ts +20 -0
  519. package/src/crud/schemas/shared.schema.ts +14 -0
  520. package/src/crud/shared.ts +8 -0
  521. package/src/crud/types.ts +299 -0
  522. package/src/docs/environment.docs.descriptor.ts +385 -0
  523. package/src/docs/manifests.docs.descriptor.ts +505 -0
  524. package/src/docs/validation.docs.descriptor.ts +443 -0
  525. package/src/doctor.ts +143 -0
  526. package/src/env.runtime.ts +49 -0
  527. package/src/env.ts +91 -0
  528. package/src/environment/current.ts +108 -0
  529. package/src/environment/environment.config.descriptor.ts +60 -0
  530. package/src/environment/environment.config.schema.ts +24 -0
  531. package/src/environment/environment.local.descriptor.ts +45 -0
  532. package/src/environment/environment.plugin.ts +31 -0
  533. package/src/environment/environment.production.descriptor.ts +40 -0
  534. package/src/environment/environment.staging.descriptor.ts +25 -0
  535. package/src/environment/index.ts +22 -0
  536. package/src/environment/kinds/environment.default.ts +57 -0
  537. package/src/environment/kinds/environment.interface.ts +10 -0
  538. package/src/environment/kinds/environment.kind.ts +69 -0
  539. package/src/environment/kinds/environment.schema.ts +57 -0
  540. package/src/environment/kinds/index.ts +8 -0
  541. package/src/environment/kinds/schemas/environment.interface.schema.ts +11 -0
  542. package/src/environment/kinds/schemas/environment.schema.ts +24 -0
  543. package/src/environment/schemas/current.schema.ts +21 -0
  544. package/src/environment/schemas/environment.config.schema.ts +3 -0
  545. package/src/extensions/index.ts +26 -0
  546. package/src/extensions/registry.ts +179 -0
  547. package/src/extensions/types.ts +123 -0
  548. package/src/form/core/field-resolver.ts +380 -0
  549. package/src/form/core/groups.ts +96 -0
  550. package/src/form/core/index.ts +41 -0
  551. package/src/form/core/nested-utils.ts +115 -0
  552. package/src/form/core/schemas/validation.schema.ts +9 -0
  553. package/src/form/core/types.ts +115 -0
  554. package/src/form/core/validation.ts +137 -0
  555. package/src/form/core/visibility.ts +172 -0
  556. package/src/form/index.ts +36 -0
  557. package/src/index.ts +69 -0
  558. package/src/js-yaml.d.ts +4 -0
  559. package/src/loader/cli/index.ts +386 -0
  560. package/src/loader/cli/loaders.ts +153 -0
  561. package/src/loader/cli/types.ts +181 -0
  562. package/src/loader/cli/utils.ts +236 -0
  563. package/src/loader/client.ts +140 -0
  564. package/src/loader/discovery.ts +291 -0
  565. package/src/loader/file-loader.ts +262 -0
  566. package/src/loader/index.server.ts +389 -0
  567. package/src/loader/index.ts +18 -0
  568. package/src/loader/merge.ts +366 -0
  569. package/src/loader/schemas/merge.schema.ts +8 -0
  570. package/src/loader/schemas/validation.schema.ts +18 -0
  571. package/src/loader/server.ts +15 -0
  572. package/src/loader/types.ts +142 -0
  573. package/src/loader/validation.ts +261 -0
  574. package/src/manifest/builder.ts +452 -0
  575. package/src/manifest/config-manifest.ts +482 -0
  576. package/src/manifest/index.ts +92 -0
  577. package/src/manifest/schema.ts +249 -0
  578. package/src/manifest/schemas/builder.schema.ts +33 -0
  579. package/src/manifest/schemas/config-manifest.schema.ts +1 -0
  580. package/src/manifest/schemas/schema.schema.ts +99 -0
  581. package/src/manifest/types.ts +726 -0
  582. package/src/routing/index.ts +105 -0
  583. package/src/routing/merge.ts +589 -0
  584. package/src/routing/registry.ts +595 -0
  585. package/src/routing/schemas/merge.schema.ts +6 -0
  586. package/src/routing/types.ts +470 -0
  587. package/src/schema/extend-zod.ts +289 -0
  588. package/src/schema/index.ts +44 -0
  589. package/src/schema/references.ts +21 -0
  590. package/src/schema/resolver.ts +343 -0
  591. package/src/schema/schemas/extend-zod.schema.ts +16 -0
  592. package/src/schema/schemas/references.schema.ts +86 -0
  593. package/src/schemas/collection.ts +38 -0
  594. package/src/schemas/config-manifest-descriptor.ts +259 -0
  595. package/src/schemas/config-registry-state.ts +13 -0
  596. package/src/schemas/doctor.schema.ts +27 -0
  597. package/src/schemas/index.ts +53 -0
  598. package/src/server/index.ts +4 -0
  599. package/src/services/config-accessor.ts +218 -0
  600. package/src/services/config-storage/index.ts +8 -0
  601. package/src/services/config-storage/service.ts +355 -0
  602. package/src/services/config.ts +37 -0
  603. package/src/services/encryption.ts +260 -0
  604. package/src/services/index.ts +34 -0
  605. package/src/services/loader/loader.descriptor.ts +96 -0
  606. package/src/services/loader/loader.impl.cloud.ts +214 -0
  607. package/src/services/loader/loader.impl.consumer.local-first.ts +417 -0
  608. package/src/services/loader/loader.impl.consumer.ts +213 -0
  609. package/src/services/manifest-utils.ts +119 -0
  610. package/src/services/schemas/config-accessor.schema.ts +11 -0
  611. package/src/services/schemas/encryption.schema.ts +23 -0
  612. package/src/services/schemas/manifest-utils.schema.ts +4 -0
  613. package/src/settings/assemble.ts +46 -0
  614. package/src/settings/index.ts +19 -0
  615. package/src/settings/settings-section.schema.ts +84 -0
  616. package/src/storage/adapter.ts +12 -0
  617. package/src/storage/index.ts +48 -0
  618. package/src/storage/schemas.ts +215 -0
  619. package/src/storage/types.ts +88 -0
  620. package/src/system-constants.ts +121 -0
@@ -0,0 +1,86 @@
1
+ export type ReferenceSource =
2
+ | ConfigReference
3
+ | NestedReference
4
+ | ComputedReference
5
+ | EnumReference;
6
+
7
+ export interface ConfigReference {
8
+ type: 'config';
9
+ path: string;
10
+ valueField?: string;
11
+ labelField?: string;
12
+ descriptionField?: string;
13
+ iconField?: string;
14
+ filter?: string | ((item: unknown) => boolean);
15
+ }
16
+
17
+ export interface NestedReference {
18
+ type: 'nested';
19
+ parentPath: string;
20
+ parentField: string;
21
+ nestedPath: string;
22
+ valueField?: string;
23
+ labelField?: string;
24
+ descriptionField?: string;
25
+ }
26
+
27
+ export interface ComputedReference {
28
+ type: 'computed';
29
+ resolver: string;
30
+ dependsOn?: string[];
31
+ cacheDuration?: number;
32
+ }
33
+
34
+ export interface EnumReference {
35
+ type: 'enum';
36
+ values: Array<{
37
+ value: string;
38
+ label?: string;
39
+ description?: string;
40
+ icon?: string;
41
+ }>;
42
+ }
43
+
44
+ export interface EmptyStateConfig {
45
+ message: string;
46
+ createAction?: {
47
+ label: string;
48
+ route?: string;
49
+ inline?: boolean;
50
+ manifestId?: string;
51
+ };
52
+ }
53
+
54
+ export interface ReferenceMeta {
55
+ source: ReferenceSource;
56
+ as?: 'select' | 'radio' | 'combobox' | 'autocomplete';
57
+ multiple?: boolean;
58
+ emptyState?: EmptyStateConfig;
59
+ placeholder?: string;
60
+ }
61
+
62
+ export interface ResolvedOption {
63
+ value: string;
64
+ label: string;
65
+ description?: string;
66
+ icon?: string;
67
+ disabled?: boolean;
68
+ }
69
+
70
+ export interface ResolutionResult {
71
+ options: ResolvedOption[];
72
+ isLoading: boolean;
73
+ error?: string;
74
+ isEmpty: boolean;
75
+ }
76
+
77
+ export interface ResolutionContext {
78
+ getConfig: <T = unknown>(path: string) => T | undefined;
79
+ formValues: Record<string, unknown>;
80
+ runtimeContext: Record<string, unknown>;
81
+ }
82
+
83
+ export type ComputedResolverFn = (
84
+ dependencyValues: Record<string, unknown>,
85
+ context: ResolutionContext
86
+ ) => Promise<ResolvedOption[]>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Config Collection Descriptor Schema
3
+ *
4
+ * A config/collection groups related config manifests into a named
5
+ * collection with unified load/subscribe/dispose lifecycle.
6
+ */
7
+
8
+ import * as z from 'zod/v4';
9
+
10
+ /**
11
+ * Descriptor schema for config/collection kind.
12
+ */
13
+ export const ConfigCollectionDescriptorSchema = z.object({
14
+ kind: z.literal('config/collection'),
15
+ id: z.string().min(1),
16
+ name: z.string().optional(),
17
+ description: z.string().optional(),
18
+ /** Manifest IDs this collection groups */
19
+ manifests: z.array(z.string().min(1)).min(1),
20
+ tags: z.array(z.string()).optional(),
21
+ hardware: z.array(z.string()).optional(),
22
+ enabled: z.boolean().optional()
23
+ });
24
+
25
+ export type ConfigCollectionDescriptor = z.infer<typeof ConfigCollectionDescriptorSchema>;
26
+
27
+ // Collection Runtime Types
28
+
29
+ type ManifestData = Record<string, unknown> | null;
30
+
31
+ export interface CollectionState {
32
+ /** Loaded data keyed by manifest ID */
33
+ data: Record<string, ManifestData>;
34
+ /** Manifest IDs that failed to resolve */
35
+ errors: string[];
36
+ }
37
+
38
+ export type CollectionCallback = (state: CollectionState) => void;
@@ -0,0 +1,259 @@
1
+ /**
2
+ * Config Manifest Descriptor Schema
3
+ *
4
+ * Extends StorageManifestDescriptor with config-specific metadata
5
+ * for form rendering, navigation, and UI behavior.
6
+ */
7
+
8
+ import * as z from 'zod/v4';
9
+ import { StorageManifestDescriptorSchema } from '@vibesdotdev/storage/schemas';
10
+
11
+ // Config-Specific Types
12
+
13
+ /**
14
+ * Configuration tiers determine storage location, visibility, and access patterns
15
+ */
16
+ export const ConfigTierSchema = z.enum(['system', 'user', 'internal']);
17
+ export type ConfigTier = z.infer<typeof ConfigTierSchema>;
18
+
19
+ /**
20
+ * UI surfaces that can render configuration forms
21
+ */
22
+ export const ConfigSurfaceSchema = z.enum(['tui', 'cli', 'web', 'bridge']);
23
+ export type ConfigSurface = z.infer<typeof ConfigSurfaceSchema>;
24
+
25
+ /**
26
+ * Hardware context for context-aware defaults
27
+ */
28
+ export const HardwareContextSchema = z.enum(['cloud', 'consumer', 'gpu', 'cpu-only']);
29
+ export type HardwareContext = z.infer<typeof HardwareContextSchema>;
30
+
31
+ /**
32
+ * Environment context
33
+ */
34
+ export const EnvironmentContextSchema = z.enum(['development', 'staging', 'production']);
35
+ export type EnvironmentContext = z.infer<typeof EnvironmentContextSchema>;
36
+
37
+ /**
38
+ * UI component types for rendering fields
39
+ */
40
+ export const FieldComponentSchema = z.enum([
41
+ 'input',
42
+ 'textarea',
43
+ 'number',
44
+ 'select',
45
+ 'multi-select',
46
+ 'radio-group',
47
+ 'checkbox',
48
+ 'switch',
49
+ 'slider',
50
+ 'color',
51
+ 'date',
52
+ 'datetime',
53
+ 'file',
54
+ 'password',
55
+ 'secret',
56
+ 'json',
57
+ 'code',
58
+ 'reference',
59
+ 'multi-reference',
60
+ 'custom',
61
+ 'list'
62
+ ]);
63
+ export type FieldComponent = z.infer<typeof FieldComponentSchema>;
64
+
65
+ /**
66
+ * Field width in form layout
67
+ */
68
+ export const FieldWidthSchema = z.enum(['full', 'half', 'third', 'quarter']);
69
+ export type FieldWidth = z.infer<typeof FieldWidthSchema>;
70
+
71
+ // Field Metadata Schemas
72
+
73
+ /**
74
+ * UI configuration for a field
75
+ */
76
+ export const FieldUISchema = z.object({
77
+ label: z.string(),
78
+ description: z.string().optional(),
79
+ helpText: z.string().optional(),
80
+ placeholder: z.string().optional(),
81
+ icon: z.string().optional(),
82
+ component: FieldComponentSchema.optional(),
83
+ customComponent: z.string().optional(),
84
+ order: z.number().optional(),
85
+ group: z.string().optional(),
86
+ width: FieldWidthSchema.optional(),
87
+ hideLabel: z.boolean().optional(),
88
+ className: z.string().optional()
89
+ });
90
+ export type FieldUI = z.infer<typeof FieldUISchema>;
91
+
92
+ /**
93
+ * Field option for enum/select fields
94
+ */
95
+ export const FieldOptionSchema = z.object({
96
+ value: z.unknown(),
97
+ label: z.string(),
98
+ description: z.string().optional(),
99
+ icon: z.string().optional()
100
+ // disabledWhen and hiddenWhen use ConfigRule which is complex - keep as unknown
101
+ });
102
+ export type FieldOption = z.infer<typeof FieldOptionSchema>;
103
+
104
+ /**
105
+ * Reference field configuration
106
+ */
107
+ export const ReferenceConfigSchema = z.object({
108
+ entity: z.string(),
109
+ valueField: z.string().default('id'),
110
+ labelField: z.string().default('name'),
111
+ descriptionField: z.string().optional(),
112
+ endpoint: z.string().optional(),
113
+ filter: z.record(z.string(), z.unknown()).optional(),
114
+ dynamicFilter: z.record(z.string(), z.string()).optional(),
115
+ allowCreate: z.boolean().optional(),
116
+ orderable: z.boolean().optional(),
117
+ maxItems: z.number().optional(),
118
+ minItems: z.number().optional(),
119
+ customRenderer: z.string().optional(),
120
+ customRendererProps: z.record(z.string(), z.unknown()).optional()
121
+ });
122
+ export type ReferenceConfig = z.infer<typeof ReferenceConfigSchema>;
123
+
124
+ /**
125
+ * Field access control
126
+ */
127
+ export const FieldAccessSchema = z.object({
128
+ isPublic: z.boolean().optional(),
129
+ isEditable: z.boolean().optional(),
130
+ requiredRole: z.string().optional(),
131
+ surfaces: z.array(ConfigSurfaceSchema).optional()
132
+ });
133
+ export type FieldAccess = z.infer<typeof FieldAccessSchema>;
134
+
135
+ /**
136
+ * Complete field metadata
137
+ */
138
+ export const ConfigFieldMetaSchema = z.object({
139
+ ui: FieldUISchema,
140
+ // Rules are complex with functions - keep as unknown for descriptor
141
+ rules: z.unknown().optional(),
142
+ // Defaults can contain resolvers - keep as unknown
143
+ defaults: z.unknown().optional(),
144
+ options: z.array(FieldOptionSchema).optional(),
145
+ reference: ReferenceConfigSchema.optional(),
146
+ access: FieldAccessSchema.optional(),
147
+ dependsOn: z.array(z.string()).optional(),
148
+ tags: z.array(z.string()).optional()
149
+ });
150
+ export type ConfigFieldMeta = z.infer<typeof ConfigFieldMetaSchema>;
151
+
152
+ /**
153
+ * Field group for UI organization
154
+ */
155
+ export const ConfigFieldGroupSchema = z.object({
156
+ id: z.string(),
157
+ label: z.string(),
158
+ description: z.string().optional(),
159
+ icon: z.string().optional(),
160
+ order: z.number().optional(),
161
+ collapsible: z.boolean().optional(),
162
+ defaultCollapsed: z.boolean().optional()
163
+ // visibleWhen uses ConfigRule - omit for descriptor
164
+ });
165
+ export type ConfigFieldGroup = z.infer<typeof ConfigFieldGroupSchema>;
166
+
167
+ // Navigation Schema
168
+
169
+ /**
170
+ * Navigation configuration for a manifest
171
+ */
172
+ export const ManifestNavigationSchema = z.object({
173
+ page: z.string().nullable(),
174
+ section: z.string().optional(),
175
+ order: z.number().default(100),
176
+ showInGlobalSettings: z.boolean().optional(),
177
+ parent: z.string().optional(),
178
+ label: z.string().optional(),
179
+ icon: z.string().optional(),
180
+ tags: z.array(z.string()).optional(),
181
+ params: z.record(z.string(), z.string()).optional()
182
+ });
183
+ export type ManifestNavigation = z.infer<typeof ManifestNavigationSchema>;
184
+
185
+ // Context Constraints Schema
186
+
187
+ /**
188
+ * Constraints on when a manifest applies
189
+ */
190
+ export const ManifestContextSchema = z.object({
191
+ hardware: z.array(HardwareContextSchema).optional(),
192
+ environment: z.array(EnvironmentContextSchema).optional(),
193
+ surfaces: z.array(ConfigSurfaceSchema).optional(),
194
+ requiredFeatures: z.array(z.string()).optional()
195
+ });
196
+ export type ManifestContext = z.infer<typeof ManifestContextSchema>;
197
+
198
+ // Config Manifest Descriptor
199
+
200
+ /**
201
+ * Config manifest descriptor extends storage manifest with form metadata.
202
+ *
203
+ * A config manifest is a storage manifest that:
204
+ * - Has form field metadata for UI rendering
205
+ * - Has navigation configuration for placement in settings
206
+ * - Has context constraints for conditional availability
207
+ * - Has a configuration tier (system, user, internal)
208
+ */
209
+ export const ConfigManifestDescriptorSchema = StorageManifestDescriptorSchema.extend({
210
+ kind: z.literal('config/manifest'),
211
+
212
+ // Classification
213
+
214
+ /** Configuration tier */
215
+ tier: ConfigTierSchema,
216
+ /** Category within the tier (for organization) */
217
+ category: z.string().optional(),
218
+
219
+ // Field Metadata
220
+
221
+ /** Field metadata keyed by field path */
222
+ fields: z.record(z.string(), ConfigFieldMetaSchema),
223
+ /** Field groups for UI organization */
224
+ groups: z.array(ConfigFieldGroupSchema).optional(),
225
+
226
+ // Navigation
227
+
228
+ /** Navigation and UI placement configuration */
229
+ navigation: ManifestNavigationSchema.optional(),
230
+
231
+ // Config Files
232
+
233
+ /** Optional config file location(s) for loading config from project files */
234
+ configFiles: z
235
+ .union([
236
+ z.object({ pattern: z.string() }),
237
+ z.array(z.object({ pattern: z.string() }))
238
+ ])
239
+ .optional(),
240
+
241
+ // Context
242
+
243
+ /** Context constraints for when this manifest applies */
244
+ context: ManifestContextSchema.optional(),
245
+
246
+ // Display
247
+
248
+ /** Icon (emoji or icon name) */
249
+ icon: z.string().optional()
250
+ });
251
+
252
+ export type ConfigManifestDescriptor = z.infer<typeof ConfigManifestDescriptorSchema>;
253
+
254
+ /**
255
+ * Type guard for config manifest descriptor
256
+ */
257
+ export function isConfigManifestDescriptor(value: unknown): value is ConfigManifestDescriptor {
258
+ return ConfigManifestDescriptorSchema.safeParse(value).success;
259
+ }
@@ -0,0 +1,13 @@
1
+ import type { ConfigManifestDescriptor } from '../schemas/config-manifest-descriptor.ts';
2
+
3
+ export interface ConfigRegistryState {
4
+ manifests: ConfigManifestDescriptor[];
5
+ loaded: boolean;
6
+ error: string | null;
7
+ }
8
+
9
+ export const defaultConfigRegistryState: ConfigRegistryState = {
10
+ manifests: [],
11
+ loaded: false,
12
+ error: null
13
+ };
@@ -0,0 +1,27 @@
1
+ export type DiagnosticSeverity = 'error' | 'warning' | 'info';
2
+
3
+ export interface DiagnosticIssue {
4
+ path: string;
5
+ message: string;
6
+ severity: DiagnosticSeverity;
7
+ code?: string;
8
+ }
9
+
10
+ export interface DetailedDiagnostic {
11
+ ready: boolean;
12
+ issues: DiagnosticIssue[];
13
+ summary: {
14
+ errors: number;
15
+ warnings: number;
16
+ info: number;
17
+ };
18
+ }
19
+
20
+ export interface DiagnoseConfigOptions {
21
+ checkDeprecated?: boolean;
22
+ checkEndpoints?: boolean;
23
+ customValidators?: Array<{
24
+ path: string;
25
+ fn: (value: unknown) => string | null;
26
+ }>;
27
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Config Module Schemas
3
+ *
4
+ * Runtime-compatible schemas for config manifest descriptors.
5
+ */
6
+
7
+ export {
8
+ // Main descriptor
9
+ ConfigManifestDescriptorSchema,
10
+ type ConfigManifestDescriptor,
11
+ isConfigManifestDescriptor,
12
+
13
+ // Classification
14
+ ConfigTierSchema,
15
+ type ConfigTier,
16
+ ConfigSurfaceSchema,
17
+ type ConfigSurface,
18
+ HardwareContextSchema,
19
+ type HardwareContext,
20
+ EnvironmentContextSchema,
21
+ type EnvironmentContext,
22
+
23
+ // Field components
24
+ FieldComponentSchema,
25
+ type FieldComponent,
26
+ FieldWidthSchema,
27
+ type FieldWidth,
28
+
29
+ // Field metadata
30
+ FieldUISchema,
31
+ type FieldUI,
32
+ FieldOptionSchema,
33
+ type FieldOption,
34
+ ReferenceConfigSchema,
35
+ type ReferenceConfig,
36
+ FieldAccessSchema,
37
+ type FieldAccess,
38
+ ConfigFieldMetaSchema,
39
+ type ConfigFieldMeta,
40
+ ConfigFieldGroupSchema,
41
+ type ConfigFieldGroup,
42
+
43
+ // Navigation
44
+ ManifestNavigationSchema,
45
+ type ManifestNavigation,
46
+
47
+ // Context
48
+ ManifestContextSchema,
49
+ type ManifestContext
50
+ } from './config-manifest-descriptor';
51
+
52
+ // Config Collection
53
+ export { ConfigCollectionDescriptorSchema, type ConfigCollectionDescriptor } from './collection';
@@ -0,0 +1,4 @@
1
+ export { ConfigCollectionDescriptorSchema } from '../schemas/index.ts';
2
+ export type { ConfigCollectionDescriptor } from '../schemas/index.ts';
3
+ import * as configLoaderSrc from '../loader/index.ts';
4
+ export const configLoader = configLoaderSrc;
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Config Accessor
3
+ *
4
+ * Provides a simple accessor interface for config values that works with
5
+ * the runtime and unified loader. Replaces the legacy registry accessor.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const accessor = await createConfigAccessor(manifest);
10
+ *
11
+ * // Get current value
12
+ * const value = accessor.get();
13
+ *
14
+ * // Set a field
15
+ * accessor.setField('fieldName', newValue);
16
+ *
17
+ * // Save changes
18
+ * await accessor.save();
19
+ * ```
20
+ */
21
+
22
+ import type { ConfigManifest, ConfigContext } from '../manifest/types.ts';
23
+ import { loadConfigFromManifest } from '../loader/index.ts';
24
+ import { getVibesRuntime } from '@vibesdotdev/runtime';
25
+ import type { ConfigLoaderInterface } from './loader/loader.descriptor.ts';
26
+
27
+ import type { ConfigAccessor } from './schemas/config-accessor.schema.ts';
28
+
29
+ export type { ConfigAccessor } from './schemas/config-accessor.schema.ts';
30
+
31
+ /**
32
+ * Internal state for a config accessor
33
+ */
34
+ interface AccessorState<T> {
35
+ values: T | null;
36
+ dirty: boolean;
37
+ subscribers: Set<(values: T | null) => void>;
38
+ }
39
+
40
+ /**
41
+ * Create a config accessor for a manifest
42
+ *
43
+ * @param manifest - The config manifest
44
+ * @param context - Optional config context for initialization
45
+ * @returns A promise that resolves to the accessor
46
+ */
47
+ export async function createConfigAccessor<T extends Record<string, unknown>>(
48
+ manifest: ConfigManifest<any>,
49
+ _context?: Partial<ConfigContext>
50
+ ): Promise<ConfigAccessor<T>> {
51
+ const state: AccessorState<T> = {
52
+ values: null,
53
+ dirty: false,
54
+ subscribers: new Set()
55
+ };
56
+
57
+ // Load initial values
58
+ const result = await loadConfigFromManifest<T>({
59
+ manifest,
60
+ includeStorage: true,
61
+ includeDefaults: true
62
+ });
63
+ state.values = result.data;
64
+
65
+ const notifySubscribers = () => {
66
+ for (const callback of state.subscribers) {
67
+ callback(state.values);
68
+ }
69
+ };
70
+
71
+ return {
72
+ get(): T | null {
73
+ return state.values;
74
+ },
75
+
76
+ setField<K extends keyof T>(field: K, value: T[K]): void {
77
+ if (state.values === null) {
78
+ state.values = { [field]: value } as T;
79
+ } else {
80
+ state.values = { ...state.values, [field]: value };
81
+ }
82
+ state.dirty = true;
83
+ notifySubscribers();
84
+ },
85
+
86
+ setFields(fields: Partial<T>): void {
87
+ if (state.values === null) {
88
+ state.values = fields as T;
89
+ } else {
90
+ state.values = { ...state.values, ...fields };
91
+ }
92
+ state.dirty = true;
93
+ notifySubscribers();
94
+ },
95
+
96
+ subscribe(callback: (values: T | null) => void): () => void {
97
+ state.subscribers.add(callback);
98
+ return () => {
99
+ state.subscribers.delete(callback);
100
+ };
101
+ },
102
+
103
+ async save(): Promise<void> {
104
+ if (!state.values || !state.dirty) return;
105
+
106
+ const loader = (await getVibesRuntime()
107
+ .query('config/loader')
108
+ .resolve()) as ConfigLoaderInterface | undefined;
109
+ if (!loader) throw new Error('No config/loader registered');
110
+ await loader.save(manifest, state.values);
111
+ state.dirty = false;
112
+ },
113
+
114
+ async reload(): Promise<void> {
115
+ const result = await loadConfigFromManifest<T>({
116
+ manifest,
117
+ includeStorage: true,
118
+ includeDefaults: true
119
+ });
120
+ state.values = result.data;
121
+ state.dirty = false;
122
+ notifySubscribers();
123
+ },
124
+
125
+ isDirty(): boolean {
126
+ return state.dirty;
127
+ }
128
+ };
129
+ }
130
+
131
+ /**
132
+ * Synchronous config accessor for cases where values are already loaded
133
+ * Useful for UI components that need immediate access
134
+ */
135
+ export function createSyncConfigAccessor<T extends Record<string, unknown>>(
136
+ manifest: ConfigManifest<any>,
137
+ initialValues: T | null = null
138
+ ): ConfigAccessor<T> & { setValue: (values: T) => void } {
139
+ const state: AccessorState<T> = {
140
+ values: initialValues,
141
+ dirty: false,
142
+ subscribers: new Set()
143
+ };
144
+
145
+ const notifySubscribers = () => {
146
+ for (const callback of state.subscribers) {
147
+ callback(state.values);
148
+ }
149
+ };
150
+
151
+ return {
152
+ get(): T | null {
153
+ return state.values;
154
+ },
155
+
156
+ setValue(values: T): void {
157
+ state.values = values;
158
+ notifySubscribers();
159
+ },
160
+
161
+ setField<K extends keyof T>(field: K, value: T[K]): void {
162
+ if (state.values === null) {
163
+ state.values = { [field]: value } as T;
164
+ } else {
165
+ state.values = { ...state.values, [field]: value };
166
+ }
167
+ state.dirty = true;
168
+ notifySubscribers();
169
+ },
170
+
171
+ setFields(fields: Partial<T>): void {
172
+ if (state.values === null) {
173
+ state.values = fields as T;
174
+ } else {
175
+ state.values = { ...state.values, ...fields };
176
+ }
177
+ state.dirty = true;
178
+ notifySubscribers();
179
+ },
180
+
181
+ subscribe(callback: (values: T | null) => void): () => void {
182
+ state.subscribers.add(callback);
183
+ callback(state.values);
184
+ return () => {
185
+ state.subscribers.delete(callback);
186
+ };
187
+ },
188
+
189
+ async save(): Promise<void> {
190
+ if (!state.values || !state.dirty) return;
191
+
192
+ const loader = (await getVibesRuntime()
193
+ .query('config/loader')
194
+ .resolve()) as ConfigLoaderInterface | undefined;
195
+ if (!loader) throw new Error('No config/loader registered');
196
+ await loader.save(manifest, state.values);
197
+ state.dirty = false;
198
+ },
199
+
200
+ async reload(): Promise<void> {
201
+ const result = await loadConfigFromManifest<T>({
202
+ manifest,
203
+ includeStorage: true,
204
+ includeDefaults: true
205
+ });
206
+ state.values = result.data;
207
+ state.dirty = false;
208
+ notifySubscribers();
209
+ },
210
+
211
+ isDirty(): boolean {
212
+ return state.dirty;
213
+ }
214
+ };
215
+ }
216
+
217
+ // Re-export the ConfigAccessor type for convenience
218
+ export type { ConfigAccessor as ConfigAccessorInterface };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Config Storage Service
3
+ *
4
+ * Runtime-resolved storage adapter for configuration storage.
5
+ */
6
+
7
+ export { ConfigStorageService, getConfigStorageService, resetConfigStorageService } from './service.ts';
8
+ export type { CredentialsInput, ConfigDocumentInput, ConfigScope } from './service.ts';