@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,726 @@
1
+ /**
2
+ * Configuration Manifest Types
3
+ *
4
+ * Core type definitions for the universal configuration system.
5
+ * Manifests define configuration schemas with UI hints, context rules,
6
+ * and storage configuration.
7
+ */
8
+
9
+ import type { z } from 'zod/v4';
10
+
11
+ // Configuration Tiers
12
+
13
+ /**
14
+ * Configuration tiers determine storage location, visibility, and access patterns
15
+ *
16
+ * - system: Platform-level settings (database-backed, admin-only)
17
+ * - user: User-facing configuration (JSON for CLI/TUI, database for web)
18
+ * - internal: Developer/tooling configuration (env vars, constants)
19
+ */
20
+ export type ConfigTier = 'system' | 'user' | 'internal';
21
+
22
+ /**
23
+ * Storage adapter types
24
+ *
25
+ * - auto: Automatically resolve based on tier and surface
26
+ * - json: JSON file storage (CLI/TUI)
27
+ * - localdb: LocalDB SQLite storage (unified with CLI config system)
28
+ * - cloud: Cloud settings API (Web/Bridge)
29
+ * - database: Database storage (system settings)
30
+ * - encrypted: Encrypted JSON storage
31
+ * - memory: In-memory storage (testing)
32
+ * - env: Environment variables (internal config)
33
+ */
34
+ export type StorageAdapterType =
35
+ | 'auto'
36
+ | 'json'
37
+ | 'localdb'
38
+ | 'cloud'
39
+ | 'database'
40
+ | 'env'
41
+ | 'encrypted'
42
+ | 'memory';
43
+
44
+ /**
45
+ * Storage scope for file-based adapters
46
+ */
47
+ export type StorageScope = 'global' | 'project' | 'auto';
48
+
49
+ /**
50
+ * UI surfaces that can render configuration forms
51
+ */
52
+ export type ConfigSurface = 'tui' | 'cli' | 'web' | 'bridge';
53
+
54
+ /**
55
+ * Hardware context for context-aware defaults
56
+ */
57
+ export type HardwareContext = 'cloud' | 'consumer' | 'gpu' | 'cpu-only';
58
+
59
+ /**
60
+ * Environment context
61
+ */
62
+ export type EnvironmentContext = 'development' | 'staging' | 'production';
63
+
64
+ // Navigation Types
65
+
66
+ /**
67
+ * Predefined pages in the application
68
+ * Can be extended with string for custom pages
69
+ */
70
+ export type NavigationPage =
71
+ | 'settings' // Global settings
72
+ | 'settings/account' // Account sub-page
73
+ | 'settings/storage' // Storage settings sub-page
74
+ | 'ai' // AI configuration page (/ai)
75
+ | 'knowledge' // Knowledge base page
76
+ | 'session' // Session management
77
+ | string // Custom pages
78
+ | null; // Hidden from navigation
79
+
80
+ /**
81
+ * Predefined sections within pages
82
+ */
83
+ export type NavigationSection =
84
+ | 'general'
85
+ | 'account'
86
+ | 'preferences'
87
+ | 'appearance'
88
+ | 'privacy'
89
+ | 'advanced'
90
+ | 'admin'
91
+ | string; // Custom sections
92
+
93
+ /**
94
+ * Navigation configuration for a manifest
95
+ */
96
+ export interface ManifestNavigation {
97
+ /**
98
+ * Page/route where this manifest appears
99
+ * - null = Don't show in any navigation (accessed programmatically only)
100
+ * - 'settings' = Global settings page
101
+ * - 'ai' = AI configuration page (/ai)
102
+ */
103
+ page: NavigationPage;
104
+
105
+ /**
106
+ * Section within the page for grouping multiple manifests
107
+ * Sections become tabs or collapsible groups in the UI
108
+ */
109
+ section?: NavigationSection;
110
+
111
+ /**
112
+ * Display order within the section (lower = first)
113
+ * @default 100
114
+ */
115
+ order?: number;
116
+
117
+ /**
118
+ * Whether to include in global settings page
119
+ * Set false for domain-specific configs (AI, Knowledge, etc.)
120
+ * @default true (unless page is domain-specific)
121
+ */
122
+ showInGlobalSettings?: boolean;
123
+
124
+ /**
125
+ * Parent manifest ID for hierarchical organization
126
+ * Child manifests appear nested under parent
127
+ */
128
+ parent?: string;
129
+
130
+ /**
131
+ * Custom navigation label (defaults to manifest.name)
132
+ */
133
+ label?: string;
134
+
135
+ /**
136
+ * Icon for navigation (overrides manifest.icon for nav only)
137
+ */
138
+ icon?: string;
139
+
140
+ /**
141
+ * Tags for custom filtering beyond page/section
142
+ */
143
+ tags?: string[];
144
+
145
+ /**
146
+ * Additional route parameters or query strings
147
+ */
148
+ params?: Record<string, string>;
149
+ }
150
+
151
+ // Configuration Context
152
+
153
+ /**
154
+ * Runtime context available for conditional logic in manifests
155
+ */
156
+ export interface ConfigContext {
157
+ /** Current hardware target */
158
+ hardware: HardwareContext;
159
+ /** Current environment */
160
+ environment: EnvironmentContext;
161
+ /** Current UI surface */
162
+ surface: ConfigSurface;
163
+ /** Whether user is authenticated */
164
+ isAuthenticated: boolean;
165
+ /** User's role (if authenticated) */
166
+ userRole?: string;
167
+ /** Feature flags that are enabled */
168
+ enabledFeatures: Set<string>;
169
+ /** Get a config value from another field or manifest */
170
+ get: <T = unknown>(path: string) => T | undefined;
171
+ /** Custom context values */
172
+ custom: Record<string, unknown>;
173
+ }
174
+
175
+ // Configuration Rules (Conditional Logic)
176
+
177
+ /**
178
+ * Rule for conditional visibility, disabled state, or requirements
179
+ */
180
+ export type ConfigRule =
181
+ | ConfigFieldRule
182
+ | ConfigContextRule
183
+ | ConfigAndRule
184
+ | ConfigOrRule
185
+ | ConfigNotRule
186
+ | ConfigFunctionRule;
187
+
188
+ /** Rule based on another field's value */
189
+ export interface ConfigFieldRule {
190
+ field: string;
191
+ operator: 'equals' | 'notEquals' | 'in' | 'notIn' | 'exists' | 'isEmpty';
192
+ value?: unknown;
193
+ }
194
+
195
+ /** Rule based on context */
196
+ export interface ConfigContextRule {
197
+ context: keyof Omit<ConfigContext, 'get' | 'custom'> | `custom.${string}`;
198
+ operator: 'equals' | 'notEquals' | 'in' | 'notIn' | 'exists';
199
+ value?: unknown;
200
+ }
201
+
202
+ /** Combine rules with AND */
203
+ export interface ConfigAndRule {
204
+ and: ConfigRule[];
205
+ }
206
+
207
+ /** Combine rules with OR */
208
+ export interface ConfigOrRule {
209
+ or: ConfigRule[];
210
+ }
211
+
212
+ /** Negate a rule */
213
+ export interface ConfigNotRule {
214
+ not: ConfigRule;
215
+ }
216
+
217
+ /** Custom function rule (for complex logic) */
218
+ export interface ConfigFunctionRule {
219
+ fn: (ctx: ConfigContext, allValues: Record<string, unknown>) => boolean;
220
+ }
221
+
222
+ // Field UI Configuration
223
+
224
+ /**
225
+ * UI component types for rendering fields
226
+ */
227
+ export type FieldComponent =
228
+ | 'input'
229
+ | 'textarea'
230
+ | 'number'
231
+ | 'select'
232
+ | 'multi-select'
233
+ | 'radio-group'
234
+ | 'checkbox'
235
+ | 'switch'
236
+ | 'slider'
237
+ | 'color'
238
+ | 'date'
239
+ | 'datetime'
240
+ | 'file'
241
+ | 'password'
242
+ | 'secret'
243
+ | 'json'
244
+ | 'code'
245
+ | 'reference'
246
+ | 'multi-reference'
247
+ | 'custom';
248
+
249
+ /**
250
+ * Field width in form layout
251
+ */
252
+ export type FieldWidth = 'full' | 'half' | 'third' | 'quarter';
253
+
254
+ /**
255
+ * UI configuration for a field
256
+ */
257
+ export interface FieldUI {
258
+ /** Display label */
259
+ label: string;
260
+ /** Short description (shown near field) */
261
+ description?: string;
262
+ /** Longer help text (shown on hover/focus) */
263
+ helpText?: string;
264
+ /** Placeholder text for inputs */
265
+ placeholder?: string;
266
+ /** Icon (emoji or icon name) */
267
+ icon?: string;
268
+ /** Component to render */
269
+ component?: FieldComponent;
270
+ /** Custom component reference (when component is 'custom') */
271
+ customComponent?: string;
272
+ /** Display order within group */
273
+ order?: number;
274
+ /** Group this field belongs to */
275
+ group?: string;
276
+ /** Field width in form layout */
277
+ width?: FieldWidth;
278
+ /** Whether to hide the label */
279
+ hideLabel?: boolean;
280
+ /** Additional CSS classes */
281
+ className?: string;
282
+ }
283
+
284
+ /**
285
+ * Option for enum/select fields
286
+ */
287
+ export interface FieldOption<T = string> {
288
+ /** Option value */
289
+ value: T;
290
+ /** Display label */
291
+ label: string;
292
+ /** Optional description */
293
+ description?: string;
294
+ /** Optional icon */
295
+ icon?: string;
296
+ /** When this option should be disabled */
297
+ disabledWhen?: ConfigRule;
298
+ /** When this option should be hidden */
299
+ hiddenWhen?: ConfigRule;
300
+ }
301
+
302
+ // Field Metadata
303
+
304
+ /**
305
+ * Access control for system-tier fields
306
+ */
307
+ export interface FieldAccess {
308
+ /** Whether this setting is visible to non-admin users */
309
+ isPublic?: boolean;
310
+ /** Whether this setting can be modified (vs read-only) */
311
+ isEditable?: boolean;
312
+ /** Required role to view/edit */
313
+ requiredRole?: string;
314
+ /** Surfaces where this field is available */
315
+ surfaces?: ConfigSurface[];
316
+ }
317
+
318
+ /**
319
+ * Conditional rules for field behavior
320
+ */
321
+ export interface FieldRules {
322
+ /** When this field should be visible */
323
+ visibleWhen?: ConfigRule;
324
+ /** When this field should be disabled */
325
+ disabledWhen?: ConfigRule;
326
+ /** When this field is required (beyond schema) */
327
+ requiredWhen?: ConfigRule;
328
+ /** When to show a warning */
329
+ warnWhen?: ConfigRule;
330
+ /** Warning message */
331
+ warnMessage?: string;
332
+ }
333
+
334
+ /**
335
+ * Context-aware default values
336
+ */
337
+ export interface FieldDefaults<T = unknown> {
338
+ /** Base default value (from schema or override) */
339
+ base: T;
340
+ /** Override defaults by hardware context */
341
+ byHardware?: Partial<Record<HardwareContext, T>>;
342
+ /** Override defaults by environment */
343
+ byEnvironment?: Partial<Record<EnvironmentContext, T>>;
344
+ /** Override defaults by surface */
345
+ bySurface?: Partial<Record<ConfigSurface, T>>;
346
+ /** Custom default resolver */
347
+ resolver?: (ctx: ConfigContext) => T;
348
+ }
349
+
350
+ /**
351
+ * Reference field configuration for entity lookups
352
+ */
353
+ export interface ReferenceConfig {
354
+ /**
355
+ * Entity type to reference (e.g., 'model', 'provider', 'tool', 'prompt')
356
+ */
357
+ entity: string;
358
+ /**
359
+ * Field to use as the value (default: 'id')
360
+ */
361
+ valueField?: string;
362
+ /**
363
+ * Field to use as the display label (default: 'name')
364
+ */
365
+ labelField?: string;
366
+ /**
367
+ * Optional description field for richer display
368
+ */
369
+ descriptionField?: string;
370
+ /**
371
+ * API endpoint to fetch options (if not using default entity resolution)
372
+ */
373
+ endpoint?: string;
374
+ /**
375
+ * Static filter to apply when fetching options
376
+ */
377
+ filter?: Record<string, unknown>;
378
+ /**
379
+ * Dynamic filter based on other field values
380
+ * Key = filter param, Value = field path to get value from
381
+ */
382
+ dynamicFilter?: Record<string, string>;
383
+ /**
384
+ * Whether to allow creating new entities inline
385
+ */
386
+ allowCreate?: boolean;
387
+ /**
388
+ * For multi-reference: whether ordering matters (enables drag/drop)
389
+ */
390
+ orderable?: boolean;
391
+ /**
392
+ * Maximum number of selections (for multi-reference)
393
+ */
394
+ maxItems?: number;
395
+ /**
396
+ * Minimum number of selections (for multi-reference)
397
+ */
398
+ minItems?: number;
399
+ /**
400
+ * Custom component name for specialized rendering
401
+ * e.g., 'ModelAndProviderSelect', 'ToolSelector'
402
+ */
403
+ customRenderer?: string;
404
+ /**
405
+ * Additional props to pass to the custom renderer
406
+ */
407
+ customRendererProps?: Record<string, unknown>;
408
+ }
409
+
410
+ /**
411
+ * Complete field metadata
412
+ */
413
+ export interface ConfigFieldMeta<T = unknown> {
414
+ /** UI configuration */
415
+ ui: FieldUI;
416
+ /** Conditional behavior rules */
417
+ rules?: FieldRules;
418
+ /** Context-aware defaults */
419
+ defaults?: FieldDefaults<T>;
420
+ /** Options for enum/select fields */
421
+ options?: FieldOption<T extends string ? T : string>[];
422
+ /** Reference configuration for entity lookup fields */
423
+ reference?: ReferenceConfig;
424
+ /** Access control (for system tier) */
425
+ access?: FieldAccess;
426
+ /** Dependencies on other fields (for validation/updates) */
427
+ dependsOn?: string[];
428
+ /** Tags for categorization/filtering */
429
+ tags?: string[];
430
+ }
431
+
432
+ // Field Groups
433
+
434
+ /**
435
+ * Group of related fields for UI organization
436
+ */
437
+ export interface ConfigFieldGroup {
438
+ /** Group identifier */
439
+ id: string;
440
+ /** Display label */
441
+ label: string;
442
+ /** Optional description */
443
+ description?: string;
444
+ /** Optional icon */
445
+ icon?: string;
446
+ /** Display order */
447
+ order?: number;
448
+ /** Whether group is collapsible */
449
+ collapsible?: boolean;
450
+ /** Whether group starts collapsed */
451
+ defaultCollapsed?: boolean;
452
+ /** When this group should be visible */
453
+ visibleWhen?: ConfigRule;
454
+ }
455
+
456
+ // Storage Configuration
457
+
458
+ /**
459
+ * Storage source with priority for config loading
460
+ * Configs are loaded from all sources and merged by priority (higher = wins)
461
+ */
462
+ export interface StorageSource {
463
+ /** Source type */
464
+ type: 'cwd-file' | 'user-file' | 'cwd-db' | 'user-db' | 'cloud';
465
+ /** Priority for merging (higher wins conflicts) */
466
+ priority: number;
467
+ /** Whether this source is read-only */
468
+ readonly?: boolean;
469
+ /** Adapter to use for this source */
470
+ adapter?: StorageAdapterType;
471
+ }
472
+
473
+ /**
474
+ * Storage configuration for a manifest
475
+ */
476
+ export interface ManifestStorage {
477
+ /** Storage adapter to use (default: 'auto') */
478
+ adapter?: StorageAdapterType;
479
+ /** Scope for file-based adapters */
480
+ scope?: StorageScope;
481
+ /** Namespace/table/key prefix */
482
+ namespace: string;
483
+ /** Whether to encrypt sensitive fields */
484
+ encryptSensitive?: boolean;
485
+ /** Fields that should be encrypted */
486
+ sensitiveFields?: string[];
487
+ /** Migration version for schema changes */
488
+ version?: number;
489
+ /**
490
+ * Multi-source configuration (optional)
491
+ * When specified, config is loaded from all sources and merged by priority
492
+ * Default priority: cwd-file(1) < user-file(2) < cwd-db(3) < user-db(4) < cloud(5)
493
+ */
494
+ sources?: StorageSource[];
495
+ /**
496
+ * Where new values are saved by default
497
+ * @default 'user-file' for user tier, 'cwd-db' for system tier
498
+ */
499
+ defaultSaveTarget?: StorageSource['type'];
500
+ }
501
+
502
+ // Component Overrides
503
+
504
+ /**
505
+ * Lazy-loaded component override
506
+ * Uses dynamic import for code-splitting
507
+ */
508
+ export type ComponentLoader<T = any> = () => Promise<{ default: T }>;
509
+
510
+ /**
511
+ * CRUD component overrides per surface
512
+ */
513
+ export interface CRUDComponentOverrides {
514
+ /** Custom list/table view component */
515
+ list?: ComponentLoader;
516
+ /** Custom create form component */
517
+ create?: ComponentLoader;
518
+ /** Custom edit form component */
519
+ edit?: ComponentLoader;
520
+ /** Custom detail/read view component */
521
+ detail?: ComponentLoader;
522
+ /** Custom delete confirmation component */
523
+ delete?: ComponentLoader;
524
+ }
525
+
526
+ /**
527
+ * Component overrides for different surfaces
528
+ */
529
+ export interface ManifestComponents {
530
+ /** TUI (terminal) component overrides */
531
+ tui?: {
532
+ /** Main page component for this manifest */
533
+ page?: ComponentLoader;
534
+ /** CRUD component overrides */
535
+ crud?: CRUDComponentOverrides;
536
+ };
537
+ /** Web (Svelte) component overrides */
538
+ web?: {
539
+ /** Main page component for this manifest */
540
+ page?: ComponentLoader;
541
+ /** CRUD component overrides */
542
+ crud?: CRUDComponentOverrides;
543
+ };
544
+ /** CLI (non-interactive) component overrides */
545
+ cli?: {
546
+ /** Main page component for this manifest */
547
+ page?: ComponentLoader;
548
+ };
549
+ }
550
+
551
+ // Context Constraints
552
+
553
+ /**
554
+ * Constraints on when a manifest applies
555
+ */
556
+ export interface ManifestContext {
557
+ /** Hardware contexts where this manifest applies */
558
+ hardware?: HardwareContext[];
559
+ /** Environments where this manifest applies */
560
+ environment?: EnvironmentContext[];
561
+ /** Surfaces where this manifest applies */
562
+ surfaces?: ConfigSurface[];
563
+ /** Feature flags required for this manifest */
564
+ requiredFeatures?: string[];
565
+ }
566
+
567
+ // Config File Location
568
+
569
+ /**
570
+ * Configuration for loading config from TypeScript/JavaScript files.
571
+ * Allows manifests to specify optional config file patterns like 'vibes.example.ts'.
572
+ */
573
+ export interface ConfigFileLocation {
574
+ /**
575
+ * File pattern to look for in project root.
576
+ * Examples: 'vibes.example.ts', 'vibes.config.ts'
577
+ */
578
+ pattern: string;
579
+
580
+ /**
581
+ * Named export to look for in the file.
582
+ * - 'default' = use default export
583
+ * - string = use named export (e.g., 'exampleConfig')
584
+ * - undefined = try default, then try export matching manifest id
585
+ */
586
+ exportName?: string;
587
+
588
+ /**
589
+ * For record-type manifests, a 'configs' export can contain multiple named configs.
590
+ * This specifies the property name within that export.
591
+ * Example: vibes.autoloop.ts exports { configs: { simple: {...}, full: {...} } }
592
+ */
593
+ configsExport?: string;
594
+
595
+ /**
596
+ * Priority relative to other sources (higher wins in merge).
597
+ * @default 3 (above localdb at 2, below CLI overrides at 4)
598
+ */
599
+ priority?: number;
600
+
601
+ /**
602
+ * Whether this file is required (error if missing) or optional.
603
+ * @default false
604
+ */
605
+ required?: boolean;
606
+
607
+ /**
608
+ * Additional file patterns to search (e.g., for legacy names).
609
+ * Searched in order, first match wins.
610
+ */
611
+ fallbackPatterns?: string[];
612
+ }
613
+
614
+ // Configuration Manifest
615
+
616
+ /**
617
+ * Complete configuration manifest
618
+ *
619
+ * Defines a configuration namespace with its schema, field metadata,
620
+ * storage configuration, and context constraints.
621
+ *
622
+ * @template T - Zod schema type for the configuration
623
+ */
624
+ export interface ConfigManifest<T extends z.ZodTypeAny = z.ZodTypeAny> {
625
+ // Identity
626
+
627
+ /** Unique identifier (e.g., 'ai', 'storage', 'system.settings') */
628
+ id: string;
629
+ /** Display name */
630
+ name: string;
631
+ /** Description */
632
+ description?: string;
633
+ /** Icon (emoji or icon name) */
634
+ icon?: string;
635
+ /** Schema version for migrations */
636
+ version?: number;
637
+
638
+ // Classification
639
+
640
+ /** Configuration tier */
641
+ tier: ConfigTier;
642
+ /** Category within the tier (for organization) */
643
+ category?: string;
644
+
645
+ // Schema
646
+
647
+ /** Zod schema (source of truth for validation) */
648
+ schema: T;
649
+
650
+ // Field Metadata
651
+
652
+ /** Field metadata keyed by field path */
653
+ fields: Record<string, ConfigFieldMeta>;
654
+
655
+ /** Field groups for UI organization */
656
+ groups?: ConfigFieldGroup[];
657
+
658
+ // Storage
659
+
660
+ /** Storage configuration */
661
+ storage: ManifestStorage;
662
+
663
+ // Config Files
664
+
665
+ /**
666
+ * Optional config file location(s) for loading config from project files.
667
+ * Config loaded from files is merged with storage-based config.
668
+ * Multiple locations are searched in order; all matching files are merged.
669
+ */
670
+ configFiles?: ConfigFileLocation | ConfigFileLocation[];
671
+
672
+ // Context
673
+
674
+ /** Context constraints for when this manifest applies */
675
+ context?: ManifestContext;
676
+
677
+ /**
678
+ * Navigation and UI placement configuration
679
+ * Determines where this manifest appears in the UI hierarchy
680
+ * If omitted, manifest won't appear in any navigation
681
+ */
682
+ navigation?: ManifestNavigation;
683
+
684
+ // Component Overrides
685
+
686
+ /**
687
+ * Component overrides for different surfaces
688
+ * Allows customizing how this manifest renders in TUI, Web, CLI
689
+ * Uses lazy loading for code-splitting
690
+ */
691
+ components?: ManifestComponents;
692
+
693
+ // Lifecycle
694
+
695
+ /** Called after config is loaded */
696
+ onLoad?: (config: z.infer<T>, ctx: ConfigContext) => z.infer<T> | Promise<z.infer<T>>;
697
+ /** Called before config is saved */
698
+ onSave?: (config: z.infer<T>, ctx: ConfigContext) => z.infer<T> | Promise<z.infer<T>>;
699
+ /** Called when a field changes */
700
+ onFieldChange?: (
701
+ field: string,
702
+ value: unknown,
703
+ allValues: Record<string, unknown>,
704
+ ctx: ConfigContext
705
+ ) => Record<string, unknown> | void;
706
+ }
707
+
708
+ // Type Utilities
709
+
710
+ /**
711
+ * Extract the config type from a manifest
712
+ */
713
+ export type InferConfigType<M extends ConfigManifest> =
714
+ M extends ConfigManifest<infer T> ? z.infer<T> : never;
715
+
716
+ /**
717
+ * Extract field paths from a Zod schema
718
+ */
719
+ export type FieldPaths<T> =
720
+ T extends z.ZodObject<infer Shape>
721
+ ? {
722
+ [K in keyof Shape]: Shape[K] extends z.ZodObject<any>
723
+ ? `${K & string}` | `${K & string}.${FieldPaths<Shape[K]>}`
724
+ : K & string;
725
+ }[keyof Shape]
726
+ : never;