@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,119 @@
1
+ /**
2
+ * Manifest Utilities
3
+ *
4
+ * Runtime-based utilities for looking up and working with config manifests.
5
+ * Replaces the legacy registry/manifests.js functions.
6
+ */
7
+
8
+ import { getVibesRuntime } from '@vibesdotdev/runtime';
9
+ import type { ConfigManifest } from '../manifest/types.ts';
10
+ import type { RecordManifest } from '../crud/types.ts';
11
+
12
+ import type { AnyManifest } from './schemas/manifest-utils.schema.ts';
13
+
14
+ export type { AnyManifest } from './schemas/manifest-utils.schema.ts';
15
+
16
+ /**
17
+ * Get a manifest by ID from the runtime
18
+ */
19
+ export function getManifest(id: string): AnyManifest | null {
20
+ try {
21
+ const runtime = getVibesRuntime();
22
+ const descriptors = runtime.query('config/manifest').descriptors();
23
+ return (descriptors.find((d) => d.id === id) as unknown as AnyManifest) ?? null;
24
+ } catch {
25
+ return null;
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get all registered manifest IDs
31
+ */
32
+ export function getAllManifestIds(): string[] {
33
+ try {
34
+ const runtime = getVibesRuntime();
35
+ const descriptors = runtime.query('config/manifest').descriptors();
36
+ return descriptors.map((d) => d.id);
37
+ } catch {
38
+ return [];
39
+ }
40
+ }
41
+
42
+ /**
43
+ * Get all registered manifests
44
+ */
45
+ export function getAllManifests(): AnyManifest[] {
46
+ try {
47
+ const runtime = getVibesRuntime();
48
+ const descriptors = runtime.query('config/manifest').descriptors();
49
+ return descriptors as unknown as AnyManifest[];
50
+ } catch {
51
+ return [];
52
+ }
53
+ }
54
+
55
+ /**
56
+ * Check if a manifest is a ConfigManifest (single-object config)
57
+ */
58
+ export function isConfigManifest(manifest: unknown): manifest is ConfigManifest {
59
+ if (!manifest || typeof manifest !== 'object') return false;
60
+ const m = manifest as Record<string, unknown>;
61
+ return (
62
+ typeof m.id === 'string' &&
63
+ typeof m.schema === 'object' &&
64
+ m.schema !== null &&
65
+ typeof m.fields === 'object' &&
66
+ m.fields !== null &&
67
+ !('crud' in m) // RecordManifests have crud config
68
+ );
69
+ }
70
+
71
+ /**
72
+ * Check if a manifest is a RecordManifest (CRUD list)
73
+ */
74
+ export function isRecordManifest(manifest: unknown): manifest is RecordManifest {
75
+ if (!manifest || typeof manifest !== 'object') return false;
76
+ const m = manifest as Record<string, unknown>;
77
+ return (
78
+ typeof m.id === 'string' &&
79
+ typeof m.schema === 'object' &&
80
+ m.schema !== null &&
81
+ 'crud' in m &&
82
+ typeof m.crud === 'object' &&
83
+ m.crud !== null
84
+ );
85
+ }
86
+
87
+ /**
88
+ * Get manifests by surface
89
+ */
90
+ export function getManifestsForSurface(surface: string): AnyManifest[] {
91
+ return getAllManifests().filter((m) => {
92
+ if (!m.context?.surfaces) return true; // No surface restriction
93
+ const surfaces = m.context.surfaces as readonly string[];
94
+ return surfaces.includes(surface);
95
+ });
96
+ }
97
+
98
+ /**
99
+ * Get manifests by navigation page
100
+ */
101
+ export function getManifestsForPage(page: string): AnyManifest[] {
102
+ return getAllManifests().filter((m) => m.navigation?.page === page);
103
+ }
104
+
105
+ /**
106
+ * Get manifests by navigation section
107
+ */
108
+ export function getManifestsForSection(page: string, section: string): AnyManifest[] {
109
+ return getAllManifests().filter(
110
+ (m) => m.navigation?.page === page && m.navigation?.section === section
111
+ );
112
+ }
113
+
114
+ /**
115
+ * Get manifests by category
116
+ */
117
+ export function getManifestsByCategory(category: string): AnyManifest[] {
118
+ return getAllManifests().filter((m) => m.category === category);
119
+ }
@@ -0,0 +1,11 @@
1
+ import type { ConfigManifest, ConfigContext } from '../../manifest/types.ts';
2
+
3
+ export interface ConfigAccessor<T> {
4
+ get(): T | null;
5
+ setField<K extends keyof T>(field: K, value: T[K]): void;
6
+ setFields(fields: Partial<T>): void;
7
+ subscribe(callback: (values: T | null) => void): () => void;
8
+ save(): Promise<void>;
9
+ reload(): Promise<void>;
10
+ isDirty(): boolean;
11
+ }
@@ -0,0 +1,23 @@
1
+ export interface EncryptedValue {
2
+ ciphertext: string;
3
+ iv: string;
4
+ salt: string;
5
+ tag: string;
6
+ algorithm: string;
7
+ iterations: number;
8
+ }
9
+
10
+ export interface SerializedEncryptedValue {
11
+ v: 1;
12
+ ct: string;
13
+ iv: string;
14
+ s: string;
15
+ t: string;
16
+ a: string;
17
+ i: number;
18
+ }
19
+
20
+ export interface EncryptionOptions {
21
+ salt?: Buffer;
22
+ iv?: Buffer;
23
+ }
@@ -0,0 +1,4 @@
1
+ import type { ConfigManifest } from '../../manifest/types.ts';
2
+ import type { RecordManifest } from '../../crud/types.ts';
3
+
4
+ export type AnyManifest = ConfigManifest | RecordManifest;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Settings Assembly
3
+ *
4
+ * Builds the global Settings layout at runtime by concatenating every
5
+ * `settings/section` descriptor registered with the runtime. Config does
6
+ * not own the section list; each owning module contributes its own.
7
+ */
8
+
9
+ import type { SettingsSectionDescriptor } from './settings-section.schema.ts';
10
+
11
+ /** Minimum surface a runtime accessor must expose for assembly. */
12
+ export interface SettingsSectionRuntime {
13
+ assets(kind: 'settings/section'): {
14
+ descriptors(): SettingsSectionDescriptor[];
15
+ };
16
+ }
17
+
18
+ const DEFAULT_ORDER = 100;
19
+
20
+ /**
21
+ * Returns every registered Settings section, filtered to `enabled !== false`
22
+ * and sorted by `order` (ascending; unset → 100). Pure: callers may safely
23
+ * pass the result to a UI without further sorting.
24
+ */
25
+ export function assembleSettingsSections(
26
+ runtime: SettingsSectionRuntime
27
+ ): SettingsSectionDescriptor[] {
28
+ const descriptors = runtime.assets('settings/section').descriptors();
29
+ return descriptors
30
+ .filter((d) => d.enabled !== false)
31
+ .slice()
32
+ .sort((a, b) => (a.order ?? DEFAULT_ORDER) - (b.order ?? DEFAULT_ORDER));
33
+ }
34
+
35
+ /**
36
+ * Resolve the section a given `config/manifest` ID participates in (if any).
37
+ *
38
+ * Returns the first section whose `manifests[]` contains the given id, in
39
+ * assembled order. Returns `undefined` when no section claims it.
40
+ */
41
+ export function findSectionForManifest(
42
+ runtime: SettingsSectionRuntime,
43
+ manifestId: string
44
+ ): SettingsSectionDescriptor | undefined {
45
+ return assembleSettingsSections(runtime).find((s) => s.manifests.includes(manifestId));
46
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Settings — runtime-first global settings layout.
3
+ *
4
+ * Each owning module registers one `settings/section` descriptor naming the
5
+ * manifests it owns. Surfaces (TUI/web) assemble the global Settings UI by
6
+ * sorting all registered descriptors. Config never enumerates sections.
7
+ */
8
+
9
+ export {
10
+ SettingsSectionDescriptorSchema,
11
+ isSettingsSectionDescriptor,
12
+ type SettingsSectionDescriptor
13
+ } from './settings-section.schema.ts';
14
+
15
+ export {
16
+ assembleSettingsSections,
17
+ findSectionForManifest,
18
+ type SettingsSectionRuntime
19
+ } from './assemble.ts';
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Settings Section Descriptor
3
+ *
4
+ * Pure-data runtime descriptor: each module's plugin registers one or more
5
+ * `settings/section` descriptors and the assembled global Settings UI is the
6
+ * sorted concatenation of every registered contribution.
7
+ *
8
+ * Config never enumerates which sections exist. The owning module owns its
9
+ * own section — including which manifests appear in it.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // In packages/ai/src/ai.plugin.ts
14
+ * import type { SettingsSectionDescriptor } from '@vibesdotdev/config/settings';
15
+ *
16
+ * const aiSettingsSection: SettingsSectionDescriptor = {
17
+ * kind: 'settings/section',
18
+ * id: 'ai',
19
+ * label: 'AI',
20
+ * icon: '🤖',
21
+ * description: 'AI providers, agents, and model configuration',
22
+ * order: 10,
23
+ * manifests: ['ai.core', 'ai.providers', 'tools.agents']
24
+ * };
25
+ *
26
+ * // Registered through the plugin's descriptors[] array.
27
+ * ```
28
+ */
29
+
30
+ import * as z from 'zod/v4';
31
+
32
+ /**
33
+ * Zod schema for a contributed Settings section.
34
+ */
35
+ export const SettingsSectionDescriptorSchema = z.object({
36
+ kind: z.literal('settings/section'),
37
+
38
+ /** Stable identifier for the section (e.g., 'ai', 'chat', 'knowledge'). */
39
+ id: z.string().min(1),
40
+
41
+ /** Display label. */
42
+ label: z.string().min(1),
43
+
44
+ /** Optional icon (string token resolved by the surface). */
45
+ icon: z.string().optional(),
46
+
47
+ /** Longer description shown alongside the section header. */
48
+ description: z.string().optional(),
49
+
50
+ /**
51
+ * Sort order within the global Settings UI. Lower numbers render first.
52
+ * Unset → defaults to 100 during assembly.
53
+ */
54
+ order: z.number().optional(),
55
+
56
+ /**
57
+ * IDs of `config/manifest` descriptors that appear in this section.
58
+ * The surface resolves each manifest through the runtime; this list is
59
+ * just the section-to-manifest mapping.
60
+ */
61
+ manifests: z.array(z.string().min(1)),
62
+
63
+ /** Whether the section can be collapsed in the UI. */
64
+ collapsible: z.boolean().optional(),
65
+
66
+ /** Default collapsed state (only meaningful when collapsible is true). */
67
+ defaultCollapsed: z.boolean().optional(),
68
+
69
+ /** Optional descriptor tags for filtering. */
70
+ tags: z.array(z.string()).optional(),
71
+
72
+ /**
73
+ * When false, the section is registered but excluded from assembly.
74
+ * Allows feature-flag gating without removing the descriptor.
75
+ */
76
+ enabled: z.boolean().optional()
77
+ });
78
+
79
+ export type SettingsSectionDescriptor = z.infer<typeof SettingsSectionDescriptorSchema>;
80
+
81
+ /** Type guard for runtime queries. */
82
+ export function isSettingsSectionDescriptor(value: unknown): value is SettingsSectionDescriptor {
83
+ return SettingsSectionDescriptorSchema.safeParse(value).success;
84
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Config Storage Adapter Interface
3
+ *
4
+ * Type definitions for storage adapters that implement ConfigStorageClient.
5
+ * Concrete implementations may use LocalDB, file-based storage, or other backends.
6
+ */
7
+
8
+ import type { ConfigStorageClient, ConfigValue } from './types.ts';
9
+ import type { ConfigScope } from './schemas.ts';
10
+
11
+ export type { ConfigStorageClient, ConfigValue };
12
+ export type { ConfigScope };
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Config Storage Module
3
+ *
4
+ * Unified configuration storage types and schemas.
5
+ */
6
+
7
+ export {
8
+ type ConfigScope,
9
+ type ConfigValueType,
10
+ type EnvironmentTier,
11
+ type CredentialsInput,
12
+ type ConfigInput,
13
+ type EnvironmentInput,
14
+ type CredentialsRow,
15
+ type ConfigRow,
16
+ type EnvironmentRow,
17
+ type ConfigDocumentRow,
18
+ type ConfigDocumentInput,
19
+ type CredentialsRecord,
20
+ type ConfigRecord,
21
+ type EnvironmentRecord,
22
+ type ConfigDocumentContent,
23
+ type ConfigDocumentRecord,
24
+ type ConfigDocumentHistoryRow,
25
+ type ConfigDocumentHistoryRecord,
26
+ configScopeSchema,
27
+ configValueTypeSchema,
28
+ environmentTierSchema,
29
+ credentialsInputSchema,
30
+ configInputSchema,
31
+ environmentInputSchema,
32
+ configDocumentRowSchema,
33
+ configDocumentInputSchema,
34
+ credentialsRowSchema,
35
+ credentialsRecordSchema,
36
+ configRowSchema,
37
+ configRecordSchema,
38
+ environmentRowSchema,
39
+ environmentRecordSchema,
40
+ configDocumentContentSchema,
41
+ configDocumentHistoryRowSchema,
42
+ configDocumentHistoryRecordSchema
43
+ } from './schemas.ts';
44
+
45
+ export {
46
+ type ConfigStorageClient,
47
+ type ConfigValue
48
+ } from './types.ts';
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Config Storage Schemas
3
+ *
4
+ * Zod schemas for the LocalDB config tables.
5
+ * These map directly to the SQL schema in migrations/config/001-initial-schema.sql
6
+ */
7
+
8
+ import z from 'zod/v4';
9
+
10
+ /**
11
+ * Config scope - where config values apply
12
+ */
13
+ export const configScopeSchema = z.enum(['global', 'local', 'project']);
14
+ export type ConfigScope = z.infer<typeof configScopeSchema>;
15
+
16
+ /**
17
+ * Config value type - how to interpret the stored value
18
+ */
19
+ export const configValueTypeSchema = z.enum(['string', 'number', 'boolean', 'json']);
20
+ export type ConfigValueType = z.infer<typeof configValueTypeSchema>;
21
+
22
+ /**
23
+ * Environment tier
24
+ */
25
+ export const environmentTierSchema = z.enum(['local', 'dev', 'staging', 'production']);
26
+ export type EnvironmentTier = z.infer<typeof environmentTierSchema>;
27
+
28
+ /**
29
+ * Credentials row schema
30
+ */
31
+ export const credentialsRowSchema = z.object({
32
+ id: z.string(),
33
+ environment: z.string(),
34
+ api_key: z.string().nullable(),
35
+ session_token: z.string().nullable(),
36
+ refresh_token: z.string().nullable(),
37
+ user_id: z.string().nullable(),
38
+ email: z.string().nullable(),
39
+ name: z.string().nullable(),
40
+ expires_at: z.string().nullable(),
41
+ metadata: z.string().nullable(),
42
+ created_at: z.string(),
43
+ updated_at: z.string()
44
+ });
45
+ export type CredentialsRow = z.infer<typeof credentialsRowSchema>;
46
+
47
+ export const credentialsRecordSchema = z.object({
48
+ id: z.string(),
49
+ environment: z.string(),
50
+ apiKey: z.string().nullable().optional(),
51
+ sessionToken: z.string().nullable().optional(),
52
+ refreshToken: z.string().nullable().optional(),
53
+ userId: z.string().nullable().optional(),
54
+ email: z.string().nullable().optional(),
55
+ name: z.string().nullable().optional(),
56
+ expiresAt: z.string().nullable().optional(),
57
+ metadata: z.record(z.string(), z.unknown()).nullable().optional(),
58
+ createdAt: z.string(),
59
+ updatedAt: z.string()
60
+ });
61
+ export type CredentialsRecord = z.infer<typeof credentialsRecordSchema>;
62
+
63
+ /**
64
+ * Config row schema
65
+ */
66
+ export const configRowSchema = z.object({
67
+ id: z.string(),
68
+ key: z.string(),
69
+ scope: configScopeSchema,
70
+ namespace: z.string().nullable(),
71
+ value: z.string(),
72
+ value_type: configValueTypeSchema,
73
+ encrypted: z.literal([0, 1]),
74
+ metadata: z.string().nullable(),
75
+ created_at: z.string(),
76
+ updated_at: z.string()
77
+ });
78
+ export type ConfigRow = z.infer<typeof configRowSchema>;
79
+
80
+ export const configRecordSchema = z.object({
81
+ id: z.string(),
82
+ key: z.string(),
83
+ scope: configScopeSchema,
84
+ namespace: z.string().nullable().optional(),
85
+ value: z.string(),
86
+ valueType: configValueTypeSchema,
87
+ encrypted: z.boolean(),
88
+ metadata: z.record(z.string(), z.unknown()).nullable().optional(),
89
+ createdAt: z.string(),
90
+ updatedAt: z.string()
91
+ });
92
+ export type ConfigRecord = z.infer<typeof configRecordSchema>;
93
+
94
+ /**
95
+ * Environment row schema
96
+ */
97
+ export const environmentRowSchema = z.object({
98
+ id: z.literal(1),
99
+ name: z.string(),
100
+ tier: environmentTierSchema,
101
+ api_url: z.string(),
102
+ updated_at: z.string()
103
+ });
104
+ export type EnvironmentRow = z.infer<typeof environmentRowSchema>;
105
+
106
+ export const environmentRecordSchema = z.object({
107
+ id: z.number().int(),
108
+ name: z.string(),
109
+ tier: environmentTierSchema,
110
+ apiUrl: z.string(),
111
+ updatedAt: z.string()
112
+ });
113
+ export type EnvironmentRecord = z.infer<typeof environmentRecordSchema>;
114
+
115
+ /**
116
+ * Input schemas for creating/updating
117
+ */
118
+ export const credentialsInputSchema = z.object({
119
+ environment: z.string(),
120
+ apiKey: z.string().optional(),
121
+ sessionToken: z.string().optional(),
122
+ refreshToken: z.string().optional(),
123
+ userId: z.string().optional(),
124
+ email: z.string().optional(),
125
+ name: z.string().optional(),
126
+ expiresAt: z.string().optional(),
127
+ metadata: z.record(z.string(), z.unknown()).optional()
128
+ });
129
+ export type CredentialsInput = z.infer<typeof credentialsInputSchema>;
130
+
131
+ export const configInputSchema = z.object({
132
+ key: z.string(),
133
+ value: z.unknown(),
134
+ scope: configScopeSchema.default('global'),
135
+ namespace: z.string().optional(),
136
+ encrypted: z.boolean().default(false)
137
+ });
138
+ export type ConfigInput = z.infer<typeof configInputSchema>;
139
+
140
+ export const environmentInputSchema = z.object({
141
+ name: z.string(),
142
+ tier: environmentTierSchema,
143
+ apiUrl: z.url()
144
+ });
145
+ export type EnvironmentInput = z.infer<typeof environmentInputSchema>;
146
+
147
+ /**
148
+ * Config document row schema
149
+ */
150
+ export const configDocumentRowSchema = z.object({
151
+ id: z.string(),
152
+ scope: configScopeSchema,
153
+ namespace: z.string().nullable(),
154
+ content: z.string(),
155
+ version: z.number(),
156
+ encrypted: z.literal([0, 1]),
157
+ created_at: z.string(),
158
+ updated_at: z.string()
159
+ });
160
+ export type ConfigDocumentRow = z.infer<typeof configDocumentRowSchema>;
161
+
162
+ export const configDocumentContentSchema = z.union([
163
+ z.string(),
164
+ z.record(z.string(), z.unknown())
165
+ ]);
166
+ export type ConfigDocumentContent = z.infer<typeof configDocumentContentSchema>;
167
+
168
+ export const configDocumentRecordSchema = z.object({
169
+ id: z.string(),
170
+ scope: configScopeSchema,
171
+ namespace: z.string().nullable().optional(),
172
+ content: configDocumentContentSchema,
173
+ version: z.number(),
174
+ encrypted: z.boolean(),
175
+ createdAt: z.string(),
176
+ updatedAt: z.string()
177
+ });
178
+ export type ConfigDocumentRecord = z.infer<typeof configDocumentRecordSchema>;
179
+
180
+ /**
181
+ * Config document history row schema
182
+ */
183
+ export const configDocumentHistoryRowSchema = z.object({
184
+ id: z.string(),
185
+ document_id: z.string(),
186
+ content: z.string(),
187
+ version: z.number(),
188
+ changed_by: z.string().nullable(),
189
+ change_reason: z.string().nullable(),
190
+ created_at: z.string()
191
+ });
192
+ export type ConfigDocumentHistoryRow = z.infer<typeof configDocumentHistoryRowSchema>;
193
+
194
+ export const configDocumentHistoryRecordSchema = z.object({
195
+ id: z.string(),
196
+ documentId: z.string(),
197
+ content: configDocumentContentSchema,
198
+ version: z.number(),
199
+ changedBy: z.string().nullable().optional(),
200
+ changeReason: z.string().nullable().optional(),
201
+ createdAt: z.string()
202
+ });
203
+ export type ConfigDocumentHistoryRecord = z.infer<typeof configDocumentHistoryRecordSchema>;
204
+
205
+ /**
206
+ * Config document input schema
207
+ */
208
+ export const configDocumentInputSchema = z.object({
209
+ scope: configScopeSchema,
210
+ namespace: z.string().nullable().default(null),
211
+ content: z.record(z.string(), z.unknown()),
212
+ encrypted: z.boolean().default(false),
213
+ changeReason: z.string().optional()
214
+ });
215
+ export type ConfigDocumentInput = z.infer<typeof configDocumentInputSchema>;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Config Storage Types
3
+ *
4
+ * Shared type definitions for configuration storage.
5
+ */
6
+
7
+ export type ConfigValue =
8
+ | string
9
+ | number
10
+ | boolean
11
+ | null
12
+ | { [key: string]: ConfigValue }
13
+ | ConfigValue[];
14
+
15
+ export interface CLIConfig {
16
+ version: string;
17
+ activeEnvironment?: string;
18
+ [key: string]: ConfigValue | undefined;
19
+ }
20
+
21
+ export interface EnvironmentConfig {
22
+ id: string;
23
+ name: string;
24
+ apiUrl: string;
25
+ [key: string]: ConfigValue;
26
+ }
27
+
28
+ export interface StoredCredentials {
29
+ id: string;
30
+ environment: string;
31
+ apiKey?: string;
32
+ sessionToken?: string;
33
+ refreshToken?: string;
34
+ userId?: string;
35
+ email?: string;
36
+ name?: string;
37
+ expiresAt?: string;
38
+ metadata?: Record<string, ConfigValue>;
39
+ createdAt: string;
40
+ updatedAt: string;
41
+ }
42
+
43
+ export interface ConfigEntry {
44
+ scope: string;
45
+ key: string;
46
+ value: ConfigValue;
47
+ valueType?: string;
48
+ encrypted?: boolean;
49
+ metadata?: Record<string, ConfigValue>;
50
+ createdAt: string;
51
+ updatedAt: string;
52
+ }
53
+
54
+ export interface ConfigQuery {
55
+ scope?: string;
56
+ namespace?: string;
57
+ limit?: number;
58
+ offset?: number;
59
+ }
60
+
61
+ /**
62
+ * Storage interface for CLI configuration
63
+ * Uses browser-compatible storage APIs that work in both Node.js and browser contexts
64
+ */
65
+ export interface ConfigStorageClient {
66
+ getConfig(): Promise<CLIConfig | null>;
67
+ setConfig(config: CLIConfig): Promise<void>;
68
+
69
+ getCurrentEnvironment(): Promise<EnvironmentConfig | null>;
70
+ setCurrentEnvironment(env: EnvironmentConfig): Promise<void>;
71
+ getAllEnvironments(): Promise<EnvironmentConfig[]>;
72
+ setEnvironment(env: EnvironmentConfig): Promise<void>;
73
+ deleteEnvironment(id: string): Promise<void>;
74
+
75
+ getCredentials(id: string): Promise<StoredCredentials | null>;
76
+ setCredentials(id: string, credentials: StoredCredentials): Promise<void>;
77
+ deleteCredentials(id: string): Promise<void>;
78
+
79
+ getEntry(scope: string, key: string): Promise<ConfigEntry | null>;
80
+ setEntry<T extends ConfigValue>(scope: string, key: string, value: T): Promise<void>;
81
+ deleteEntry(scope: string, key: string): Promise<void>;
82
+ queryEntries(query: ConfigQuery): Promise<ConfigEntry[]>;
83
+
84
+ getNamespace(scope: string): Promise<Record<string, ConfigValue>>;
85
+ get(key: string, scope?: string): Promise<ConfigValue | null>;
86
+ set(key: string, value: ConfigValue, scope?: string, encrypted?: boolean): Promise<void>;
87
+ delete(key: string, scope?: string): Promise<void>;
88
+ }