@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
package/README.md ADDED
@@ -0,0 +1,85 @@
1
+ # @vibesdotdev/config
2
+
3
+ Schema-driven configuration for vibes. Zod schemas define config types; the
4
+ runtime resolves storage, environment overlays, and surface forms.
5
+
6
+ ## Quickstart
7
+
8
+ ### Define a manifest
9
+
10
+ ```ts
11
+ import { z } from 'zod';
12
+ import { createConfigManifest } from '@vibesdotdev/config/manifest';
13
+ import { configField } from '@vibesdotdev/config/schema';
14
+
15
+ export const appConfig = createConfigManifest({
16
+ id: 'app-config',
17
+ name: 'Application Settings',
18
+ tier: 'user',
19
+ schema: z.object({
20
+ apiEndpoint: z.string().url().default('http://localhost:3000'),
21
+ timeout: z.number().default(30000),
22
+ features: z.object({
23
+ experimental: z.boolean().default(false),
24
+ }),
25
+ }),
26
+ fields: {
27
+ apiEndpoint: configField('API Endpoint').description('Base URL for API requests'),
28
+ timeout: configField('Timeout').description('Request timeout in milliseconds'),
29
+ 'features.experimental': configField('Experimental Features').component('toggle'),
30
+ },
31
+ storage: { namespace: 'app', adapter: 'localdb' },
32
+ });
33
+ ```
34
+
35
+ ### Load / get / set
36
+
37
+ ```ts
38
+ import { ConfigManifest } from '@vibesdotdev/config';
39
+
40
+ const config = new ConfigManifest('app-config');
41
+ const values = await config.load();
42
+ const timeout = await config.get('timeout', 30000);
43
+ await config.set('features.experimental', true);
44
+ ```
45
+
46
+ ### Render a form (Svelte)
47
+
48
+ ```svelte
49
+ <script>
50
+ import ManifestForm from '@vibesdotdev/config/adapters/web/components/ManifestForm.svelte';
51
+ import { appConfig } from './app-config';
52
+ </script>
53
+
54
+ <ManifestForm manifest={appConfig} onSubmit={(v) => saveConfig(v)} />
55
+ ```
56
+
57
+ ### Render a form (CLI)
58
+
59
+ ```ts
60
+ import { runManifestPrompts } from '@vibesdotdev/config/adapters/cli';
61
+
62
+ const values = await runManifestPrompts(appConfig);
63
+ ```
64
+
65
+ ### Diagnose
66
+
67
+ ```ts
68
+ import { diagnoseConfig } from '@vibesdotdev/config/doctor';
69
+
70
+ const result = diagnoseConfig(manifest, values);
71
+ for (const issue of result.issues) {
72
+ console.log(`[${issue.severity}] ${issue.path}: ${issue.message}`);
73
+ }
74
+ ```
75
+
76
+ ## Test
77
+
78
+ ```bash
79
+ bun --bun vitest run
80
+ ```
81
+
82
+ ## Docs
83
+
84
+ - [SPEC.md](./SPEC.md) — package contract, owned surfaces, hard rules
85
+ - [runtime](../runtime/SPEC.md), [storage](../storage/SPEC.md), [tui](../tui/SPEC.md), [cli](../cli/SPEC.md)
package/SPEC.md ADDED
@@ -0,0 +1,71 @@
1
+ # @vibesdotdev/config
2
+
3
+ Schema-driven configuration. Zod schemas define config types; the runtime resolves storage, environment overlays, and surface forms.
4
+
5
+ ## Owns
6
+
7
+ - **Runtime kinds:** `config/manifest`, `config/collection`, `config/environment`, `settings/section`
8
+ - **`ConfigManifest<T>`** (`./manifest`): load, get, set, validate against a Zod schema; resolves storage adapter through the runtime
9
+ - **`ConfigCollection`** (`./collection`): grouped/related manifests
10
+ - **`SettingsSectionDescriptor`** (`./settings`): pure-data contribution kind. Each owning module registers one or more `settings/section` descriptors naming the `config/manifest` IDs in its section. `assembleSettingsSections(runtime)` concatenates every registered section sorted by `order`. Config never enumerates which sections exist.
11
+ - **Environment system** (`./environment`): `local`, `staging`, `production` descriptors + `environment.plugin`; current-environment detection; per-env value overlays
12
+ - **Form core** (`./form/core`): field resolution, Zod validation, visibility rules, groups
13
+ - **Generic env helpers** (`./env`, `./env.runtime`): `getEnv` / `getEnvNumber` / `getEnvBoolean` / `validateRequiredEnv` / `readRuntimeEnv`. Isomorphic (Node + browser). **No monorepo-wide `env` aggregate** — domain env lives with the domain.
14
+ - **Surface adapters:**
15
+ - `./adapters/cli` — Inquirer-based prompts
16
+ - `./adapters/web` — `ManifestForm.svelte` and Svelte form components
17
+ - `./tui` — OpenTUI/React `config-settings` and `config-registry` descriptors + impls
18
+ - **Loader** (`./loader`): file-loader, discovery, merge, validation, server/client entrypoints
19
+ - **Schema utilities** (`./schema`, `./schemas`)
20
+ - **Routing** (`./routing`): config route registry + merge
21
+ - **CRUD primitives** (`./crud`): base types, schemas, shared helpers
22
+ - **Extensions** (`./extensions`): pluggable extension registry
23
+ - **Services** (`./services`): config accessor, manifest utils, encryption (AES-256-GCM + PBKDF2)
24
+ - **Doctor** (`./doctor`): generic `diagnoseConfig(manifest, values, options)`
25
+ - **Plugins:** `./config.plugin` (core), `./environment/environment.plugin`
26
+ - **Context:** `config.context.descriptor` (DI handle for resolved config)
27
+
28
+ ## Does not own
29
+
30
+ - Storage implementations / adapters → [`storage`](../storage/SPEC.md). Config consumes `storage/adapter` through the runtime.
31
+ - Secrets backends (keychain, OS credential store) → [`secrets`](../secrets/SPEC.md). Encryption hands off to storage's encrypted adapters.
32
+ - TUI substrate (gateway, dispatcher, kinds) → [`tui`](../tui/SPEC.md). Config registers TUI assets against tui-owned kinds.
33
+ - CLI runtime / command dispatcher → [`cli`](../cli/SPEC.md).
34
+ - Domain-specific config manifests (AI providers, chat modes, knowledge sources, etc.). Each owning module defines its own `config/manifest` descriptors.
35
+ - AI-specific diagnostics (`diagnoseAIConfig`), AI source maps, chat-mode normalizers — **migrated to `packages/ai/src/config/` on 2026-05-09.** See [`packages/ai/SPEC.md`](../ai/SPEC.md) and `@vibesdotdev/ai/config/*` exports.
36
+ - **Domain env values.** AI provider URLs/keys, OAuth callback URLs, Linear team/status IDs, SMTP/Proton, scheduler crons, rate limits, etc. — owned by the consuming module (`packages/ai`, `packages/auth`, `packages/workers`, `apps/auth-web`, etc.). Config supplies `getEnv` / `getEnvBoolean` / `getEnvNumber`; the domain builds its own typed env from them. **Removed 2026-05-11** along with `./system`, `./schemas/env`, `./schemas/system`, `./settings`, `./form/navigation`.
37
+ - **Hard-coded global settings layout.** The old `./settings/manifest.ts` enumerated domain manifest IDs (`ai.providers`, `chat.modes`, `knowledge.bases`, …) in a single hard-coded list — that violated the no-domain-manifests rule. The current `./settings` exposes the `settings/section` contribution kind instead: each owning module's plugin registers its section via `descriptors: [...]` and `assembleSettingsSections(runtime)` concatenates them. Config never enumerates which sections exist.
38
+ - **`DEFAULT_PAGES` navigation table.** Same pattern — the deleted `./form/navigation` bundled an `ai`/`knowledge`/`session` page list. If page-tree navigation comes back, the page list is supplied by callers, not baked into config.
39
+
40
+ ## Hard rules
41
+
42
+ - **All config access goes through `ConfigManifest` or storage manifest.** No raw `fs.readFileSync` / `node:fs/promises` in config code. All persistence is runtime-resolved through storage adapters.
43
+ - **Resolution order is canonical:** env var → env-specific config file → base config file → schema default. Don't invent alternative orders.
44
+ - **Sensitive values use storage-adapter encryption, not Zod markers.** No `.encrypted()` extension on schemas. Encryption is a property of the storage adapter the manifest binds to.
45
+ - **Storage adapter selection is runtime-resolved.** Manifests declare what storage they want; the runtime picks the implementation. No `if (isCloud)` branches in config code.
46
+ - **Bootstrap order:** `storage` plugin → `config.plugin` → `environment.plugin` → consumers. Do not reorder.
47
+ - **`./ai/*` subpath removed (2026-05-09).** AI config utilities now live at `@vibesdotdev/ai/config/*`. Do not recreate.
48
+ - **No `config.ai` state here.** The stable `config.ai` TUI state id is registered by `@vibesdotdev/ai`; consumers resolve it through `runtime.query('tui/state')`.
49
+ - **No domain manifests in this package.** If a manifest is "AI providers" or "chat modes" or "tools agents," it lives in the owning module, not here.
50
+ - **No monorepo-wide `env` aggregate.** `@vibesdotdev/config/env` exports only the generic helpers (`getEnv`, `getEnvNumber`, `getEnvBoolean`, `validateRequiredEnv`). Do not reintroduce a `services.{ollama,…}` / `ai.{openai,…}` / `oauth.{github,…}` / `email.{…}` god-object. Domain env lives with the domain.
51
+ - **Domain env must be Zod-validated at its owning module's boundary.** Each owning module's `src/config/env.schema.ts` defines a Zod schema; `env.ts` parses `process.env` once through that schema and exports a typed value. No untyped `process.env.X` access in feature code.
52
+ - **Global settings layout is contributed, not enumerated.** Surfaces call `assembleSettingsSections(runtime)`; modules contribute `settings/section` descriptors via their plugin's `descriptors: [...]`. The owning module decides which of its `config/manifest` IDs participate in its section.
53
+
54
+ ## Public entrypoints
55
+
56
+ `package.json#exports` is canonical. Grouped: `.`, `./manifest/*`, `./form` + `./form/core/*`, `./loader/*`, `./schema/*`, `./schemas/*`, `./routing/*`, `./crud/*`, `./collection/*`, `./extensions/*`, `./services/*`, `./settings` + `./settings/*`, `./adapters/cli/*`, `./adapters/web/*`, `./browser`, `./server`, `./common`, `./cli/*`, `./tui/*`, `./environment/*`, `./client/*`, `./env`, `./env.runtime`, `./system-constants`, `./doctor`, `./plugin` (= `./config.plugin`).
57
+
58
+ Removed entries (do not reintroduce without restoring the domain-ownership review): `./system`, `./form/navigation`, `./form/navigation/*`, `./schemas/env`, `./schemas/system`.
59
+
60
+ Note: `./settings` is reintroduced as the runtime-first contribution surface (descriptor schema + assembly helper). It does **not** export a hard-coded manifest list — see Hard rules.
61
+
62
+ ## Verification
63
+
64
+ `bun --bun vitest run` from package root. Covers manifest CRUD, form core (field resolution, validation, visibility), encryption roundtrip, environment detection, doctor diagnostics, loader/merge.
65
+
66
+ ## Links
67
+
68
+ - [runtime/SPEC.md](../runtime/SPEC.md)
69
+ - [storage/SPEC.md](../storage/SPEC.md)
70
+ - [tui/SPEC.md](../tui/SPEC.md)
71
+ - [cli/SPEC.md](../cli/SPEC.md)
@@ -0,0 +1,75 @@
1
+ /**
2
+ * CLI Flag Config Helpers
3
+ *
4
+ * Utilities for accepting config overrides from CLI flags.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { parseConfigFlag, parseConfigFlags } from '../../adapters/cli/flags';
9
+ *
10
+ * // Single flag: --config maxIterations=5
11
+ * const override = parseConfigFlag('maxIterations=5');
12
+ * // { maxIterations: 5 }
13
+ *
14
+ * // Nested value: --config git.autoCommit=true
15
+ * const nested = parseConfigFlag('git.autoCommit=true');
16
+ * // { git: { autoCommit: true } }
17
+ *
18
+ * // Multiple flags: --config foo=1 --config bar=2
19
+ * const merged = parseConfigFlags(['foo=1', 'bar=2']);
20
+ * // { foo: 1, bar: 2 }
21
+ *
22
+ * // Commander integration
23
+ * program
24
+ * .option('-c, --config <key=value...>', 'Config overrides')
25
+ * .action((opts) => {
26
+ * const overrides = parseConfigFlags(opts.config);
27
+ * });
28
+ * ```
29
+ */
30
+ import type { ConfigOverride, ParsedConfigFlag } from './schemas/flags.schema.ts';
31
+ export type { ConfigOverride, ParsedConfigFlag } from './schemas/flags.schema.ts';
32
+ /**
33
+ * Parse a single config flag value.
34
+ *
35
+ * Accepts format: `key=value` or `path.to.key=value`
36
+ *
37
+ * @param flag - The flag value (e.g., "maxIterations=5" or "git.autoCommit=true")
38
+ * @returns Parsed config object with the value set at the appropriate path
39
+ */
40
+ export declare function parseConfigFlag(flag: string): ParsedConfigFlag;
41
+ /**
42
+ * Parse multiple config flag values and merge them.
43
+ *
44
+ * @param flags - Array of flag values or comma-separated string
45
+ * @returns Merged config object
46
+ */
47
+ export declare function parseConfigFlags(flags: string | string[] | undefined): ConfigOverride;
48
+ /**
49
+ * Create a Commander-compatible option processor.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * import { createConfigFlagCollector } from '../../adapters/cli/flags';
54
+ *
55
+ * program
56
+ * .option('-c, --config <key=value>', 'Config override', createConfigFlagCollector())
57
+ * .action((opts) => {
58
+ * // opts.config is a ConfigOverride object
59
+ * });
60
+ * ```
61
+ */
62
+ export declare function createConfigFlagCollector(): (value: string, previous: ConfigOverride) => ConfigOverride;
63
+ /**
64
+ * Validate that config overrides match expected schema keys.
65
+ *
66
+ * @param overrides - The parsed config overrides
67
+ * @param allowedKeys - Array of allowed top-level keys
68
+ * @returns Array of unknown keys found
69
+ */
70
+ export declare function validateConfigOverrideKeys(overrides: ConfigOverride, allowedKeys: string[]): string[];
71
+ /**
72
+ * Format config overrides for display.
73
+ */
74
+ export declare function formatConfigOverrides(overrides: ConfigOverride): string;
75
+ //# sourceMappingURL=flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElF,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AA0ElF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA4B9D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,cAAc,CAmBrF;AAsBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,IAAI,CAC5C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,KACpB,cAAc,CAMlB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACzC,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,MAAM,EAAE,GACnB,MAAM,EAAE,CAWV;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,CAiBvE"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * CLI Flag Config Helpers
3
+ *
4
+ * Utilities for accepting config overrides from CLI flags.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { parseConfigFlag, parseConfigFlags } from '../../adapters/cli/flags';
9
+ *
10
+ * // Single flag: --config maxIterations=5
11
+ * const override = parseConfigFlag('maxIterations=5');
12
+ * // { maxIterations: 5 }
13
+ *
14
+ * // Nested value: --config git.autoCommit=true
15
+ * const nested = parseConfigFlag('git.autoCommit=true');
16
+ * // { git: { autoCommit: true } }
17
+ *
18
+ * // Multiple flags: --config foo=1 --config bar=2
19
+ * const merged = parseConfigFlags(['foo=1', 'bar=2']);
20
+ * // { foo: 1, bar: 2 }
21
+ *
22
+ * // Commander integration
23
+ * program
24
+ * .option('-c, --config <key=value...>', 'Config overrides')
25
+ * .action((opts) => {
26
+ * const overrides = parseConfigFlags(opts.config);
27
+ * });
28
+ * ```
29
+ */
30
+ // Value Parsing
31
+ /**
32
+ * Parse a string value into its appropriate type.
33
+ */
34
+ function parseValue(value) {
35
+ // Trim whitespace
36
+ const trimmed = value.trim();
37
+ // Empty string
38
+ if (trimmed === '')
39
+ return '';
40
+ // Boolean
41
+ if (trimmed === 'true')
42
+ return true;
43
+ if (trimmed === 'false')
44
+ return false;
45
+ // Null/undefined
46
+ if (trimmed === 'null')
47
+ return null;
48
+ if (trimmed === 'undefined')
49
+ return undefined;
50
+ // Number
51
+ if (/^-?\d+$/.test(trimmed)) {
52
+ return parseInt(trimmed, 10);
53
+ }
54
+ if (/^-?\d+\.\d+$/.test(trimmed)) {
55
+ return parseFloat(trimmed);
56
+ }
57
+ // JSON array or object
58
+ if ((trimmed.startsWith('[') && trimmed.endsWith(']')) ||
59
+ (trimmed.startsWith('{') && trimmed.endsWith('}'))) {
60
+ try {
61
+ return JSON.parse(trimmed);
62
+ }
63
+ catch {
64
+ // Not valid JSON, return as string
65
+ }
66
+ }
67
+ // String (remove quotes if present)
68
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
69
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
70
+ return trimmed.slice(1, -1);
71
+ }
72
+ return trimmed;
73
+ }
74
+ /**
75
+ * Set a nested value in an object using dot notation.
76
+ */
77
+ function setNestedValue(obj, path, value) {
78
+ const parts = path.split('.');
79
+ let current = obj;
80
+ for (let i = 0; i < parts.length - 1; i++) {
81
+ const part = parts[i];
82
+ if (!(part in current) || typeof current[part] !== 'object' || current[part] === null) {
83
+ current[part] = {};
84
+ }
85
+ current = current[part];
86
+ }
87
+ const lastPart = parts[parts.length - 1];
88
+ current[lastPart] = value;
89
+ }
90
+ // Main API
91
+ /**
92
+ * Parse a single config flag value.
93
+ *
94
+ * Accepts format: `key=value` or `path.to.key=value`
95
+ *
96
+ * @param flag - The flag value (e.g., "maxIterations=5" or "git.autoCommit=true")
97
+ * @returns Parsed config object with the value set at the appropriate path
98
+ */
99
+ export function parseConfigFlag(flag) {
100
+ const equalsIndex = flag.indexOf('=');
101
+ if (equalsIndex === -1) {
102
+ // No value, treat as boolean true
103
+ const config = {};
104
+ setNestedValue(config, flag, true);
105
+ return {
106
+ config,
107
+ key: flag,
108
+ rawValue: 'true',
109
+ value: true
110
+ };
111
+ }
112
+ const key = flag.slice(0, equalsIndex);
113
+ const rawValue = flag.slice(equalsIndex + 1);
114
+ const value = parseValue(rawValue);
115
+ const config = {};
116
+ setNestedValue(config, key, value);
117
+ return {
118
+ config,
119
+ key,
120
+ rawValue,
121
+ value
122
+ };
123
+ }
124
+ /**
125
+ * Parse multiple config flag values and merge them.
126
+ *
127
+ * @param flags - Array of flag values or comma-separated string
128
+ * @returns Merged config object
129
+ */
130
+ export function parseConfigFlags(flags) {
131
+ if (!flags)
132
+ return {};
133
+ const flagArray = typeof flags === 'string'
134
+ ? flags
135
+ .split(',')
136
+ .map((s) => s.trim())
137
+ .filter(Boolean)
138
+ : flags;
139
+ const result = {};
140
+ for (const flag of flagArray) {
141
+ const parsed = parseConfigFlag(flag);
142
+ deepMerge(result, parsed.config);
143
+ }
144
+ return result;
145
+ }
146
+ /**
147
+ * Deep merge source into target.
148
+ */
149
+ function deepMerge(target, source) {
150
+ for (const [key, value] of Object.entries(source)) {
151
+ if (value !== null &&
152
+ typeof value === 'object' &&
153
+ !Array.isArray(value) &&
154
+ target[key] !== null &&
155
+ typeof target[key] === 'object' &&
156
+ !Array.isArray(target[key])) {
157
+ deepMerge(target[key], value);
158
+ }
159
+ else {
160
+ target[key] = value;
161
+ }
162
+ }
163
+ }
164
+ /**
165
+ * Create a Commander-compatible option processor.
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * import { createConfigFlagCollector } from '../../adapters/cli/flags';
170
+ *
171
+ * program
172
+ * .option('-c, --config <key=value>', 'Config override', createConfigFlagCollector())
173
+ * .action((opts) => {
174
+ * // opts.config is a ConfigOverride object
175
+ * });
176
+ * ```
177
+ */
178
+ export function createConfigFlagCollector() {
179
+ return (value, previous = {}) => {
180
+ const parsed = parseConfigFlag(value);
181
+ deepMerge(previous, parsed.config);
182
+ return previous;
183
+ };
184
+ }
185
+ /**
186
+ * Validate that config overrides match expected schema keys.
187
+ *
188
+ * @param overrides - The parsed config overrides
189
+ * @param allowedKeys - Array of allowed top-level keys
190
+ * @returns Array of unknown keys found
191
+ */
192
+ export function validateConfigOverrideKeys(overrides, allowedKeys) {
193
+ const unknownKeys = [];
194
+ const allowedSet = new Set(allowedKeys);
195
+ for (const key of Object.keys(overrides)) {
196
+ if (!allowedSet.has(key)) {
197
+ unknownKeys.push(key);
198
+ }
199
+ }
200
+ return unknownKeys;
201
+ }
202
+ /**
203
+ * Format config overrides for display.
204
+ */
205
+ export function formatConfigOverrides(overrides) {
206
+ const lines = [];
207
+ function format(obj, prefix = '') {
208
+ for (const [key, value] of Object.entries(obj)) {
209
+ const path = prefix ? `${prefix}.${key}` : key;
210
+ if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
211
+ format(value, path);
212
+ }
213
+ else {
214
+ lines.push(` ${path} = ${JSON.stringify(value)}`);
215
+ }
216
+ }
217
+ }
218
+ format(overrides);
219
+ return lines.join('\n');
220
+ }
221
+ //# sourceMappingURL=flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../src/adapters/cli/flags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CLI Config Adapter
3
+ */
4
+ export { getCLIPromptType, CLI_PROMPT_MAP } from './mappings.ts';
5
+ export type { CLIPromptType } from './mappings.ts';
6
+ export { formatFieldPrompt, formatSelectOptions, formatDefaultValue, parseInputValue } from './prompts.ts';
7
+ export type { PromptResult } from './prompts.ts';
8
+ export { createWizardSteps, getStepPrompts, validateWizardResults } from './wizard.ts';
9
+ export type { WizardOptions, WizardStep, WizardResult } from './wizard.ts';
10
+ export { parseConfigFlag, parseConfigFlags, createConfigFlagCollector, validateConfigOverrideKeys, formatConfigOverrides } from './flags.ts';
11
+ export type { ConfigOverride, ParsedConfigFlag } from './flags.ts';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACvF,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CLI Config Adapter
3
+ */
4
+ export { getCLIPromptType, CLI_PROMPT_MAP } from "./mappings.js";
5
+ export { formatFieldPrompt, formatSelectOptions, formatDefaultValue, parseInputValue } from "./prompts.js";
6
+ export { createWizardSteps, getStepPrompts, validateWizardResults } from "./wizard.js";
7
+ // Config flag helpers
8
+ export { parseConfigFlag, parseConfigFlags, createConfigFlagCollector, validateConfigOverrideKeys, formatConfigOverrides } from "./flags.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGvF,sBAAsB;AACtB,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CLI Prompt Mappings
3
+ *
4
+ * Maps FieldComponent types to CLI prompt types
5
+ */
6
+ import type { FieldComponent } from '../../manifest/types.ts';
7
+ import type { CLIPromptType } from './schemas/mappings.schema.ts';
8
+ export type { CLIPromptType } from './schemas/mappings.schema.ts';
9
+ /**
10
+ * Map field component to CLI prompt type
11
+ */
12
+ export declare const CLI_PROMPT_MAP: Record<FieldComponent, CLIPromptType>;
13
+ /**
14
+ * Get CLI prompt type for a field
15
+ */
16
+ export declare function getCLIPromptType(component: FieldComponent): CLIPromptType;
17
+ //# sourceMappingURL=mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/mappings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,aAAa,CAqBhE,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,cAAc,GAAG,aAAa,CAEzE"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Map field component to CLI prompt type
3
+ */
4
+ export const CLI_PROMPT_MAP = {
5
+ input: 'input',
6
+ textarea: 'input',
7
+ number: 'number',
8
+ select: 'select',
9
+ 'multi-select': 'multiselect',
10
+ 'radio-group': 'select',
11
+ checkbox: 'confirm',
12
+ switch: 'confirm',
13
+ slider: 'number',
14
+ color: 'input',
15
+ date: 'input',
16
+ datetime: 'input',
17
+ file: 'input',
18
+ password: 'password',
19
+ secret: 'password',
20
+ json: 'input',
21
+ code: 'input',
22
+ custom: 'input',
23
+ reference: 'select',
24
+ 'multi-reference': 'multiselect'
25
+ };
26
+ /**
27
+ * Get CLI prompt type for a field
28
+ */
29
+ export function getCLIPromptType(component) {
30
+ return CLI_PROMPT_MAP[component] || 'input';
31
+ }
32
+ //# sourceMappingURL=mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../../src/adapters/cli/mappings.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAA0C;IACpE,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,aAAa;IAC7B,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,OAAO;IACf,SAAS,EAAE,QAAQ;IACnB,iBAAiB,EAAE,aAAa;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAyB;IACzD,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * CLI Prompt Utilities
3
+ *
4
+ * Functions for prompting users in CLI context
5
+ */
6
+ import type { ConfigFieldMeta } from '../../manifest/types.ts';
7
+ import type { ResolvedField } from '../../form/core/types.ts';
8
+ export type { PromptResult } from './schemas/prompts.schema.ts';
9
+ /**
10
+ * Format a field for CLI display
11
+ */
12
+ export declare function formatFieldPrompt(field: ResolvedField): string;
13
+ /**
14
+ * Format options for select prompts
15
+ */
16
+ export declare function formatSelectOptions(meta: ConfigFieldMeta): Array<{
17
+ value: string;
18
+ label: string;
19
+ }>;
20
+ /**
21
+ * Get default value display for CLI
22
+ */
23
+ export declare function formatDefaultValue(value: unknown): string;
24
+ /**
25
+ * Parse CLI input to correct type
26
+ */
27
+ export declare function parseInputValue(input: string, field: ResolvedField): unknown;
28
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/adapters/cli/prompts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAa9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,IAAI,EAAE,eAAe,GACnB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAOzC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAa5E"}
@@ -0,0 +1,55 @@
1
+ import { getCLIPromptType } from "./mappings.js";
2
+ /**
3
+ * Format a field for CLI display
4
+ */
5
+ export function formatFieldPrompt(field) {
6
+ const { meta } = field;
7
+ let prompt = meta.ui.label;
8
+ if (meta.ui.description) {
9
+ prompt += ` (${meta.ui.description})`;
10
+ }
11
+ if (field.required) {
12
+ prompt += ' *';
13
+ }
14
+ return prompt;
15
+ }
16
+ /**
17
+ * Format options for select prompts
18
+ */
19
+ export function formatSelectOptions(meta) {
20
+ if (!meta.options)
21
+ return [];
22
+ return meta.options.map((opt) => ({
23
+ value: String(opt.value),
24
+ label: opt.description ? `${opt.label} - ${opt.description}` : opt.label
25
+ }));
26
+ }
27
+ /**
28
+ * Get default value display for CLI
29
+ */
30
+ export function formatDefaultValue(value) {
31
+ if (value === undefined || value === null)
32
+ return '';
33
+ if (typeof value === 'boolean')
34
+ return value ? 'yes' : 'no';
35
+ if (typeof value === 'object')
36
+ return JSON.stringify(value);
37
+ return String(value);
38
+ }
39
+ /**
40
+ * Parse CLI input to correct type
41
+ */
42
+ export function parseInputValue(input, field) {
43
+ const promptType = getCLIPromptType(field.component);
44
+ switch (promptType) {
45
+ case 'number': {
46
+ const num = parseFloat(input);
47
+ return isNaN(num) ? undefined : num;
48
+ }
49
+ case 'confirm':
50
+ return input.toLowerCase() === 'yes' || input.toLowerCase() === 'y' || input === 'true';
51
+ default:
52
+ return input;
53
+ }
54
+ }
55
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/adapters/cli/prompts.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACrD,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;IAE3B,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,IAAqB;IAErB,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAE7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;KACxE,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAoB;IAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAErD,QAAQ,UAAU,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QACrC,CAAC;QACD,KAAK,SAAS;YACb,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,CAAC;QACzF;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC"}