@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,250 @@
1
+ /**
2
+ * CRUD Metadata Types for Config Manifests
3
+ *
4
+ * Extends the manifest system with metadata for rendering
5
+ * list views, create/edit forms, and delete confirmations.
6
+ */
7
+ import type { ReactNode } from 'react';
8
+ import type { ConfigManifest, ConfigFieldMeta } from '../manifest/types.ts';
9
+ import type { ExtensionSurface } from '../extensions/types.ts';
10
+ import type { ManifestRouting, NestedRouting } from '../routing/types.ts';
11
+ import type { BaseRecord, CRUDViewMode, FormStep } from './base-types.ts';
12
+ export type { BaseRecord, CRUDViewMode, FormStep } from './base-types.ts';
13
+ /**
14
+ * Column definition for list/table views
15
+ */
16
+ export interface ListColumn<T = unknown> {
17
+ /** Field key to display (dot notation for nested) */
18
+ key: string;
19
+ /** Column header label */
20
+ label: string;
21
+ /** Column width (characters or 'auto') */
22
+ width?: number | 'auto';
23
+ /** Text alignment */
24
+ align?: 'left' | 'center' | 'right';
25
+ /** Whether column is sortable */
26
+ sortable?: boolean;
27
+ /** Custom render function */
28
+ render?: (value: unknown, record: T) => ReactNode;
29
+ /** Format preset (applies default render) */
30
+ format?: 'text' | 'number' | 'date' | 'boolean' | 'status' | 'badge';
31
+ }
32
+ /**
33
+ * List view configuration
34
+ */
35
+ export interface ListViewConfig<T = unknown> {
36
+ /** Columns to display */
37
+ columns: ListColumn<T>[];
38
+ /** Field to use as display name in UI */
39
+ displayField: string;
40
+ /** Field to use as unique identifier */
41
+ idField?: string;
42
+ /** Default sort field */
43
+ defaultSort?: string;
44
+ /** Default sort direction */
45
+ defaultSortDirection?: 'asc' | 'desc';
46
+ /** Empty state message */
47
+ emptyMessage?: string;
48
+ /** Whether to show search/filter */
49
+ searchable?: boolean;
50
+ /** Fields to search in */
51
+ searchFields?: string[];
52
+ /** Row actions (edit, delete, custom) */
53
+ actions?: ListAction[];
54
+ /** Bulk actions */
55
+ bulkActions?: ListAction[];
56
+ }
57
+ /**
58
+ * Action available in list view
59
+ */
60
+ export interface ListAction {
61
+ id: string;
62
+ label: string;
63
+ icon?: string;
64
+ variant?: 'primary' | 'secondary' | 'danger' | 'ghost';
65
+ /** When action should be disabled */
66
+ disabledWhen?: (record: unknown) => boolean;
67
+ /** When action should be hidden */
68
+ hiddenWhen?: (record: unknown) => boolean;
69
+ }
70
+ /**
71
+ * Form view configuration (create/edit)
72
+ */
73
+ export interface FormViewConfig {
74
+ /** Title for create mode */
75
+ createTitle?: string;
76
+ /** Title for edit mode */
77
+ editTitle?: string;
78
+ /** Fields to show in create mode (defaults to all) */
79
+ createFields?: string[];
80
+ /** Fields to show in edit mode (defaults to all) */
81
+ editFields?: string[];
82
+ /** Fields that are read-only in edit mode */
83
+ readOnlyInEdit?: string[];
84
+ /** Whether to show cancel button */
85
+ showCancel?: boolean;
86
+ /** Submit button label for create */
87
+ createSubmitLabel?: string;
88
+ /** Submit button label for edit */
89
+ editSubmitLabel?: string;
90
+ /** Layout mode */
91
+ layout?: 'vertical' | 'horizontal' | 'grid';
92
+ /**
93
+ * Optional wizard steps for multi-step forms.
94
+ * If provided, form renders as a stepped wizard.
95
+ * If omitted, form renders all fields in a single view.
96
+ */
97
+ steps?: FormStep[];
98
+ }
99
+ /**
100
+ * Detail/view configuration (read-only view of single record)
101
+ */
102
+ export interface DetailViewConfig {
103
+ /** Title template (can include {field} placeholders) */
104
+ titleTemplate?: string;
105
+ /** Fields to display */
106
+ fields?: string[];
107
+ /** Whether to group fields */
108
+ grouped?: boolean;
109
+ /** Custom sections */
110
+ sections?: DetailSection[];
111
+ }
112
+ /**
113
+ * Section in detail view
114
+ */
115
+ export interface DetailSection {
116
+ id: string;
117
+ title: string;
118
+ icon?: string;
119
+ fields: string[];
120
+ collapsed?: boolean;
121
+ }
122
+ /**
123
+ * Delete confirmation configuration
124
+ */
125
+ export interface DeleteConfig {
126
+ /** Confirmation message template */
127
+ confirmMessage?: string;
128
+ /** Whether to require typing name to confirm */
129
+ requireNameConfirmation?: boolean;
130
+ /** Warning message about consequences */
131
+ warningMessage?: string;
132
+ /** Related records that will be affected */
133
+ cascadeWarning?: string;
134
+ }
135
+ /**
136
+ * Auto-detection configuration for CRUD resources
137
+ * Enables scanning for local/cloud providers, agents, etc.
138
+ */
139
+ export interface DetectionConfig<TDetected = unknown, TRecord = unknown> {
140
+ /** Whether detection is enabled */
141
+ enabled: boolean;
142
+ /** Function that performs detection */
143
+ detector: () => Promise<TDetected[]>;
144
+ /** Label for detection button */
145
+ label?: string;
146
+ /** Description of what will be detected */
147
+ description?: string;
148
+ /** Function to match detected item with existing record */
149
+ matcher: (detected: TDetected, existing: TRecord) => boolean;
150
+ }
151
+ /**
152
+ * Complete CRUD configuration for a record-type manifest
153
+ */
154
+ export interface CRUDConfig<T = unknown, TDetected = unknown> {
155
+ /** List view configuration */
156
+ list: ListViewConfig<T>;
157
+ /** Form view configuration */
158
+ form?: FormViewConfig;
159
+ /** Detail view configuration */
160
+ detail?: DetailViewConfig;
161
+ /** Delete confirmation configuration */
162
+ delete?: DeleteConfig;
163
+ /** Auto-detection configuration */
164
+ detection?: DetectionConfig<TDetected, T>;
165
+ /** Whether records can be created */
166
+ canCreate?: boolean;
167
+ /** Whether records can be edited */
168
+ canEdit?: boolean;
169
+ /** Whether records can be deleted */
170
+ canDelete?: boolean;
171
+ /** Whether records can be duplicated */
172
+ canDuplicate?: boolean;
173
+ }
174
+ /**
175
+ * A manifest for record-type configurations (providers, agents, etc.)
176
+ * Extends ConfigManifest with CRUD metadata for automatic UI generation.
177
+ */
178
+ export interface RecordManifest<T = unknown, TDetected = unknown> extends ConfigManifest {
179
+ /** CRUD configuration for list/form/detail views */
180
+ crud: CRUDConfig<T, TDetected>;
181
+ /** Schema for individual records (vs the full config) */
182
+ recordSchema?: ConfigManifest['schema'];
183
+ /**
184
+ * Discriminated routing configuration (single discriminator).
185
+ * When present, a discriminator field value determines which variant
186
+ * fields, schema, and overrides are active.
187
+ */
188
+ routing?: ManifestRouting;
189
+ /**
190
+ * Nested routing configurations (multiple discriminators).
191
+ * Used when a manifest contains multiple independent discriminated unions,
192
+ * each at a different path. For example, agent role configurations where
193
+ * each role (orchestration, development, etc.) has its own type discriminator.
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * nestedRoutings: [
198
+ * { path: 'agents.orchestration', discriminator: 'type', label: 'Orchestration Agent', variants: agentVariants },
199
+ * { path: 'agents.development', discriminator: 'type', label: 'Development Agent', variants: agentVariants },
200
+ * ]
201
+ * ```
202
+ */
203
+ nestedRoutings?: NestedRouting[];
204
+ }
205
+ /**
206
+ * Type guard to check if manifest has CRUD config
207
+ */
208
+ export declare function isRecordManifest(manifest: ConfigManifest): manifest is RecordManifest;
209
+ /**
210
+ * Type guard to check if manifest has nested routings
211
+ */
212
+ export declare function hasNestedRoutings(manifest: ConfigManifest): manifest is RecordManifest & {
213
+ nestedRoutings: NestedRouting[];
214
+ };
215
+ /**
216
+ * Props for the generic CRUD page component
217
+ */
218
+ export interface CRUDPageProps<T extends BaseRecord = BaseRecord> {
219
+ /** The record manifest */
220
+ manifest: RecordManifest<T>;
221
+ /** Surface for loading extensions (enables extension loading when set) */
222
+ surface?: ExtensionSurface;
223
+ /** Whether component is embedded (removes padding and FocusZone) */
224
+ embedded?: boolean;
225
+ /** Initial view mode */
226
+ initialMode?: CRUDViewMode;
227
+ /** Selected record ID (for edit/view/delete modes) */
228
+ selectedId?: string;
229
+ /** Called when navigating between modes */
230
+ onModeChange?: (mode: CRUDViewMode, recordId?: string) => void;
231
+ /** Called after successful create */
232
+ onCreated?: (record: T) => void;
233
+ /** Called after successful update */
234
+ onUpdated?: (record: T) => void;
235
+ /** Called after successful delete */
236
+ onDeleted?: (recordId: string) => void;
237
+ /** Custom list row renderer */
238
+ renderListRow?: (record: T, defaultRender: () => ReactNode) => ReactNode;
239
+ /** Custom form field renderer */
240
+ renderFormField?: (field: ConfigFieldMeta, value: unknown, onChange: (value: unknown) => void, defaultRender: () => ReactNode) => ReactNode;
241
+ /** Custom detail field renderer */
242
+ renderDetailField?: (field: ConfigFieldMeta, value: unknown, defaultRender: () => ReactNode) => ReactNode;
243
+ /** Custom empty state */
244
+ renderEmpty?: () => ReactNode;
245
+ /** Custom header */
246
+ renderHeader?: (mode: CRUDViewMode, record?: T) => ReactNode;
247
+ /** Custom footer */
248
+ renderFooter?: (mode: CRUDViewMode, record?: T) => ReactNode;
249
+ }
250
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/crud/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * CRUD Metadata Types for Config Manifests
3
+ *
4
+ * Extends the manifest system with metadata for rendering
5
+ * list views, create/edit forms, and delete confirmations.
6
+ */
7
+ /**
8
+ * Type guard to check if manifest has CRUD config
9
+ */
10
+ export function isRecordManifest(manifest) {
11
+ return 'crud' in manifest && manifest.crud !== undefined;
12
+ }
13
+ /**
14
+ * Type guard to check if manifest has nested routings
15
+ */
16
+ export function hasNestedRoutings(manifest) {
17
+ return (isRecordManifest(manifest) &&
18
+ 'nestedRoutings' in manifest &&
19
+ Array.isArray(manifest.nestedRoutings) &&
20
+ manifest.nestedRoutings.length > 0);
21
+ }
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/crud/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmOH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACxD,OAAO,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAChC,QAAwB;IAExB,OAAO,CACN,gBAAgB,CAAC,QAAQ,CAAC;QAC1B,gBAAgB,IAAI,QAAQ;QAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QACtC,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DocsTopicDescriptor } from '@vibesdotdev/docs';
2
+ declare const descriptor: DocsTopicDescriptor;
3
+ export default descriptor;
4
+ //# sourceMappingURL=environment.docs.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/environment.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,mBA4XjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,383 @@
1
+ const descriptor = {
2
+ kind: 'docs/topic',
3
+ id: 'config.environment',
4
+ title: 'Environment Configuration',
5
+ summary: 'Environment variables, secrets management, and resolution',
6
+ body: {
7
+ type: 'markdown',
8
+ sourceType: 'raw',
9
+ source: `---
10
+ title: Environment Configuration
11
+ summary: Environment variables, secrets management, and resolution
12
+ tags: [config, environment, variables, secrets, resolution]
13
+ parent: config
14
+ order: 2
15
+ surfaces: [cli, web, in-app]
16
+ hardware: [consumer, cloud]
17
+ ---
18
+
19
+ # Environment Configuration
20
+
21
+ Environment configuration manages environment variables, secrets, and runtime environment selection. The config system provides type-safe environment resolution with environment-specific overrides.
22
+
23
+ ## Environment Types
24
+
25
+ ### Defined Environments
26
+
27
+ \`\`\`ts
28
+ type Environment = 'development' | 'staging' | 'production' | 'test';
29
+ \`\`\`
30
+
31
+ ### Environment Context
32
+
33
+ \`\`\`ts
34
+ interface EnvironmentContext {
35
+ name: Environment;
36
+ origin: string;
37
+ apiBaseUrl: string;
38
+ authOrigin: string;
39
+ features: {
40
+ analytics: boolean;
41
+ debugging: boolean;
42
+ experimental: boolean;
43
+ };
44
+ }
45
+ \`\`\`
46
+
47
+ ## Loading Environment
48
+
49
+ ### Current Environment
50
+
51
+ \`\`\`ts
52
+ import { loadCurrentEnvironmentSelection } from '@vibesdotdev/config';
53
+
54
+ const env = await loadCurrentEnvironmentSelection();
55
+
56
+ console.log(env.name); // 'development' | 'staging' | 'production'
57
+ console.log(env.origin); // 'http://localhost:3000'
58
+ \`\`\`
59
+
60
+ ### Environment Catalog
61
+
62
+ \`\`\`ts
63
+ import { loadEnvironmentCatalog } from '@vibesdotdev/config';
64
+
65
+ const catalog = await loadEnvironmentCatalog();
66
+
67
+ console.log(catalog);
68
+ // {
69
+ // development: { origin: 'http://localhost:3000', ... },
70
+ // staging: { origin: 'https://staging.vibes.dev', ... },
71
+ // production: { origin: 'https://vibes.dev', ... }
72
+ // }
73
+ \`\`\`
74
+
75
+ ## Environment Variables
76
+
77
+ ### Accessing Variables
78
+
79
+ \`\`\`ts
80
+ import { env } from '@vibesdotdev/config';
81
+
82
+ const apiKey = env.get('ANTHROPIC_API_KEY');
83
+ const debug = env.get('DEBUG_MODE', 'false') === 'true';
84
+ const port = env.get('PORT', '3000');
85
+ \`\`\`
86
+
87
+ ### Typed Environment Variables
88
+
89
+ \`\`\`ts
90
+ import { z } from 'zod';
91
+ import { env } from '@vibesdotdev/config';
92
+
93
+ const config = env.parse(
94
+ z.object({
95
+ ANTHROPIC_API_KEY: z.string().min(1),
96
+ DEBUG_MODE: z.boolean().default(false),
97
+ PORT: z.number().default(3000),
98
+ DATABASE_URL: z.string().url()
99
+ })
100
+ );
101
+
102
+ console.log(config.ANTHROPIC_API_KEY); // string
103
+ console.log(config.DEBUG_MODE); // boolean
104
+ console.log(config.PORT); // number
105
+ \`\`\`
106
+
107
+ ## Secrets Management
108
+
109
+ ### Secret Resolution
110
+
111
+ \`\`\`ts
112
+ import { resolveAuthApiBaseUrl } from '@vibesdotdev/auth';
113
+
114
+ const authUrl = await resolveAuthApiBaseUrl({
115
+ environment: 'production'
116
+ });
117
+
118
+ console.log(authUrl); // 'https://auth.vibes.dev'
119
+ \`\`\`
120
+
121
+ ### Secret Sources
122
+
123
+ Secrets can come from multiple sources:
124
+
125
+ \`\`\`ts
126
+ interface SecretResolution {
127
+ source: 'env' | 'vault' | 'wrangler' | 'encrypted-local';
128
+ key: string;
129
+ resolved: string;
130
+ }
131
+ \`\`\`
132
+
133
+ **Priority order:**
134
+ 1. Environment variable (process.env)
135
+ 2. Vault secret (if configured)
136
+ 3. Wrangler secret (Cloudflare)
137
+ 4. Encrypted local file (~/.config/vibes/secrets)
138
+
139
+ ### Credential References
140
+
141
+ Use credential references in config files:
142
+
143
+ \`\`\`jsonc
144
+ {
145
+ "configuration": {
146
+ // ✅ Secret store reference
147
+ "apiKey": { "source": "secret", "key": "ANTHROPIC_API_KEY" },
148
+
149
+ // ✅ Environment variable reference
150
+ "apiKey": { "source": "env", "key": "ANTHROPIC_API_KEY" },
151
+
152
+ // ❌ NEVER — bare credential strings
153
+ "apiKey": "<raw-api-key>"
154
+ }
155
+ }
156
+ \`\`\`
157
+
158
+ ## Environment Resolution
159
+
160
+ ### Resolution Order
161
+
162
+ 1. **Explicit override** — \`--environment production\`
163
+ 2. **Saved selection** — ~/.config/vibes/environment.json
164
+ 3. **Environment detection** — Vercel, Cloudflare, etc.
165
+ 4. **Default** — 'development'
166
+
167
+ ### Programmatic Selection
168
+
169
+ \`\`\`ts
170
+ import { saveCurrentEnvironmentSelection } from '@vibesdotdev/config';
171
+
172
+ await saveCurrentEnvironmentSelection({
173
+ name: 'production',
174
+ origin: 'https://vibes.dev'
175
+ });
176
+
177
+ // Future loads will use production
178
+ const env = await loadCurrentEnvironmentSelection();
179
+ console.log(env.name); // 'production'
180
+ \`\`\`
181
+
182
+ ### CLI Selection
183
+
184
+ \`\`\`bash
185
+ # Set environment
186
+ vibes config environment set production
187
+
188
+ # View current
189
+ vibes config environment get
190
+
191
+ # List available
192
+ vibes config environment list
193
+ \`\`\`
194
+
195
+ ## Environment-Specific Configuration
196
+
197
+ ### Config Overrides
198
+
199
+ \`\`\`ts
200
+ const aiConfigManifest = createConfigManifest({
201
+ id: 'ai',
202
+ schema: z.object({
203
+ baseUrl: z.string(),
204
+ timeout: z.number()
205
+ }),
206
+ fields: [
207
+ {
208
+ path: 'baseUrl',
209
+ label: 'API Base URL',
210
+ defaults: {
211
+ type: 'context',
212
+ rules: [
213
+ {
214
+ when: { environment: 'development' },
215
+ value: 'http://localhost:3000'
216
+ },
217
+ {
218
+ when: { environment: 'production' },
219
+ value: 'https://api.vibes.dev'
220
+ }
221
+ ]
222
+ }
223
+ },
224
+ {
225
+ path: 'timeout',
226
+ label: 'Timeout',
227
+ defaults: {
228
+ type: 'context',
229
+ rules: [
230
+ {
231
+ when: { environment: 'development' },
232
+ value: 60000 // 60s for debugging
233
+ },
234
+ {
235
+ when: { environment: 'production' },
236
+ value: 10000 // 10s for performance
237
+ }
238
+ ]
239
+ }
240
+ }
241
+ ]
242
+ });
243
+ \`\`\`
244
+
245
+ ### Feature Flags
246
+
247
+ \`\`\`ts
248
+ import { loadCurrentEnvironmentSelection } from '@vibesdotdev/config';
249
+
250
+ const env = await loadCurrentEnvironmentSelection();
251
+
252
+ if (env.features.experimental) {
253
+ // Enable experimental features
254
+ await enableExperimentalFeature('new-ui');
255
+ }
256
+
257
+ if (env.features.debugging) {
258
+ // Enable debug logging
259
+ logger.setLevel('debug');
260
+ }
261
+ \`\`\`
262
+
263
+ ## Platform Detection
264
+
265
+ ### Vercel
266
+
267
+ \`\`\`ts
268
+ // Auto-detected from VERCEL_ENV
269
+ if (process.env.VERCEL_ENV === 'production') {
270
+ environment = 'production';
271
+ } else if (process.env.VERCEL_ENV === 'preview') {
272
+ environment = 'staging';
273
+ }
274
+ \`\`\`
275
+
276
+ ### Cloudflare Workers
277
+
278
+ \`\`\`ts
279
+ // Auto-detected from worker environment
280
+ if (env.CF_ENV === 'production') {
281
+ environment = 'production';
282
+ }
283
+ \`\`\`
284
+
285
+ ### Local Development
286
+
287
+ \`\`\`ts
288
+ // Default when no platform detected
289
+ if (!process.env.VERCEL_ENV && !process.env.CF_ENV) {
290
+ environment = 'development';
291
+ }
292
+ \`\`\`
293
+
294
+ ## E2E Environment Configuration
295
+
296
+ ### E2E Origins
297
+
298
+ \`\`\`ts
299
+ import {
300
+ AUTH_E2E_LOCAL_ORIGIN,
301
+ AUTH_E2E_DEV_SERVER_ORIGIN,
302
+ resolveAuthE2EOrigin
303
+ } from '@vibesdotdev/auth';
304
+
305
+ const e2eOrigin = resolveAuthE2EOrigin({
306
+ mode: 'local' // or 'dev-server'
307
+ });
308
+
309
+ console.log(e2eOrigin); // 'http://localhost:3000' or dev server
310
+ \`\`\`
311
+
312
+ ### E2E Base URL Resolution
313
+
314
+ \`\`\`ts
315
+ const authBaseUrl = await resolveAuthE2EBaseUrl({
316
+ e2eMode: 'local',
317
+ customOrigin: 'http://localhost:5173'
318
+ });
319
+ \`\`\`
320
+
321
+ ## Environment Validation
322
+
323
+ ### Schema Validation
324
+
325
+ \`\`\`ts
326
+ import { z } from 'zod';
327
+ import { env } from '@vibesdotdev/config';
328
+
329
+ const envSchema = z.object({
330
+ NODE_ENV: z.enum(['development', 'production', 'test']),
331
+ DATABASE_URL: z.string().url(),
332
+ API_KEY: z.string().min(1)
333
+ });
334
+
335
+ try {
336
+ const config = env.parse(envSchema);
337
+ } catch (error) {
338
+ console.error('Invalid environment configuration:', error);
339
+ process.exit(1);
340
+ }
341
+ \`\`\`
342
+
343
+ ### Required Variables
344
+
345
+ \`\`\`ts
346
+ const requiredVars = [
347
+ 'DATABASE_URL',
348
+ 'API_KEY',
349
+ 'AUTH_SECRET'
350
+ ];
351
+
352
+ for (const variable of requiredVars) {
353
+ if (!process.env[variable]) {
354
+ throw new Error(\`Missing required environment variable: \${variable}\`);
355
+ }
356
+ }
357
+ \`\`\`
358
+
359
+ ## Best Practices
360
+
361
+ 1. **Use typed environment variables** — Zod schemas for validation
362
+ 2. **Never commit secrets** — Use credential references
363
+ 3. **Provide sensible defaults** — Especially for local development
364
+ 4. **Validate on startup** — Fail fast on missing required vars
365
+ 5. **Document required variables** — In README or .env.example
366
+ 6. **Use environment-specific configs** — Different settings per environment
367
+
368
+ :::card{title="See also"}
369
+ - [\`config.manifests\`](config.manifests) — Configuration manifests
370
+ - [\`config.validation\`](config.validation) — Schema validation
371
+ - [\`auth.providers\`](auth.providers) — Auth provider configuration
372
+ :::
373
+ `
374
+ },
375
+ parent: 'config',
376
+ order: 2,
377
+ tags: ['config', 'environment', 'variables', 'secrets', 'resolution'],
378
+ surfaces: ['cli', 'web', 'in-app'],
379
+ hardware: ['consumer', 'cloud'],
380
+ enabled: true
381
+ };
382
+ export default descriptor;
383
+ //# sourceMappingURL=environment.docs.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/environment.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,oBAAoB;IACxB,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,2DAA2D;IACpE,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4WT;KACC;IACD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAClC,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DocsTopicDescriptor } from '@vibesdotdev/docs';
2
+ declare const descriptor: DocsTopicDescriptor;
3
+ export default descriptor;
4
+ //# sourceMappingURL=manifests.docs.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifests.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/manifests.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,QAAA,MAAM,UAAU,EAAE,mBAofjB,CAAC;AAEF,eAAe,UAAU,CAAC"}