@adminiumjs/adminium 0.1.0-rc.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 (875) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +94 -0
  3. package/dashboard/assets/DeltaPill-dxlsGh-1.js +2 -0
  4. package/dashboard/assets/DeltaPill-dxlsGh-1.js.map +1 -0
  5. package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js +2 -0
  6. package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js.map +1 -0
  7. package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js +2 -0
  8. package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js.map +1 -0
  9. package/dashboard/assets/RemapEditor-z3vRY12e.js +2 -0
  10. package/dashboard/assets/RemapEditor-z3vRY12e.js.map +1 -0
  11. package/dashboard/assets/ReviewScreen-COkLQ3T7.js +2 -0
  12. package/dashboard/assets/ReviewScreen-COkLQ3T7.js.map +1 -0
  13. package/dashboard/assets/Sparkline-Cvwo368J.js +2 -0
  14. package/dashboard/assets/Sparkline-Cvwo368J.js.map +1 -0
  15. package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js +2 -0
  16. package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js.map +1 -0
  17. package/dashboard/assets/arc-CPxb74pf.js +2 -0
  18. package/dashboard/assets/arc-CPxb74pf.js.map +1 -0
  19. package/dashboard/assets/bars-ranking-components-9Asn_0gR.js +2 -0
  20. package/dashboard/assets/bars-ranking-components-9Asn_0gR.js.map +1 -0
  21. package/dashboard/assets/blocks-track-components-BST-NjK2.js +2 -0
  22. package/dashboard/assets/blocks-track-components-BST-NjK2.js.map +1 -0
  23. package/dashboard/assets/calendar-track-components-RgNtGtZR.js +2 -0
  24. package/dashboard/assets/calendar-track-components-RgNtGtZR.js.map +1 -0
  25. package/dashboard/assets/chrome-track-components-ClNsentC.js +2 -0
  26. package/dashboard/assets/chrome-track-components-ClNsentC.js.map +1 -0
  27. package/dashboard/assets/common-BY1j__bD.js +2 -0
  28. package/dashboard/assets/common-BY1j__bD.js.map +1 -0
  29. package/dashboard/assets/common-BdlXKpcB.js +2 -0
  30. package/dashboard/assets/common-BdlXKpcB.js.map +1 -0
  31. package/dashboard/assets/common-BqqhgMgB.js +2 -0
  32. package/dashboard/assets/common-BqqhgMgB.js.map +1 -0
  33. package/dashboard/assets/common-BribWmIo.js +2 -0
  34. package/dashboard/assets/common-BribWmIo.js.map +1 -0
  35. package/dashboard/assets/common-Cmf0_lKV.js +2 -0
  36. package/dashboard/assets/common-Cmf0_lKV.js.map +1 -0
  37. package/dashboard/assets/common-i0r48qY9.js +2 -0
  38. package/dashboard/assets/common-i0r48qY9.js.map +1 -0
  39. package/dashboard/assets/common-x8cfkwpc.js +2 -0
  40. package/dashboard/assets/common-x8cfkwpc.js.map +1 -0
  41. package/dashboard/assets/communication-track-components-CNLZXOH_.js +2 -0
  42. package/dashboard/assets/communication-track-components-CNLZXOH_.js.map +1 -0
  43. package/dashboard/assets/components-Bp5cFm2d.js +2 -0
  44. package/dashboard/assets/components-Bp5cFm2d.js.map +1 -0
  45. package/dashboard/assets/components-C4-O3_gD.js +2 -0
  46. package/dashboard/assets/components-C4-O3_gD.js.map +1 -0
  47. package/dashboard/assets/domain-ops-track-components-BPa41AU7.js +2 -0
  48. package/dashboard/assets/domain-ops-track-components-BPa41AU7.js.map +1 -0
  49. package/dashboard/assets/domain-track-components-CQ1i1X1t.js +2 -0
  50. package/dashboard/assets/domain-track-components-CQ1i1X1t.js.map +1 -0
  51. package/dashboard/assets/errors-BHUWiAQ3.js +2 -0
  52. package/dashboard/assets/errors-BHUWiAQ3.js.map +1 -0
  53. package/dashboard/assets/errors-BbyKweDG.js +2 -0
  54. package/dashboard/assets/errors-BbyKweDG.js.map +1 -0
  55. package/dashboard/assets/errors-CMQ6JC31.js +2 -0
  56. package/dashboard/assets/errors-CMQ6JC31.js.map +1 -0
  57. package/dashboard/assets/errors-D3nVgTmf.js +2 -0
  58. package/dashboard/assets/errors-D3nVgTmf.js.map +1 -0
  59. package/dashboard/assets/errors-IqJSoANC.js +2 -0
  60. package/dashboard/assets/errors-IqJSoANC.js.map +1 -0
  61. package/dashboard/assets/errors-gmIkO9F6.js +2 -0
  62. package/dashboard/assets/errors-gmIkO9F6.js.map +1 -0
  63. package/dashboard/assets/errors-vFk058Vh.js +2 -0
  64. package/dashboard/assets/errors-vFk058Vh.js.map +1 -0
  65. package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js +2 -0
  66. package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js.map +1 -0
  67. package/dashboard/assets/format-Lx4cQ8k-.js +2 -0
  68. package/dashboard/assets/format-Lx4cQ8k-.js.map +1 -0
  69. package/dashboard/assets/forms-track-components-Bc2Hoxdh.js +2 -0
  70. package/dashboard/assets/forms-track-components-Bc2Hoxdh.js.map +1 -0
  71. package/dashboard/assets/generated-1EfWhCMA.js +2 -0
  72. package/dashboard/assets/generated-1EfWhCMA.js.map +1 -0
  73. package/dashboard/assets/generated-BB3ZMxvx.js +2 -0
  74. package/dashboard/assets/generated-BB3ZMxvx.js.map +1 -0
  75. package/dashboard/assets/generated-C0JVNBRX.js +2 -0
  76. package/dashboard/assets/generated-C0JVNBRX.js.map +1 -0
  77. package/dashboard/assets/generated-C1W48_-3.js +2 -0
  78. package/dashboard/assets/generated-C1W48_-3.js.map +1 -0
  79. package/dashboard/assets/generated-CluiB_xY.js +2 -0
  80. package/dashboard/assets/generated-CluiB_xY.js.map +1 -0
  81. package/dashboard/assets/generated-DDGtlf-4.js +2 -0
  82. package/dashboard/assets/generated-DDGtlf-4.js.map +1 -0
  83. package/dashboard/assets/generated-DPCHvNto.js +2 -0
  84. package/dashboard/assets/generated-DPCHvNto.js.map +1 -0
  85. package/dashboard/assets/geo-track-components-Ct4-MSRw.js +3 -0
  86. package/dashboard/assets/geo-track-components-Ct4-MSRw.js.map +1 -0
  87. package/dashboard/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2 +0 -0
  88. package/dashboard/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2 +0 -0
  89. package/dashboard/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2 +0 -0
  90. package/dashboard/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2 +0 -0
  91. package/dashboard/assets/index-DPi4cduu.css +1 -0
  92. package/dashboard/assets/index-PB1II0WV.js +137 -0
  93. package/dashboard/assets/index-PB1II0WV.js.map +1 -0
  94. package/dashboard/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
  95. package/dashboard/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  96. package/dashboard/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
  97. package/dashboard/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  98. package/dashboard/assets/leaflet-CIGW-MKW.css +1 -0
  99. package/dashboard/assets/leaflet-src-D12shr04.js +2 -0
  100. package/dashboard/assets/leaflet-src-D12shr04.js.map +1 -0
  101. package/dashboard/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
  102. package/dashboard/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
  103. package/dashboard/assets/media-track-components-CpeII-tT.js +2 -0
  104. package/dashboard/assets/media-track-components-CpeII-tT.js.map +1 -0
  105. package/dashboard/assets/scales-e0tkfEy1.js +2 -0
  106. package/dashboard/assets/scales-e0tkfEy1.js.map +1 -0
  107. package/dashboard/assets/sparkline-2JUGDrMW.js +2 -0
  108. package/dashboard/assets/sparkline-2JUGDrMW.js.map +1 -0
  109. package/dashboard/assets/stats-BNgXz5BD.js +2 -0
  110. package/dashboard/assets/stats-BNgXz5BD.js.map +1 -0
  111. package/dashboard/assets/studio-B7hMOwAF.js +2 -0
  112. package/dashboard/assets/studio-B7hMOwAF.js.map +1 -0
  113. package/dashboard/assets/studio-BN_9xHY3.js +2 -0
  114. package/dashboard/assets/studio-BN_9xHY3.js.map +1 -0
  115. package/dashboard/assets/studio-Cn2MObe8.js +2 -0
  116. package/dashboard/assets/studio-Cn2MObe8.js.map +1 -0
  117. package/dashboard/assets/studio-DZEZCCkw.js +2 -0
  118. package/dashboard/assets/studio-DZEZCCkw.js.map +1 -0
  119. package/dashboard/assets/studio-DzatTvLl.js +2 -0
  120. package/dashboard/assets/studio-DzatTvLl.js.map +1 -0
  121. package/dashboard/assets/studio-cBlD8x90.js +2 -0
  122. package/dashboard/assets/studio-cBlD8x90.js.map +1 -0
  123. package/dashboard/assets/studio-cglZPbJK.js +2 -0
  124. package/dashboard/assets/studio-cglZPbJK.js.map +1 -0
  125. package/dashboard/assets/system-track-components-GTYYpnfB.js +2 -0
  126. package/dashboard/assets/system-track-components-GTYYpnfB.js.map +1 -0
  127. package/dashboard/assets/tables-tail-components-DiA5GeHB.js +2 -0
  128. package/dashboard/assets/tables-tail-components-DiA5GeHB.js.map +1 -0
  129. package/dashboard/assets/tables-track-f-components-CVNPd7rq.js +2 -0
  130. package/dashboard/assets/tables-track-f-components-CVNPd7rq.js.map +1 -0
  131. package/dashboard/assets/time-flow-components-nKsaryry.js +2 -0
  132. package/dashboard/assets/time-flow-components-nKsaryry.js.map +1 -0
  133. package/dashboard/assets/ui-B-kZetor.js +2 -0
  134. package/dashboard/assets/ui-B-kZetor.js.map +1 -0
  135. package/dashboard/assets/ui-BEStJ5Pw.js +2 -0
  136. package/dashboard/assets/ui-BEStJ5Pw.js.map +1 -0
  137. package/dashboard/assets/ui-BS5_eDN4.js +2 -0
  138. package/dashboard/assets/ui-BS5_eDN4.js.map +1 -0
  139. package/dashboard/assets/ui-BZ0EyxRH.js +2 -0
  140. package/dashboard/assets/ui-BZ0EyxRH.js.map +1 -0
  141. package/dashboard/assets/ui-BloJDdt6.js +2 -0
  142. package/dashboard/assets/ui-BloJDdt6.js.map +1 -0
  143. package/dashboard/assets/ui-CpdrplJH.js +2 -0
  144. package/dashboard/assets/ui-CpdrplJH.js.map +1 -0
  145. package/dashboard/assets/ui-YJfT644k.js +2 -0
  146. package/dashboard/assets/ui-YJfT644k.js.map +1 -0
  147. package/dashboard/assets/widgets-uDqZWw4A.js +2 -0
  148. package/dashboard/assets/widgets-uDqZWw4A.js.map +1 -0
  149. package/dashboard/index.html +41 -0
  150. package/dist/app.d.ts +48 -0
  151. package/dist/app.d.ts.map +1 -0
  152. package/dist/app.js +250 -0
  153. package/dist/app.js.map +1 -0
  154. package/dist/auth/audit.d.ts +22 -0
  155. package/dist/auth/audit.d.ts.map +1 -0
  156. package/dist/auth/audit.js +17 -0
  157. package/dist/auth/audit.js.map +1 -0
  158. package/dist/auth/desktop-session.d.ts +53 -0
  159. package/dist/auth/desktop-session.d.ts.map +1 -0
  160. package/dist/auth/desktop-session.js +111 -0
  161. package/dist/auth/desktop-session.js.map +1 -0
  162. package/dist/auth/passwords.d.ts +17 -0
  163. package/dist/auth/passwords.d.ts.map +1 -0
  164. package/dist/auth/passwords.js +40 -0
  165. package/dist/auth/passwords.js.map +1 -0
  166. package/dist/auth/sessions.d.ts +77 -0
  167. package/dist/auth/sessions.d.ts.map +1 -0
  168. package/dist/auth/sessions.js +137 -0
  169. package/dist/auth/sessions.js.map +1 -0
  170. package/dist/auth/totp.d.ts +30 -0
  171. package/dist/auth/totp.d.ts.map +1 -0
  172. package/dist/auth/totp.js +97 -0
  173. package/dist/auth/totp.js.map +1 -0
  174. package/dist/backup/backup-service.d.ts +157 -0
  175. package/dist/backup/backup-service.d.ts.map +1 -0
  176. package/dist/backup/backup-service.js +354 -0
  177. package/dist/backup/backup-service.js.map +1 -0
  178. package/dist/backup/format.d.ts +300 -0
  179. package/dist/backup/format.d.ts.map +1 -0
  180. package/dist/backup/format.js +304 -0
  181. package/dist/backup/format.js.map +1 -0
  182. package/dist/backup/notify.d.ts +55 -0
  183. package/dist/backup/notify.d.ts.map +1 -0
  184. package/dist/backup/notify.js +60 -0
  185. package/dist/backup/notify.js.map +1 -0
  186. package/dist/backup/snapshot.d.ts +78 -0
  187. package/dist/backup/snapshot.d.ts.map +1 -0
  188. package/dist/backup/snapshot.js +142 -0
  189. package/dist/backup/snapshot.js.map +1 -0
  190. package/dist/capabilities/catalog.d.ts +33 -0
  191. package/dist/capabilities/catalog.d.ts.map +1 -0
  192. package/dist/capabilities/catalog.js +32 -0
  193. package/dist/capabilities/catalog.js.map +1 -0
  194. package/dist/capabilities/grants.d.ts +44 -0
  195. package/dist/capabilities/grants.d.ts.map +1 -0
  196. package/dist/capabilities/grants.js +65 -0
  197. package/dist/capabilities/grants.js.map +1 -0
  198. package/dist/cli/allowlist.d.ts +46 -0
  199. package/dist/cli/allowlist.d.ts.map +1 -0
  200. package/dist/cli/allowlist.js +99 -0
  201. package/dist/cli/allowlist.js.map +1 -0
  202. package/dist/cli/args.d.ts +63 -0
  203. package/dist/cli/args.d.ts.map +1 -0
  204. package/dist/cli/args.js +92 -0
  205. package/dist/cli/args.js.map +1 -0
  206. package/dist/cli/command.d.ts +32 -0
  207. package/dist/cli/command.d.ts.map +1 -0
  208. package/dist/cli/command.js +64 -0
  209. package/dist/cli/command.js.map +1 -0
  210. package/dist/cli/commands/apply-llm-response.d.ts +32 -0
  211. package/dist/cli/commands/apply-llm-response.d.ts.map +1 -0
  212. package/dist/cli/commands/apply-llm-response.js +209 -0
  213. package/dist/cli/commands/apply-llm-response.js.map +1 -0
  214. package/dist/cli/commands/export-zip.d.ts +17 -0
  215. package/dist/cli/commands/export-zip.d.ts.map +1 -0
  216. package/dist/cli/commands/export-zip.js +111 -0
  217. package/dist/cli/commands/export-zip.js.map +1 -0
  218. package/dist/cli/commands/generate-prompt.d.ts +29 -0
  219. package/dist/cli/commands/generate-prompt.d.ts.map +1 -0
  220. package/dist/cli/commands/generate-prompt.js +154 -0
  221. package/dist/cli/commands/generate-prompt.js.map +1 -0
  222. package/dist/cli/commands/import-zip.d.ts +13 -0
  223. package/dist/cli/commands/import-zip.d.ts.map +1 -0
  224. package/dist/cli/commands/import-zip.js +95 -0
  225. package/dist/cli/commands/import-zip.js.map +1 -0
  226. package/dist/cli/commands/init.d.ts +47 -0
  227. package/dist/cli/commands/init.d.ts.map +1 -0
  228. package/dist/cli/commands/init.js +372 -0
  229. package/dist/cli/commands/init.js.map +1 -0
  230. package/dist/cli/commands/introspect.d.ts +11 -0
  231. package/dist/cli/commands/introspect.d.ts.map +1 -0
  232. package/dist/cli/commands/introspect.js +100 -0
  233. package/dist/cli/commands/introspect.js.map +1 -0
  234. package/dist/cli/commands/migrate.d.ts +11 -0
  235. package/dist/cli/commands/migrate.d.ts.map +1 -0
  236. package/dist/cli/commands/migrate.js +80 -0
  237. package/dist/cli/commands/migrate.js.map +1 -0
  238. package/dist/cli/commands/start.d.ts +22 -0
  239. package/dist/cli/commands/start.d.ts.map +1 -0
  240. package/dist/cli/commands/start.js +101 -0
  241. package/dist/cli/commands/start.js.map +1 -0
  242. package/dist/cli/exit.d.ts +37 -0
  243. package/dist/cli/exit.d.ts.map +1 -0
  244. package/dist/cli/exit.js +39 -0
  245. package/dist/cli/exit.js.map +1 -0
  246. package/dist/cli/index.d.ts +10 -0
  247. package/dist/cli/index.d.ts.map +1 -0
  248. package/dist/cli/index.js +17 -0
  249. package/dist/cli/index.js.map +1 -0
  250. package/dist/cli/io.d.ts +49 -0
  251. package/dist/cli/io.d.ts.map +1 -0
  252. package/dist/cli/io.js +77 -0
  253. package/dist/cli/io.js.map +1 -0
  254. package/dist/cli/run.d.ts +35 -0
  255. package/dist/cli/run.d.ts.map +1 -0
  256. package/dist/cli/run.js +139 -0
  257. package/dist/cli/run.js.map +1 -0
  258. package/dist/cli/runtime.d.ts +116 -0
  259. package/dist/cli/runtime.d.ts.map +1 -0
  260. package/dist/cli/runtime.js +181 -0
  261. package/dist/cli/runtime.js.map +1 -0
  262. package/dist/cli/static-root.d.ts +42 -0
  263. package/dist/cli/static-root.d.ts.map +1 -0
  264. package/dist/cli/static-root.js +58 -0
  265. package/dist/cli/static-root.js.map +1 -0
  266. package/dist/compose.d.ts +135 -0
  267. package/dist/compose.d.ts.map +1 -0
  268. package/dist/compose.js +383 -0
  269. package/dist/compose.js.map +1 -0
  270. package/dist/config/bootstrap.d.ts +33 -0
  271. package/dist/config/bootstrap.d.ts.map +1 -0
  272. package/dist/config/bootstrap.js +81 -0
  273. package/dist/config/bootstrap.js.map +1 -0
  274. package/dist/config/env.d.ts +95 -0
  275. package/dist/config/env.d.ts.map +1 -0
  276. package/dist/config/env.js +236 -0
  277. package/dist/config/env.js.map +1 -0
  278. package/dist/config/secrets.d.ts +24 -0
  279. package/dist/config/secrets.d.ts.map +1 -0
  280. package/dist/config/secrets.js +74 -0
  281. package/dist/config/secrets.js.map +1 -0
  282. package/dist/connections/crypto.d.ts +9 -0
  283. package/dist/connections/crypto.d.ts.map +1 -0
  284. package/dist/connections/crypto.js +16 -0
  285. package/dist/connections/crypto.js.map +1 -0
  286. package/dist/connections/dsn.d.ts +42 -0
  287. package/dist/connections/dsn.d.ts.map +1 -0
  288. package/dist/connections/dsn.js +131 -0
  289. package/dist/connections/dsn.js.map +1 -0
  290. package/dist/connections/effective-schema.d.ts +65 -0
  291. package/dist/connections/effective-schema.d.ts.map +1 -0
  292. package/dist/connections/effective-schema.js +249 -0
  293. package/dist/connections/effective-schema.js.map +1 -0
  294. package/dist/connections/introspect.d.ts +52 -0
  295. package/dist/connections/introspect.d.ts.map +1 -0
  296. package/dist/connections/introspect.js +111 -0
  297. package/dist/connections/introspect.js.map +1 -0
  298. package/dist/connections/manager.d.ts +97 -0
  299. package/dist/connections/manager.d.ts.map +1 -0
  300. package/dist/connections/manager.js +224 -0
  301. package/dist/connections/manager.js.map +1 -0
  302. package/dist/connections/register-adapters.d.ts +42 -0
  303. package/dist/connections/register-adapters.d.ts.map +1 -0
  304. package/dist/connections/register-adapters.js +92 -0
  305. package/dist/connections/register-adapters.js.map +1 -0
  306. package/dist/crud/filters.d.ts +57 -0
  307. package/dist/crud/filters.d.ts.map +1 -0
  308. package/dist/crud/filters.js +177 -0
  309. package/dist/crud/filters.js.map +1 -0
  310. package/dist/crud/identifiers.d.ts +58 -0
  311. package/dist/crud/identifiers.d.ts.map +1 -0
  312. package/dist/crud/identifiers.js +99 -0
  313. package/dist/crud/identifiers.js.map +1 -0
  314. package/dist/crud/list.d.ts +51 -0
  315. package/dist/crud/list.d.ts.map +1 -0
  316. package/dist/crud/list.js +126 -0
  317. package/dist/crud/list.js.map +1 -0
  318. package/dist/crud/mask.d.ts +23 -0
  319. package/dist/crud/mask.d.ts.map +1 -0
  320. package/dist/crud/mask.js +41 -0
  321. package/dist/crud/mask.js.map +1 -0
  322. package/dist/crud/records.d.ts +33 -0
  323. package/dist/crud/records.d.ts.map +1 -0
  324. package/dist/crud/records.js +126 -0
  325. package/dist/crud/records.js.map +1 -0
  326. package/dist/crud/undo.d.ts +55 -0
  327. package/dist/crud/undo.d.ts.map +1 -0
  328. package/dist/crud/undo.js +74 -0
  329. package/dist/crud/undo.js.map +1 -0
  330. package/dist/data-io/coerce.d.ts +28 -0
  331. package/dist/data-io/coerce.d.ts.map +1 -0
  332. package/dist/data-io/coerce.js +123 -0
  333. package/dist/data-io/coerce.js.map +1 -0
  334. package/dist/data-io/csv.d.ts +38 -0
  335. package/dist/data-io/csv.d.ts.map +1 -0
  336. package/dist/data-io/csv.js +138 -0
  337. package/dist/data-io/csv.js.map +1 -0
  338. package/dist/data-io/snapshot-view.d.ts +10 -0
  339. package/dist/data-io/snapshot-view.d.ts.map +1 -0
  340. package/dist/data-io/snapshot-view.js +19 -0
  341. package/dist/data-io/snapshot-view.js.map +1 -0
  342. package/dist/desktop/demo-seed.d.ts +23 -0
  343. package/dist/desktop/demo-seed.d.ts.map +1 -0
  344. package/dist/desktop/demo-seed.js +28 -0
  345. package/dist/desktop/demo-seed.js.map +1 -0
  346. package/dist/desktop/lan-share.d.ts +94 -0
  347. package/dist/desktop/lan-share.d.ts.map +1 -0
  348. package/dist/desktop/lan-share.js +150 -0
  349. package/dist/desktop/lan-share.js.map +1 -0
  350. package/dist/errors.d.ts +72 -0
  351. package/dist/errors.d.ts.map +1 -0
  352. package/dist/errors.js +82 -0
  353. package/dist/errors.js.map +1 -0
  354. package/dist/export/bundle.d.ts +235 -0
  355. package/dist/export/bundle.d.ts.map +1 -0
  356. package/dist/export/bundle.js +172 -0
  357. package/dist/export/bundle.js.map +1 -0
  358. package/dist/export/import-service.d.ts +99 -0
  359. package/dist/export/import-service.d.ts.map +1 -0
  360. package/dist/export/import-service.js +515 -0
  361. package/dist/export/import-service.js.map +1 -0
  362. package/dist/export/readme.d.ts +25 -0
  363. package/dist/export/readme.d.ts.map +1 -0
  364. package/dist/export/readme.js +154 -0
  365. package/dist/export/readme.js.map +1 -0
  366. package/dist/export/redaction.d.ts +118 -0
  367. package/dist/export/redaction.d.ts.map +1 -0
  368. package/dist/export/redaction.js +233 -0
  369. package/dist/export/redaction.js.map +1 -0
  370. package/dist/export/zip-service.d.ts +66 -0
  371. package/dist/export/zip-service.d.ts.map +1 -0
  372. package/dist/export/zip-service.js +306 -0
  373. package/dist/export/zip-service.js.map +1 -0
  374. package/dist/files/storage.d.ts +50 -0
  375. package/dist/files/storage.d.ts.map +1 -0
  376. package/dist/files/storage.js +100 -0
  377. package/dist/files/storage.js.map +1 -0
  378. package/dist/generate/materialize-llm.d.ts +45 -0
  379. package/dist/generate/materialize-llm.d.ts.map +1 -0
  380. package/dist/generate/materialize-llm.js +167 -0
  381. package/dist/generate/materialize-llm.js.map +1 -0
  382. package/dist/generate/run.d.ts +48 -0
  383. package/dist/generate/run.d.ts.map +1 -0
  384. package/dist/generate/run.js +123 -0
  385. package/dist/generate/run.js.map +1 -0
  386. package/dist/index.d.ts +89 -0
  387. package/dist/index.d.ts.map +1 -0
  388. package/dist/index.js +116 -0
  389. package/dist/index.js.map +1 -0
  390. package/dist/jobs/export-run.d.ts +38 -0
  391. package/dist/jobs/export-run.d.ts.map +1 -0
  392. package/dist/jobs/export-run.js +172 -0
  393. package/dist/jobs/export-run.js.map +1 -0
  394. package/dist/jobs/import-run.d.ts +43 -0
  395. package/dist/jobs/import-run.d.ts.map +1 -0
  396. package/dist/jobs/import-run.js +290 -0
  397. package/dist/jobs/import-run.js.map +1 -0
  398. package/dist/jobs/llm-run.d.ts +73 -0
  399. package/dist/jobs/llm-run.d.ts.map +1 -0
  400. package/dist/jobs/llm-run.js +225 -0
  401. package/dist/jobs/llm-run.js.map +1 -0
  402. package/dist/jobs/register.d.ts +90 -0
  403. package/dist/jobs/register.d.ts.map +1 -0
  404. package/dist/jobs/register.js +121 -0
  405. package/dist/jobs/register.js.map +1 -0
  406. package/dist/jobs/registry.d.ts +74 -0
  407. package/dist/jobs/registry.d.ts.map +1 -0
  408. package/dist/jobs/registry.js +78 -0
  409. package/dist/jobs/registry.js.map +1 -0
  410. package/dist/jobs/report-run.d.ts +64 -0
  411. package/dist/jobs/report-run.d.ts.map +1 -0
  412. package/dist/jobs/report-run.js +221 -0
  413. package/dist/jobs/report-run.js.map +1 -0
  414. package/dist/jobs/scheduler.d.ts +72 -0
  415. package/dist/jobs/scheduler.d.ts.map +1 -0
  416. package/dist/jobs/scheduler.js +121 -0
  417. package/dist/jobs/scheduler.js.map +1 -0
  418. package/dist/jobs/worker.d.ts +110 -0
  419. package/dist/jobs/worker.d.ts.map +1 -0
  420. package/dist/jobs/worker.js +282 -0
  421. package/dist/jobs/worker.js.map +1 -0
  422. package/dist/llm/apply-service.d.ts +150 -0
  423. package/dist/llm/apply-service.d.ts.map +1 -0
  424. package/dist/llm/apply-service.js +463 -0
  425. package/dist/llm/apply-service.js.map +1 -0
  426. package/dist/llm/apply-undo-store.d.ts +50 -0
  427. package/dist/llm/apply-undo-store.d.ts.map +1 -0
  428. package/dist/llm/apply-undo-store.js +60 -0
  429. package/dist/llm/apply-undo-store.js.map +1 -0
  430. package/dist/llm/direct-runner.d.ts +146 -0
  431. package/dist/llm/direct-runner.d.ts.map +1 -0
  432. package/dist/llm/direct-runner.js +204 -0
  433. package/dist/llm/direct-runner.js.map +1 -0
  434. package/dist/llm/prompt-service.d.ts +90 -0
  435. package/dist/llm/prompt-service.d.ts.map +1 -0
  436. package/dist/llm/prompt-service.js +93 -0
  437. package/dist/llm/prompt-service.js.map +1 -0
  438. package/dist/llm/provider-resolver.d.ts +25 -0
  439. package/dist/llm/provider-resolver.d.ts.map +1 -0
  440. package/dist/llm/provider-resolver.js +81 -0
  441. package/dist/llm/provider-resolver.js.map +1 -0
  442. package/dist/llm/run-service.d.ts +215 -0
  443. package/dist/llm/run-service.d.ts.map +1 -0
  444. package/dist/llm/run-service.js +343 -0
  445. package/dist/llm/run-service.js.map +1 -0
  446. package/dist/llm/stats-collector.d.ts +40 -0
  447. package/dist/llm/stats-collector.d.ts.map +1 -0
  448. package/dist/llm/stats-collector.js +74 -0
  449. package/dist/llm/stats-collector.js.map +1 -0
  450. package/dist/log-scrub.d.ts +58 -0
  451. package/dist/log-scrub.d.ts.map +1 -0
  452. package/dist/log-scrub.js +103 -0
  453. package/dist/log-scrub.js.map +1 -0
  454. package/dist/meta/store.d.ts +96 -0
  455. package/dist/meta/store.d.ts.map +1 -0
  456. package/dist/meta/store.js +192 -0
  457. package/dist/meta/store.js.map +1 -0
  458. package/dist/notifications/notify.d.ts +43 -0
  459. package/dist/notifications/notify.d.ts.map +1 -0
  460. package/dist/notifications/notify.js +42 -0
  461. package/dist/notifications/notify.js.map +1 -0
  462. package/dist/plugins/auth.d.ts +42 -0
  463. package/dist/plugins/auth.d.ts.map +1 -0
  464. package/dist/plugins/auth.js +84 -0
  465. package/dist/plugins/auth.js.map +1 -0
  466. package/dist/plugins/core.d.ts +48 -0
  467. package/dist/plugins/core.d.ts.map +1 -0
  468. package/dist/plugins/core.js +248 -0
  469. package/dist/plugins/core.js.map +1 -0
  470. package/dist/plugins/rbac.d.ts +54 -0
  471. package/dist/plugins/rbac.d.ts.map +1 -0
  472. package/dist/plugins/rbac.js +103 -0
  473. package/dist/plugins/rbac.js.map +1 -0
  474. package/dist/plugins/static.d.ts +12 -0
  475. package/dist/plugins/static.d.ts.map +1 -0
  476. package/dist/plugins/static.js +36 -0
  477. package/dist/plugins/static.js.map +1 -0
  478. package/dist/rbac/api-keys.d.ts +30 -0
  479. package/dist/rbac/api-keys.d.ts.map +1 -0
  480. package/dist/rbac/api-keys.js +41 -0
  481. package/dist/rbac/api-keys.js.map +1 -0
  482. package/dist/rbac/index.d.ts +6 -0
  483. package/dist/rbac/index.d.ts.map +1 -0
  484. package/dist/rbac/index.js +6 -0
  485. package/dist/rbac/index.js.map +1 -0
  486. package/dist/rbac/permissions.d.ts +107 -0
  487. package/dist/rbac/permissions.d.ts.map +1 -0
  488. package/dist/rbac/permissions.js +250 -0
  489. package/dist/rbac/permissions.js.map +1 -0
  490. package/dist/rbac/principal.d.ts +33 -0
  491. package/dist/rbac/principal.d.ts.map +1 -0
  492. package/dist/rbac/principal.js +31 -0
  493. package/dist/rbac/principal.js.map +1 -0
  494. package/dist/rbac/resolver.d.ts +26 -0
  495. package/dist/rbac/resolver.d.ts.map +1 -0
  496. package/dist/rbac/resolver.js +46 -0
  497. package/dist/rbac/resolver.js.map +1 -0
  498. package/dist/realtime/hub.d.ts +90 -0
  499. package/dist/realtime/hub.d.ts.map +1 -0
  500. package/dist/realtime/hub.js +146 -0
  501. package/dist/realtime/hub.js.map +1 -0
  502. package/dist/realtime/sse.d.ts +35 -0
  503. package/dist/realtime/sse.d.ts.map +1 -0
  504. package/dist/realtime/sse.js +88 -0
  505. package/dist/realtime/sse.js.map +1 -0
  506. package/dist/realtime/ws.d.ts +38 -0
  507. package/dist/realtime/ws.d.ts.map +1 -0
  508. package/dist/realtime/ws.js +124 -0
  509. package/dist/realtime/ws.js.map +1 -0
  510. package/dist/reports/schedule.d.ts +14 -0
  511. package/dist/reports/schedule.d.ts.map +1 -0
  512. package/dist/reports/schedule.js +63 -0
  513. package/dist/reports/schedule.js.map +1 -0
  514. package/dist/routes/about/index.d.ts +39 -0
  515. package/dist/routes/about/index.d.ts.map +1 -0
  516. package/dist/routes/about/index.js +73 -0
  517. package/dist/routes/about/index.js.map +1 -0
  518. package/dist/routes/about/schema.d.ts +50 -0
  519. package/dist/routes/about/schema.d.ts.map +1 -0
  520. package/dist/routes/about/schema.js +53 -0
  521. package/dist/routes/about/schema.js.map +1 -0
  522. package/dist/routes/api-keys/index.d.ts +11 -0
  523. package/dist/routes/api-keys/index.d.ts.map +1 -0
  524. package/dist/routes/api-keys/index.js +79 -0
  525. package/dist/routes/api-keys/index.js.map +1 -0
  526. package/dist/routes/api-keys/schema.d.ts +62 -0
  527. package/dist/routes/api-keys/schema.d.ts.map +1 -0
  528. package/dist/routes/api-keys/schema.js +37 -0
  529. package/dist/routes/api-keys/schema.js.map +1 -0
  530. package/dist/routes/audit/index.d.ts +11 -0
  531. package/dist/routes/audit/index.d.ts.map +1 -0
  532. package/dist/routes/audit/index.js +107 -0
  533. package/dist/routes/audit/index.js.map +1 -0
  534. package/dist/routes/audit/schema.d.ts +129 -0
  535. package/dist/routes/audit/schema.d.ts.map +1 -0
  536. package/dist/routes/audit/schema.js +43 -0
  537. package/dist/routes/audit/schema.js.map +1 -0
  538. package/dist/routes/auth/desktop-session.d.ts +48 -0
  539. package/dist/routes/auth/desktop-session.d.ts.map +1 -0
  540. package/dist/routes/auth/desktop-session.js +132 -0
  541. package/dist/routes/auth/desktop-session.js.map +1 -0
  542. package/dist/routes/auth/handlers.d.ts +21 -0
  543. package/dist/routes/auth/handlers.d.ts.map +1 -0
  544. package/dist/routes/auth/handlers.js +256 -0
  545. package/dist/routes/auth/handlers.js.map +1 -0
  546. package/dist/routes/auth/index.d.ts +27 -0
  547. package/dist/routes/auth/index.d.ts.map +1 -0
  548. package/dist/routes/auth/index.js +67 -0
  549. package/dist/routes/auth/index.js.map +1 -0
  550. package/dist/routes/auth/schema.d.ts +129 -0
  551. package/dist/routes/auth/schema.d.ts.map +1 -0
  552. package/dist/routes/auth/schema.js +84 -0
  553. package/dist/routes/auth/schema.js.map +1 -0
  554. package/dist/routes/bootstrap/handlers.d.ts +34 -0
  555. package/dist/routes/bootstrap/handlers.d.ts.map +1 -0
  556. package/dist/routes/bootstrap/handlers.js +96 -0
  557. package/dist/routes/bootstrap/handlers.js.map +1 -0
  558. package/dist/routes/bootstrap/index.d.ts +9 -0
  559. package/dist/routes/bootstrap/index.d.ts.map +1 -0
  560. package/dist/routes/bootstrap/index.js +16 -0
  561. package/dist/routes/bootstrap/index.js.map +1 -0
  562. package/dist/routes/bootstrap/schema.d.ts +177 -0
  563. package/dist/routes/bootstrap/schema.d.ts.map +1 -0
  564. package/dist/routes/bootstrap/schema.js +55 -0
  565. package/dist/routes/bootstrap/schema.js.map +1 -0
  566. package/dist/routes/connections/index.d.ts +21 -0
  567. package/dist/routes/connections/index.d.ts.map +1 -0
  568. package/dist/routes/connections/index.js +260 -0
  569. package/dist/routes/connections/index.js.map +1 -0
  570. package/dist/routes/connections/schema.d.ts +161 -0
  571. package/dist/routes/connections/schema.d.ts.map +1 -0
  572. package/dist/routes/connections/schema.js +91 -0
  573. package/dist/routes/connections/schema.js.map +1 -0
  574. package/dist/routes/data/index.d.ts +46 -0
  575. package/dist/routes/data/index.d.ts.map +1 -0
  576. package/dist/routes/data/index.js +508 -0
  577. package/dist/routes/data/index.js.map +1 -0
  578. package/dist/routes/data/schema.d.ts +128 -0
  579. package/dist/routes/data/schema.d.ts.map +1 -0
  580. package/dist/routes/data/schema.js +83 -0
  581. package/dist/routes/data/schema.js.map +1 -0
  582. package/dist/routes/desktop/index.d.ts +61 -0
  583. package/dist/routes/desktop/index.d.ts.map +1 -0
  584. package/dist/routes/desktop/index.js +91 -0
  585. package/dist/routes/desktop/index.js.map +1 -0
  586. package/dist/routes/desktop/schema.d.ts +71 -0
  587. package/dist/routes/desktop/schema.d.ts.map +1 -0
  588. package/dist/routes/desktop/schema.js +58 -0
  589. package/dist/routes/desktop/schema.js.map +1 -0
  590. package/dist/routes/desktop-capabilities/index.d.ts +9 -0
  591. package/dist/routes/desktop-capabilities/index.d.ts.map +1 -0
  592. package/dist/routes/desktop-capabilities/index.js +62 -0
  593. package/dist/routes/desktop-capabilities/index.js.map +1 -0
  594. package/dist/routes/desktop-capabilities/schema.d.ts +46 -0
  595. package/dist/routes/desktop-capabilities/schema.d.ts.map +1 -0
  596. package/dist/routes/desktop-capabilities/schema.js +30 -0
  597. package/dist/routes/desktop-capabilities/schema.js.map +1 -0
  598. package/dist/routes/desktop-demo/handlers.d.ts +94 -0
  599. package/dist/routes/desktop-demo/handlers.d.ts.map +1 -0
  600. package/dist/routes/desktop-demo/handlers.js +182 -0
  601. package/dist/routes/desktop-demo/handlers.js.map +1 -0
  602. package/dist/routes/desktop-demo/index.d.ts +39 -0
  603. package/dist/routes/desktop-demo/index.d.ts.map +1 -0
  604. package/dist/routes/desktop-demo/index.js +73 -0
  605. package/dist/routes/desktop-demo/index.js.map +1 -0
  606. package/dist/routes/desktop-demo/schema.d.ts +17 -0
  607. package/dist/routes/desktop-demo/schema.d.ts.map +1 -0
  608. package/dist/routes/desktop-demo/schema.js +30 -0
  609. package/dist/routes/desktop-demo/schema.js.map +1 -0
  610. package/dist/routes/desktop-lan/index.d.ts +54 -0
  611. package/dist/routes/desktop-lan/index.d.ts.map +1 -0
  612. package/dist/routes/desktop-lan/index.js +33 -0
  613. package/dist/routes/desktop-lan/index.js.map +1 -0
  614. package/dist/routes/desktop-lan/schema.d.ts +24 -0
  615. package/dist/routes/desktop-lan/schema.d.ts.map +1 -0
  616. package/dist/routes/desktop-lan/schema.js +40 -0
  617. package/dist/routes/desktop-lan/schema.js.map +1 -0
  618. package/dist/routes/desktop-local-db/handlers.d.ts +92 -0
  619. package/dist/routes/desktop-local-db/handlers.d.ts.map +1 -0
  620. package/dist/routes/desktop-local-db/handlers.js +300 -0
  621. package/dist/routes/desktop-local-db/handlers.js.map +1 -0
  622. package/dist/routes/desktop-local-db/index.d.ts +39 -0
  623. package/dist/routes/desktop-local-db/index.d.ts.map +1 -0
  624. package/dist/routes/desktop-local-db/index.js +83 -0
  625. package/dist/routes/desktop-local-db/index.js.map +1 -0
  626. package/dist/routes/desktop-local-db/placeholder.d.ts +75 -0
  627. package/dist/routes/desktop-local-db/placeholder.d.ts.map +1 -0
  628. package/dist/routes/desktop-local-db/placeholder.js +420 -0
  629. package/dist/routes/desktop-local-db/placeholder.js.map +1 -0
  630. package/dist/routes/desktop-local-db/schema.d.ts +50 -0
  631. package/dist/routes/desktop-local-db/schema.d.ts.map +1 -0
  632. package/dist/routes/desktop-local-db/schema.js +71 -0
  633. package/dist/routes/desktop-local-db/schema.js.map +1 -0
  634. package/dist/routes/desktop-local-db/sqlite-ddl.d.ts +104 -0
  635. package/dist/routes/desktop-local-db/sqlite-ddl.d.ts.map +1 -0
  636. package/dist/routes/desktop-local-db/sqlite-ddl.js +419 -0
  637. package/dist/routes/desktop-local-db/sqlite-ddl.js.map +1 -0
  638. package/dist/routes/email-templates/index.d.ts +7 -0
  639. package/dist/routes/email-templates/index.d.ts.map +1 -0
  640. package/dist/routes/email-templates/index.js +70 -0
  641. package/dist/routes/email-templates/index.js.map +1 -0
  642. package/dist/routes/email-templates/schema.d.ts +54 -0
  643. package/dist/routes/email-templates/schema.d.ts.map +1 -0
  644. package/dist/routes/email-templates/schema.js +35 -0
  645. package/dist/routes/email-templates/schema.js.map +1 -0
  646. package/dist/routes/exports/index.d.ts +19 -0
  647. package/dist/routes/exports/index.d.ts.map +1 -0
  648. package/dist/routes/exports/index.js +145 -0
  649. package/dist/routes/exports/index.js.map +1 -0
  650. package/dist/routes/exports/schema.d.ts +183 -0
  651. package/dist/routes/exports/schema.d.ts.map +1 -0
  652. package/dist/routes/exports/schema.js +37 -0
  653. package/dist/routes/exports/schema.js.map +1 -0
  654. package/dist/routes/generate/index.d.ts +23 -0
  655. package/dist/routes/generate/index.d.ts.map +1 -0
  656. package/dist/routes/generate/index.js +80 -0
  657. package/dist/routes/generate/index.js.map +1 -0
  658. package/dist/routes/generate/schema.d.ts +43 -0
  659. package/dist/routes/generate/schema.d.ts.map +1 -0
  660. package/dist/routes/generate/schema.js +37 -0
  661. package/dist/routes/generate/schema.js.map +1 -0
  662. package/dist/routes/imports/index.d.ts +21 -0
  663. package/dist/routes/imports/index.d.ts.map +1 -0
  664. package/dist/routes/imports/index.js +288 -0
  665. package/dist/routes/imports/index.js.map +1 -0
  666. package/dist/routes/imports/schema.d.ts +292 -0
  667. package/dist/routes/imports/schema.d.ts.map +1 -0
  668. package/dist/routes/imports/schema.js +78 -0
  669. package/dist/routes/imports/schema.js.map +1 -0
  670. package/dist/routes/index.d.ts +11 -0
  671. package/dist/routes/index.d.ts.map +1 -0
  672. package/dist/routes/index.js +8 -0
  673. package/dist/routes/index.js.map +1 -0
  674. package/dist/routes/jobs/index.d.ts +29 -0
  675. package/dist/routes/jobs/index.d.ts.map +1 -0
  676. package/dist/routes/jobs/index.js +175 -0
  677. package/dist/routes/jobs/index.js.map +1 -0
  678. package/dist/routes/jobs/schema.d.ts +170 -0
  679. package/dist/routes/jobs/schema.d.ts.map +1 -0
  680. package/dist/routes/jobs/schema.js +57 -0
  681. package/dist/routes/jobs/schema.js.map +1 -0
  682. package/dist/routes/llm/config-service.d.ts +48 -0
  683. package/dist/routes/llm/config-service.d.ts.map +1 -0
  684. package/dist/routes/llm/config-service.js +102 -0
  685. package/dist/routes/llm/config-service.js.map +1 -0
  686. package/dist/routes/llm/index.d.ts +69 -0
  687. package/dist/routes/llm/index.d.ts.map +1 -0
  688. package/dist/routes/llm/index.js +412 -0
  689. package/dist/routes/llm/index.js.map +1 -0
  690. package/dist/routes/llm/schema.d.ts +605 -0
  691. package/dist/routes/llm/schema.d.ts.map +1 -0
  692. package/dist/routes/llm/schema.js +238 -0
  693. package/dist/routes/llm/schema.js.map +1 -0
  694. package/dist/routes/me/handlers.d.ts +14 -0
  695. package/dist/routes/me/handlers.d.ts.map +1 -0
  696. package/dist/routes/me/handlers.js +88 -0
  697. package/dist/routes/me/handlers.js.map +1 -0
  698. package/dist/routes/me/index.d.ts +8 -0
  699. package/dist/routes/me/index.d.ts.map +1 -0
  700. package/dist/routes/me/index.js +17 -0
  701. package/dist/routes/me/index.js.map +1 -0
  702. package/dist/routes/me/schema.d.ts +270 -0
  703. package/dist/routes/me/schema.d.ts.map +1 -0
  704. package/dist/routes/me/schema.js +59 -0
  705. package/dist/routes/me/schema.js.map +1 -0
  706. package/dist/routes/me-views/index.d.ts +23 -0
  707. package/dist/routes/me-views/index.d.ts.map +1 -0
  708. package/dist/routes/me-views/index.js +76 -0
  709. package/dist/routes/me-views/index.js.map +1 -0
  710. package/dist/routes/me-views/schema.d.ts +44 -0
  711. package/dist/routes/me-views/schema.d.ts.map +1 -0
  712. package/dist/routes/me-views/schema.js +13 -0
  713. package/dist/routes/me-views/schema.js.map +1 -0
  714. package/dist/routes/notifications/index.d.ts +19 -0
  715. package/dist/routes/notifications/index.d.ts.map +1 -0
  716. package/dist/routes/notifications/index.js +123 -0
  717. package/dist/routes/notifications/index.js.map +1 -0
  718. package/dist/routes/notifications/schema.d.ts +122 -0
  719. package/dist/routes/notifications/schema.d.ts.map +1 -0
  720. package/dist/routes/notifications/schema.js +83 -0
  721. package/dist/routes/notifications/schema.js.map +1 -0
  722. package/dist/routes/onboarding/derive.d.ts +41 -0
  723. package/dist/routes/onboarding/derive.d.ts.map +1 -0
  724. package/dist/routes/onboarding/derive.js +30 -0
  725. package/dist/routes/onboarding/derive.js.map +1 -0
  726. package/dist/routes/onboarding/index.d.ts +26 -0
  727. package/dist/routes/onboarding/index.d.ts.map +1 -0
  728. package/dist/routes/onboarding/index.js +95 -0
  729. package/dist/routes/onboarding/index.js.map +1 -0
  730. package/dist/routes/onboarding/schema.d.ts +22 -0
  731. package/dist/routes/onboarding/schema.d.ts.map +1 -0
  732. package/dist/routes/onboarding/schema.js +22 -0
  733. package/dist/routes/onboarding/schema.js.map +1 -0
  734. package/dist/routes/pages/index.d.ts +26 -0
  735. package/dist/routes/pages/index.d.ts.map +1 -0
  736. package/dist/routes/pages/index.js +119 -0
  737. package/dist/routes/pages/index.js.map +1 -0
  738. package/dist/routes/pages/layout-schema.d.ts +19 -0
  739. package/dist/routes/pages/layout-schema.d.ts.map +1 -0
  740. package/dist/routes/pages/layout-schema.js +19 -0
  741. package/dist/routes/pages/layout-schema.js.map +1 -0
  742. package/dist/routes/pages/schema.d.ts +52 -0
  743. package/dist/routes/pages/schema.d.ts.map +1 -0
  744. package/dist/routes/pages/schema.js +35 -0
  745. package/dist/routes/pages/schema.js.map +1 -0
  746. package/dist/routes/roles/index.d.ts +17 -0
  747. package/dist/routes/roles/index.d.ts.map +1 -0
  748. package/dist/routes/roles/index.js +255 -0
  749. package/dist/routes/roles/index.js.map +1 -0
  750. package/dist/routes/roles/schema.d.ts +94 -0
  751. package/dist/routes/roles/schema.d.ts.map +1 -0
  752. package/dist/routes/roles/schema.js +57 -0
  753. package/dist/routes/roles/schema.js.map +1 -0
  754. package/dist/routes/scheduled-reports/index.d.ts +15 -0
  755. package/dist/routes/scheduled-reports/index.d.ts.map +1 -0
  756. package/dist/routes/scheduled-reports/index.js +195 -0
  757. package/dist/routes/scheduled-reports/index.js.map +1 -0
  758. package/dist/routes/scheduled-reports/schema.d.ts +154 -0
  759. package/dist/routes/scheduled-reports/schema.d.ts.map +1 -0
  760. package/dist/routes/scheduled-reports/schema.js +49 -0
  761. package/dist/routes/scheduled-reports/schema.js.map +1 -0
  762. package/dist/routes/schema/index.d.ts +24 -0
  763. package/dist/routes/schema/index.d.ts.map +1 -0
  764. package/dist/routes/schema/index.js +224 -0
  765. package/dist/routes/schema/index.js.map +1 -0
  766. package/dist/routes/schema/schema.d.ts +92 -0
  767. package/dist/routes/schema/schema.d.ts.map +1 -0
  768. package/dist/routes/schema/schema.js +64 -0
  769. package/dist/routes/schema/schema.js.map +1 -0
  770. package/dist/routes/schema-import/fallback-parser.d.ts +35 -0
  771. package/dist/routes/schema-import/fallback-parser.d.ts.map +1 -0
  772. package/dist/routes/schema-import/fallback-parser.js +349 -0
  773. package/dist/routes/schema-import/fallback-parser.js.map +1 -0
  774. package/dist/routes/schema-import/index.d.ts +43 -0
  775. package/dist/routes/schema-import/index.d.ts.map +1 -0
  776. package/dist/routes/schema-import/index.js +167 -0
  777. package/dist/routes/schema-import/index.js.map +1 -0
  778. package/dist/routes/schema-import/schema.d.ts +65 -0
  779. package/dist/routes/schema-import/schema.d.ts.map +1 -0
  780. package/dist/routes/schema-import/schema.js +40 -0
  781. package/dist/routes/schema-import/schema.js.map +1 -0
  782. package/dist/routes/search/index.d.ts +71 -0
  783. package/dist/routes/search/index.d.ts.map +1 -0
  784. package/dist/routes/search/index.js +361 -0
  785. package/dist/routes/search/index.js.map +1 -0
  786. package/dist/routes/search/schema.d.ts +125 -0
  787. package/dist/routes/search/schema.d.ts.map +1 -0
  788. package/dist/routes/search/schema.js +70 -0
  789. package/dist/routes/search/schema.js.map +1 -0
  790. package/dist/routes/settings/index.d.ts +24 -0
  791. package/dist/routes/settings/index.d.ts.map +1 -0
  792. package/dist/routes/settings/index.js +164 -0
  793. package/dist/routes/settings/index.js.map +1 -0
  794. package/dist/routes/settings/schema.d.ts +110 -0
  795. package/dist/routes/settings/schema.d.ts.map +1 -0
  796. package/dist/routes/settings/schema.js +71 -0
  797. package/dist/routes/settings/schema.js.map +1 -0
  798. package/dist/routes/setup/index.d.ts +29 -0
  799. package/dist/routes/setup/index.d.ts.map +1 -0
  800. package/dist/routes/setup/index.js +68 -0
  801. package/dist/routes/setup/index.js.map +1 -0
  802. package/dist/routes/setup/schema.d.ts +61 -0
  803. package/dist/routes/setup/schema.d.ts.map +1 -0
  804. package/dist/routes/setup/schema.js +47 -0
  805. package/dist/routes/setup/schema.js.map +1 -0
  806. package/dist/routes/system/handlers.d.ts +63 -0
  807. package/dist/routes/system/handlers.d.ts.map +1 -0
  808. package/dist/routes/system/handlers.js +121 -0
  809. package/dist/routes/system/handlers.js.map +1 -0
  810. package/dist/routes/system/index.d.ts +34 -0
  811. package/dist/routes/system/index.d.ts.map +1 -0
  812. package/dist/routes/system/index.js +18 -0
  813. package/dist/routes/system/index.js.map +1 -0
  814. package/dist/routes/system/schema.d.ts +93 -0
  815. package/dist/routes/system/schema.d.ts.map +1 -0
  816. package/dist/routes/system/schema.js +109 -0
  817. package/dist/routes/system/schema.js.map +1 -0
  818. package/dist/routes/views/index.d.ts +21 -0
  819. package/dist/routes/views/index.d.ts.map +1 -0
  820. package/dist/routes/views/index.js +155 -0
  821. package/dist/routes/views/index.js.map +1 -0
  822. package/dist/routes/views/schema.d.ts +127 -0
  823. package/dist/routes/views/schema.d.ts.map +1 -0
  824. package/dist/routes/views/schema.js +56 -0
  825. package/dist/routes/views/schema.js.map +1 -0
  826. package/dist/routes/widget-data/index.d.ts +29 -0
  827. package/dist/routes/widget-data/index.d.ts.map +1 -0
  828. package/dist/routes/widget-data/index.js +152 -0
  829. package/dist/routes/widget-data/index.js.map +1 -0
  830. package/dist/routes/widget-data/schema.d.ts +252 -0
  831. package/dist/routes/widget-data/schema.d.ts.map +1 -0
  832. package/dist/routes/widget-data/schema.js +44 -0
  833. package/dist/routes/widget-data/schema.js.map +1 -0
  834. package/dist/setup/service.d.ts +63 -0
  835. package/dist/setup/service.d.ts.map +1 -0
  836. package/dist/setup/service.js +103 -0
  837. package/dist/setup/service.js.map +1 -0
  838. package/dist/start.d.ts +12 -0
  839. package/dist/start.d.ts.map +1 -0
  840. package/dist/start.js +28 -0
  841. package/dist/start.js.map +1 -0
  842. package/dist/telemetry/payload.d.ts +66 -0
  843. package/dist/telemetry/payload.d.ts.map +1 -0
  844. package/dist/telemetry/payload.js +69 -0
  845. package/dist/telemetry/payload.js.map +1 -0
  846. package/dist/telemetry/service.d.ts +67 -0
  847. package/dist/telemetry/service.d.ts.map +1 -0
  848. package/dist/telemetry/service.js +103 -0
  849. package/dist/telemetry/service.js.map +1 -0
  850. package/dist/telemetry/update-check.d.ts +79 -0
  851. package/dist/telemetry/update-check.d.ts.map +1 -0
  852. package/dist/telemetry/update-check.js +103 -0
  853. package/dist/telemetry/update-check.js.map +1 -0
  854. package/dist/version.d.ts +14 -0
  855. package/dist/version.d.ts.map +1 -0
  856. package/dist/version.js +21 -0
  857. package/dist/version.js.map +1 -0
  858. package/dist/widget-data/cache.d.ts +35 -0
  859. package/dist/widget-data/cache.d.ts.map +1 -0
  860. package/dist/widget-data/cache.js +67 -0
  861. package/dist/widget-data/cache.js.map +1 -0
  862. package/dist/widget-data/compiler.d.ts +107 -0
  863. package/dist/widget-data/compiler.d.ts.map +1 -0
  864. package/dist/widget-data/compiler.js +362 -0
  865. package/dist/widget-data/compiler.js.map +1 -0
  866. package/dist/widget-data/shapers.d.ts +75 -0
  867. package/dist/widget-data/shapers.d.ts.map +1 -0
  868. package/dist/widget-data/shapers.js +128 -0
  869. package/dist/widget-data/shapers.js.map +1 -0
  870. package/dist/widget-data/stream-publisher.d.ts +42 -0
  871. package/dist/widget-data/stream-publisher.d.ts.map +1 -0
  872. package/dist/widget-data/stream-publisher.js +34 -0
  873. package/dist/widget-data/stream-publisher.js.map +1 -0
  874. package/package.json +79 -0
  875. package/vocabulary/llm-allowlist.json +76 -0
@@ -0,0 +1,142 @@
1
+ /**
2
+ * SQLite snapshotting for the §9 backup (11-electron.md §9), and the discovery
3
+ * of what there is to snapshot.
4
+ *
5
+ * ─── Why `backup()` and not `copyFile()` ─────────────────────────────────────
6
+ *
7
+ * §9 is specific — "the server snapshots each SQLite file with the
8
+ * `better-sqlite3` online `backup()` API (WAL-safe, no locking of live writers)"
9
+ * — and the alternative it rules out is not merely inferior, it is silently
10
+ * wrong. Every local database runs `journal_mode = WAL` (§9's pragma block), so
11
+ * a committed row lives in `<db>-wal` until a checkpoint folds it back. Copying
12
+ * the `.sqlite` file therefore copies a database that is missing its most recent
13
+ * commits; copying all three files copies them at three different instants, so
14
+ * the WAL can describe pages the main file does not have yet. Both produce an
15
+ * archive that unzips, opens, passes `PRAGMA integrity_check`, and has lost
16
+ * data — the worst failure a backup can have, because it is invisible until the
17
+ * restore.
18
+ *
19
+ * `backup()` runs SQLite's own online backup: it reads through the same page
20
+ * cache and WAL a reader would, restarts itself if a writer changes the source
21
+ * mid-copy, and lands a self-contained, checkpointed file. The destination is
22
+ * complete at whatever instant the copy finished, and live writers are never
23
+ * blocked.
24
+ *
25
+ * ─── Why a second connection ─────────────────────────────────────────────────
26
+ *
27
+ * The obvious move is to reach through `ConnectionManager` for the handle the
28
+ * server already holds. It is the wrong move: those handles are role-branded
29
+ * (01 §3's privilege model), pooled, and owned by request-scoped code, and a
30
+ * backup that borrowed one would serialize itself behind whatever CRUD is in
31
+ * flight — the exact locking §9 says not to do. A second connection to a WAL
32
+ * database is the normal, supported thing (WAL exists so readers and a writer
33
+ * coexist), so this module opens its own, READONLY, and closes it. `readonly`
34
+ * is belt and braces: a backup is the one operation in the product with no
35
+ * reason whatsoever to be able to write to a source database, and
36
+ * `fileMustExist` keeps a stale DSN from CREATING an empty database and
37
+ * cheerfully backing it up.
38
+ */
39
+ import { mkdir } from 'node:fs/promises';
40
+ import { dirname, isAbsolute, resolve } from 'node:path';
41
+ import { normalizeSqliteFile } from '@adminium/adapter-sqlite';
42
+ import { connectionsRepo } from '@adminium/meta';
43
+ import Database from 'better-sqlite3';
44
+ import { deriveDatabaseSlug, uniqueSlug } from './format.js';
45
+ /**
46
+ * `:memory:` and a relative path are both "not a file on this disk we can
47
+ * snapshot", for different reasons, and both must be classified rather than
48
+ * crashed on.
49
+ *
50
+ * `:memory:` is a real, supported SQLite target (`adapter-sqlite`'s own file
51
+ * normalizer names it for demos and tests) that has no bytes to copy. A relative
52
+ * path is a DSN whose meaning depends on the server's cwd — which, for a
53
+ * utilityProcess forked by Electron, is not a place anybody chose. Backing up
54
+ * "whatever `./app.db` resolves to from the app bundle's working directory"
55
+ * would be worse than not backing it up, because the manifest would claim it.
56
+ */
57
+ function localFileOf(dsn) {
58
+ if (dsn === null)
59
+ return null;
60
+ const file = normalizeSqliteFile({ dsn });
61
+ if (file === null || file === ':memory:')
62
+ return null;
63
+ return isAbsolute(file) ? file : null;
64
+ }
65
+ /**
66
+ * Split every configured connection into "we dump this" and "we list this".
67
+ *
68
+ * §9's rule is about the ENGINE, not about reachability: a Postgres on
69
+ * `localhost` is still external (we do not have a byte-level snapshot mechanism
70
+ * for it, and `pg_dump` is not a thing this process may assume exists), and a
71
+ * SQLite file on a network share is still local. Anything that is neither — a
72
+ * `sqlite:` connection whose DSN is `:memory:` or relative — is listed as
73
+ * external too, which is the honest answer: the manifest says the connection
74
+ * existed and says its bytes are not in this archive.
75
+ */
76
+ export async function discoverSources(meta, crypto) {
77
+ const repo = connectionsRepo(meta, crypto);
78
+ const connections = await repo.list();
79
+ const local = [];
80
+ const external = [];
81
+ const taken = new Set();
82
+ const claim = (candidate) => {
83
+ const slug = uniqueSlug(candidate, taken);
84
+ taken.add(slug);
85
+ return slug;
86
+ };
87
+ for (const connection of connections) {
88
+ const file = connection.engine === 'sqlite' ? localFileOf(await dataDsnOf(repo, connection)) : null;
89
+ if (file === null) {
90
+ external.push({
91
+ connectionId: connection.id,
92
+ slug: claim(deriveDatabaseSlug(connection.name, connection.id)),
93
+ engine: connection.engine,
94
+ });
95
+ continue;
96
+ }
97
+ local.push({
98
+ connectionId: connection.id,
99
+ slug: claim(deriveDatabaseSlug(file, connection.id)),
100
+ path: resolve(file),
101
+ });
102
+ }
103
+ return { local, external };
104
+ }
105
+ /**
106
+ * The data DSN, or `null` when it cannot be read.
107
+ *
108
+ * A decrypt failure means `ADMINIUM_SECRET` no longer opens this row — the
109
+ * keyring case `config.ts`'s {@link SecretUnavailableError} exists for, seen from
110
+ * the other side. It must NOT become an exception here: a backup is precisely
111
+ * what a user with one unreadable connection needs to take before touching
112
+ * anything, and failing the whole archive over one row would deny them the copy
113
+ * of the other nine. The row still appears in the manifest, as external — i.e.
114
+ * "this connection existed and its bytes are not in here", which is true.
115
+ */
116
+ async function dataDsnOf(repo, connection) {
117
+ try {
118
+ return (await repo.getDsns(connection.id))?.dataDsn ?? null;
119
+ }
120
+ catch {
121
+ return null;
122
+ }
123
+ }
124
+ /**
125
+ * Snapshot `sourcePath` to `destPath` with SQLite's online backup.
126
+ *
127
+ * Awaited rather than fire-and-forget: better-sqlite3's `backup()` returns a
128
+ * promise that resolves when `remainingPages` hits 0, and a caller that hashed
129
+ * the destination without waiting would hash a partial file and write a checksum
130
+ * for a database that does not exist yet.
131
+ */
132
+ export async function snapshotSqliteFile(sourcePath, destPath) {
133
+ await mkdir(dirname(destPath), { recursive: true });
134
+ const db = new Database(sourcePath, { readonly: true, fileMustExist: true });
135
+ try {
136
+ await db.backup(destPath);
137
+ }
138
+ finally {
139
+ db.close();
140
+ }
141
+ }
142
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/backup/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAgD,MAAM,gBAAgB,CAAC;AAC/F,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsB7D;;;;;;;;;;;GAWG;AACH,SAAS,WAAW,CAAC,GAAkB;IACrC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,MAAiB;IAEjB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAiB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAEpD,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAU,EAAE;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC;gBACZ,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,SAAS,CACtB,IAAwC,EACxC,UAAsB;IAEtB,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAkB,EAAE,QAAgB;IAC3E,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The host-capability vocabulary the desktop shell can be granted (11-electron.md
3
+ * §12 / 13-marketplace.md §2.11).
4
+ *
5
+ * A CLOSED set, and that is the point. A capability grant is an authorization to
6
+ * reach real hardware on the user's machine, so the route that writes one
7
+ * validates its `capabilityId` against this list rather than trusting the caller
8
+ * — an unknown id is a bad request (a typo, a manifest for a driver this build
9
+ * does not have), not a grant for a capability that cannot exist. v1 ships one
10
+ * concrete id, the ESC/POS receipt printer the POS micro-SaaS (13-marketplace.md
11
+ * §10) will use; the list grows with the drivers.
12
+ *
13
+ * WHAT THIS FILE DOES NOT OWN: the DESCRIPTOR — a capability's status
14
+ * (`available` / `stub` / `unavailable`) and method list. Those belong to the
15
+ * main-process `CapabilityHost`, which holds the providers and is the only thing
16
+ * that ever sees a device (§1 principle 2: the server owns data, not hardware).
17
+ * The server owns the id vocabulary — enough to validate a grant — and the grant
18
+ * table itself (`adminium_settings`, reached over the loopback REST API by main).
19
+ */
20
+ import { z } from 'zod';
21
+ /**
22
+ * The dotted capability ids this build knows how to grant. Reverse-mapped from
23
+ * 13-marketplace.md's advisory `capabilities` vocabulary: a manifest declaring
24
+ * `receipt-printer` needs `printer.escpos`.
25
+ */
26
+ export declare const capabilityIdSchema: z.ZodEnum<{
27
+ "printer.escpos": "printer.escpos";
28
+ }>;
29
+ export type KnownCapabilityId = z.infer<typeof capabilityIdSchema>;
30
+ /** The known ids as a tuple, for callers that want to iterate the vocabulary. */
31
+ export declare const KNOWN_CAPABILITY_IDS: "printer.escpos"[];
32
+ export declare function isKnownCapabilityId(id: string): id is KnownCapabilityId;
33
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/capabilities/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;EAA6B,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,oBAA6B,CAAC;AAE/D,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,iBAAiB,CAEvE"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The host-capability vocabulary the desktop shell can be granted (11-electron.md
3
+ * §12 / 13-marketplace.md §2.11).
4
+ *
5
+ * A CLOSED set, and that is the point. A capability grant is an authorization to
6
+ * reach real hardware on the user's machine, so the route that writes one
7
+ * validates its `capabilityId` against this list rather than trusting the caller
8
+ * — an unknown id is a bad request (a typo, a manifest for a driver this build
9
+ * does not have), not a grant for a capability that cannot exist. v1 ships one
10
+ * concrete id, the ESC/POS receipt printer the POS micro-SaaS (13-marketplace.md
11
+ * §10) will use; the list grows with the drivers.
12
+ *
13
+ * WHAT THIS FILE DOES NOT OWN: the DESCRIPTOR — a capability's status
14
+ * (`available` / `stub` / `unavailable`) and method list. Those belong to the
15
+ * main-process `CapabilityHost`, which holds the providers and is the only thing
16
+ * that ever sees a device (§1 principle 2: the server owns data, not hardware).
17
+ * The server owns the id vocabulary — enough to validate a grant — and the grant
18
+ * table itself (`adminium_settings`, reached over the loopback REST API by main).
19
+ */
20
+ import { z } from 'zod';
21
+ /**
22
+ * The dotted capability ids this build knows how to grant. Reverse-mapped from
23
+ * 13-marketplace.md's advisory `capabilities` vocabulary: a manifest declaring
24
+ * `receipt-printer` needs `printer.escpos`.
25
+ */
26
+ export const capabilityIdSchema = z.enum(['printer.escpos']);
27
+ /** The known ids as a tuple, for callers that want to iterate the vocabulary. */
28
+ export const KNOWN_CAPABILITY_IDS = capabilityIdSchema.options;
29
+ export function isKnownCapabilityId(id) {
30
+ return capabilityIdSchema.safeParse(id).success;
31
+ }
32
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/capabilities/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAI7D,iFAAiF;AACjF,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,OAAO,CAAC;AAE/D,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,OAAO,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;AAClD,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The desktop capability grant table (11-electron.md §12), over `adminium_settings`.
3
+ *
4
+ * §1 principle 2 puts the meta store on the server's side of the process
5
+ * boundary, so grant reads and writes live here and the main-process
6
+ * `CapabilityHost` reaches them over the loopback REST API (`routes/
7
+ * desktop-capabilities`). Grants are a SET keyed by `{ manifestId, capabilityId }`:
8
+ *
9
+ * - granting twice is idempotent — the consent step records an authorization,
10
+ * not a counter, so a re-install of the same app must not stack rows;
11
+ * - revoking removes exactly the one identity;
12
+ * - the whole array round-trips through `settingsRepo`, so its Zod schema
13
+ * (`capabilityGrantsSchema`) validates every write and a corrupt row can never
14
+ * be persisted.
15
+ *
16
+ * CONCURRENCY: each mutation is a read-modify-write of the single settings row.
17
+ * Two truly-simultaneous grants could lose one. That is acceptable here and only
18
+ * here — consent and revoke are deliberate, one-at-a-time admin actions on a
19
+ * single-user desktop reached over loopback, not a hot write path — and it is the
20
+ * same read-modify-write every other array-valued setting already accepts.
21
+ */
22
+ import { type CapabilityGrant, type MetaDb } from '@adminium/meta';
23
+ /** The identity of a grant — everything but its timestamp. */
24
+ export interface GrantRef {
25
+ manifestId: string;
26
+ capabilityId: string;
27
+ }
28
+ /** Every consented grant, newest write order preserved. */
29
+ export declare function listGrants(meta: MetaDb): Promise<CapabilityGrant[]>;
30
+ /** True when `ref` is already granted — the check `CapabilityHost.invoke` makes. */
31
+ export declare function isGranted(meta: MetaDb, ref: GrantRef): Promise<boolean>;
32
+ /**
33
+ * Idempotent add. Returns the grant that is now in the table — the existing one
34
+ * if this identity was already granted, otherwise the newly written one.
35
+ */
36
+ export declare function addGrant(meta: MetaDb, ref: GrantRef, opts?: {
37
+ now?: number;
38
+ updatedBy?: string | null;
39
+ }): Promise<CapabilityGrant>;
40
+ /** Remove a grant. Returns true when a row was actually removed (revoke is a no-op otherwise). */
41
+ export declare function removeGrant(meta: MetaDb, ref: GrantRef, opts?: {
42
+ updatedBy?: string | null;
43
+ }): Promise<boolean>;
44
+ //# sourceMappingURL=grants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/capabilities/grants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAKjF,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,2DAA2D;AAC3D,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAEzE;AAED,oFAAoF;AACpF,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAG7E;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACrD,OAAO,CAAC,eAAe,CAAC,CAY1B;AAED,kGAAkG;AAClG,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACvC,OAAO,CAAC,OAAO,CAAC,CAOlB"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * The desktop capability grant table (11-electron.md §12), over `adminium_settings`.
3
+ *
4
+ * §1 principle 2 puts the meta store on the server's side of the process
5
+ * boundary, so grant reads and writes live here and the main-process
6
+ * `CapabilityHost` reaches them over the loopback REST API (`routes/
7
+ * desktop-capabilities`). Grants are a SET keyed by `{ manifestId, capabilityId }`:
8
+ *
9
+ * - granting twice is idempotent — the consent step records an authorization,
10
+ * not a counter, so a re-install of the same app must not stack rows;
11
+ * - revoking removes exactly the one identity;
12
+ * - the whole array round-trips through `settingsRepo`, so its Zod schema
13
+ * (`capabilityGrantsSchema`) validates every write and a corrupt row can never
14
+ * be persisted.
15
+ *
16
+ * CONCURRENCY: each mutation is a read-modify-write of the single settings row.
17
+ * Two truly-simultaneous grants could lose one. That is acceptable here and only
18
+ * here — consent and revoke are deliberate, one-at-a-time admin actions on a
19
+ * single-user desktop reached over loopback, not a hot write path — and it is the
20
+ * same read-modify-write every other array-valued setting already accepts.
21
+ */
22
+ import { settingsRepo } from '@adminium/meta';
23
+ /** The `adminium_settings` key; camelCased per the registry convention (§12 note). */
24
+ const GRANTS_KEY = 'desktop.capabilityGrants';
25
+ function isSameGrant(grant, ref) {
26
+ return grant.manifestId === ref.manifestId && grant.capabilityId === ref.capabilityId;
27
+ }
28
+ /** Every consented grant, newest write order preserved. */
29
+ export async function listGrants(meta) {
30
+ return [...(await settingsRepo(meta).get(GRANTS_KEY))];
31
+ }
32
+ /** True when `ref` is already granted — the check `CapabilityHost.invoke` makes. */
33
+ export async function isGranted(meta, ref) {
34
+ const grants = await settingsRepo(meta).get(GRANTS_KEY);
35
+ return grants.some((grant) => isSameGrant(grant, ref));
36
+ }
37
+ /**
38
+ * Idempotent add. Returns the grant that is now in the table — the existing one
39
+ * if this identity was already granted, otherwise the newly written one.
40
+ */
41
+ export async function addGrant(meta, ref, opts = {}) {
42
+ const repo = settingsRepo(meta);
43
+ const current = await repo.get(GRANTS_KEY);
44
+ const existing = current.find((grant) => isSameGrant(grant, ref));
45
+ if (existing !== undefined)
46
+ return existing;
47
+ const grant = {
48
+ manifestId: ref.manifestId,
49
+ capabilityId: ref.capabilityId,
50
+ grantedAt: opts.now ?? Date.now(),
51
+ };
52
+ await repo.set(GRANTS_KEY, [...current, grant], { updatedBy: opts.updatedBy ?? null });
53
+ return grant;
54
+ }
55
+ /** Remove a grant. Returns true when a row was actually removed (revoke is a no-op otherwise). */
56
+ export async function removeGrant(meta, ref, opts = {}) {
57
+ const repo = settingsRepo(meta);
58
+ const current = await repo.get(GRANTS_KEY);
59
+ const next = current.filter((grant) => !isSameGrant(grant, ref));
60
+ if (next.length === current.length)
61
+ return false;
62
+ await repo.set(GRANTS_KEY, next, { updatedBy: opts.updatedBy ?? null });
63
+ return true;
64
+ }
65
+ //# sourceMappingURL=grants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/capabilities/grants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAqC,MAAM,gBAAgB,CAAC;AAEjF,sFAAsF;AACtF,MAAM,UAAU,GAAG,0BAAmC,CAAC;AAQvD,SAAS,WAAW,CAAC,KAAsB,EAAE,GAAa;IACxD,OAAO,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC,YAAY,CAAC;AACxF,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,GAAa;IACzD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,GAAa,EACb,OAAoD,EAAE;IAEtD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,KAAK,GAAoB;QAC7B,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;KAClC,CAAC;IACF,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,GAAa,EACb,OAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACjD,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * LLM allowed-vocabulary loading for the CLI.
3
+ *
4
+ * `LLM_ALLOWED_TEMPLATES` / `LLM_ALLOWED_WIDGETS` live in `@adminium/widgets`,
5
+ * which **the server tree may never import** (01-architecture.md §2.3, enforced
6
+ * by `.dependency-cruiser.cjs` `server-no-ui-widgets-charts`). Routes solve this
7
+ * by having the app-wiring layer inject them (`LlmRoutesDeps.allowed`); the CLI
8
+ * has no wiring layer above it, so it reads them as DATA at runtime. Every
9
+ * specifier below is computed, so no static import edge exists for the rule to
10
+ * catch and none is created — the ban is about the compiled import graph, and
11
+ * this respects it.
12
+ *
13
+ * THE CANDIDATE ORDER IS THE WHOLE POINT. `@adminium/widgets` is not a
14
+ * dependency of `@adminium/server` and cannot become one: it is `private: true`,
15
+ * so it can never be published, and `pnpm deploy --filter=@adminium/server
16
+ * --prod` (the Dockerfile) injects only declared workspace deps. Probing
17
+ * node_modules or a monorepo `packages/` path therefore finds NOTHING in any
18
+ * deployed artifact — the image and the tarball both — and both LLM subcommands
19
+ * died there with a "run `pnpm --filter @adminium/widgets build`" hint that a
20
+ * container or npm user cannot act on. So the build SNAPSHOTS the two lists into
21
+ * the package itself (`scripts/bundle-allowlists.mjs`, run at `prepack` beside
22
+ * the dashboard bundling) and that snapshot is probed FIRST. The dist paths
23
+ * remain as the dev-checkout fallback, where they do work and where nobody
24
+ * should have to run a bundling step to use the CLI.
25
+ */
26
+ import type { AllowedVocabularies } from '@adminium/llm';
27
+ /**
28
+ * The build-emitted snapshot inside the published package. Kept next to the
29
+ * resolver so `scripts/bundle-allowlists.mjs` and this lookup share one path.
30
+ */
31
+ export declare const BUNDLED_VOCABULARY_FILE: string;
32
+ /**
33
+ * Candidate allow-list sources, in precedence order. Exported for the test — the
34
+ * point of the resolver is the ORDER, and asserting on it beats asserting on
35
+ * whichever candidate happens to exist on the machine running the suite.
36
+ */
37
+ export declare function allowlistCandidates(moduleUrl?: string): string[];
38
+ /**
39
+ * Load the allow-lists. Throws a {@link CliError} when no candidate resolves —
40
+ * in a shipped artifact that means the `prepack` bundling step did not run,
41
+ * which is a packaging bug; in a dev tree it means the widgets dist is unbuilt.
42
+ * The hint names both, because the message has to be actionable for whichever
43
+ * of the two the reader is holding.
44
+ */
45
+ export declare function loadAllowedVocabularies(moduleUrl?: string): Promise<AllowedVocabularies>;
46
+ //# sourceMappingURL=allowlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../src/cli/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOzD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAA2C,CAAC;AAMhF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAwB,GAAG,MAAM,EAAE,CAWjF;AA2BD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,GAAE,MAAwB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAW9B"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * LLM allowed-vocabulary loading for the CLI.
3
+ *
4
+ * `LLM_ALLOWED_TEMPLATES` / `LLM_ALLOWED_WIDGETS` live in `@adminium/widgets`,
5
+ * which **the server tree may never import** (01-architecture.md §2.3, enforced
6
+ * by `.dependency-cruiser.cjs` `server-no-ui-widgets-charts`). Routes solve this
7
+ * by having the app-wiring layer inject them (`LlmRoutesDeps.allowed`); the CLI
8
+ * has no wiring layer above it, so it reads them as DATA at runtime. Every
9
+ * specifier below is computed, so no static import edge exists for the rule to
10
+ * catch and none is created — the ban is about the compiled import graph, and
11
+ * this respects it.
12
+ *
13
+ * THE CANDIDATE ORDER IS THE WHOLE POINT. `@adminium/widgets` is not a
14
+ * dependency of `@adminium/server` and cannot become one: it is `private: true`,
15
+ * so it can never be published, and `pnpm deploy --filter=@adminium/server
16
+ * --prod` (the Dockerfile) injects only declared workspace deps. Probing
17
+ * node_modules or a monorepo `packages/` path therefore finds NOTHING in any
18
+ * deployed artifact — the image and the tarball both — and both LLM subcommands
19
+ * died there with a "run `pnpm --filter @adminium/widgets build`" hint that a
20
+ * container or npm user cannot act on. So the build SNAPSHOTS the two lists into
21
+ * the package itself (`scripts/bundle-allowlists.mjs`, run at `prepack` beside
22
+ * the dashboard bundling) and that snapshot is probed FIRST. The dist paths
23
+ * remain as the dev-checkout fallback, where they do work and where nobody
24
+ * should have to run a bundling step to use the CLI.
25
+ */
26
+ import { existsSync, readFileSync } from 'node:fs';
27
+ import { dirname, join, resolve } from 'node:path';
28
+ import { fileURLToPath, pathToFileURL } from 'node:url';
29
+ import { CliError } from './exit.js';
30
+ /** Path inside the widgets package that exports the two allow-lists. */
31
+ const ALLOWLIST_SUBPATH = join('dist', 'registry', 'llm-allowlist.js');
32
+ /**
33
+ * The build-emitted snapshot inside the published package. Kept next to the
34
+ * resolver so `scripts/bundle-allowlists.mjs` and this lookup share one path.
35
+ */
36
+ export const BUNDLED_VOCABULARY_FILE = join('vocabulary', 'llm-allowlist.json');
37
+ function packageRoot(moduleUrl) {
38
+ return resolve(dirname(fileURLToPath(moduleUrl)), '..', '..');
39
+ }
40
+ /**
41
+ * Candidate allow-list sources, in precedence order. Exported for the test — the
42
+ * point of the resolver is the ORDER, and asserting on it beats asserting on
43
+ * whichever candidate happens to exist on the machine running the suite.
44
+ */
45
+ export function allowlistCandidates(moduleUrl = import.meta.url) {
46
+ const root = packageRoot(moduleUrl);
47
+ return [
48
+ // Published/deployed: the JSON snapshot this package carries. FIRST, because
49
+ // it is the only one that exists in the Docker image or an npm install.
50
+ join(root, BUNDLED_VOCABULARY_FILE),
51
+ // Dev checkout: apps/server/../../packages/widgets/… (what demo-v01.mjs uses).
52
+ join(root, '..', '..', 'packages', 'widgets', ALLOWLIST_SUBPATH),
53
+ // A hoisted node_modules layout that happens to expose the package.
54
+ join(root, 'node_modules', '@adminium', 'widgets', ALLOWLIST_SUBPATH),
55
+ ].map((candidate) => resolve(candidate));
56
+ }
57
+ /** Read one candidate; `null` when it is absent or does not carry both lists. */
58
+ async function readCandidate(candidate) {
59
+ if (!existsSync(candidate))
60
+ return null;
61
+ let mod;
62
+ if (candidate.endsWith('.json')) {
63
+ try {
64
+ mod = JSON.parse(readFileSync(candidate, 'utf8'));
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ }
70
+ else {
71
+ // Computed specifier: a file URL, never a package name — no static edge.
72
+ mod = (await import(pathToFileURL(candidate).href));
73
+ }
74
+ const templates = mod.LLM_ALLOWED_TEMPLATES;
75
+ const widgets = mod.LLM_ALLOWED_WIDGETS;
76
+ if (templates === undefined || widgets === undefined)
77
+ return null;
78
+ return { templates, widgets };
79
+ }
80
+ /**
81
+ * Load the allow-lists. Throws a {@link CliError} when no candidate resolves —
82
+ * in a shipped artifact that means the `prepack` bundling step did not run,
83
+ * which is a packaging bug; in a dev tree it means the widgets dist is unbuilt.
84
+ * The hint names both, because the message has to be actionable for whichever
85
+ * of the two the reader is holding.
86
+ */
87
+ export async function loadAllowedVocabularies(moduleUrl = import.meta.url) {
88
+ for (const candidate of allowlistCandidates(moduleUrl)) {
89
+ const loaded = await readCandidate(candidate);
90
+ if (loaded !== null)
91
+ return loaded;
92
+ }
93
+ throw new CliError('The widget vocabulary is missing, so no AI prompt can be built.', {
94
+ hint: 'In a source checkout, build it: `pnpm --filter @adminium/widgets build`.\n' +
95
+ 'In a released build this is a packaging bug — please report it, quoting your ' +
96
+ '`adminium --version`.',
97
+ });
98
+ }
99
+ //# sourceMappingURL=allowlist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../src/cli/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,wEAAwE;AACxE,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAEvE;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;AAEhF,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB,MAAM,CAAC,IAAI,CAAC,GAAG;IACrE,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO;QACL,6EAA6E;QAC7E,wEAAwE;QACxE,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC;QACnC,+EAA+E;QAC/E,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC;QAChE,oEAAoE;QACpE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC;KACtE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3C,CAAC;AAOD,iFAAiF;AACjF,KAAK,UAAU,aAAa,CAAC,SAAiB;IAC5C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,GAAoB,CAAC;IACzB,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAoB,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAoB,CAAC;IACzE,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,qBAAqB,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC;IACxC,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,YAAoB,MAAM,CAAC,IAAI,CAAC,GAAG;IAEnC,KAAK,MAAM,SAAS,IAAI,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,QAAQ,CAAC,iEAAiE,EAAE;QACpF,IAAI,EACF,4EAA4E;YAC5E,+EAA+E;YAC/E,uBAAuB;KAC1B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Argument parsing for the `adminium` CLI (01-architecture.md §4.1).
3
+ *
4
+ * WHY NO CLI FRAMEWORK. `npx adminium` is advertised as "a complete install"
5
+ * — the published tarball already carries the server, the dashboard build, and
6
+ * the meta migrations, so every extra runtime dependency is weight on the very
7
+ * first thing a new user does. Node 22's built-in `node:util` `parseArgs`
8
+ * covers the whole surface this CLI needs (long flags, `--flag=value`, short
9
+ * aliases, repeatables, `--` passthrough, strict unknown-flag rejection) at
10
+ * zero dependencies, and Zod — already a dependency, already the house rule for
11
+ * external input — does the typing and coercion `parseArgs` deliberately omits.
12
+ * A framework would buy help-text formatting we want to control anyway.
13
+ *
14
+ * The shape below is deliberately declarative: a command's flags are data, so
15
+ * `--help` renders from the same spec the parser enforces and the two cannot
16
+ * drift.
17
+ */
18
+ export type FlagType = 'string' | 'boolean';
19
+ export interface FlagSpec {
20
+ type: FlagType;
21
+ /** Single-character alias, e.g. `-p` for `--port`. */
22
+ short?: string;
23
+ /** Repeatable → the parsed value is an array (`--sections a --sections b`). */
24
+ multiple?: boolean;
25
+ /** Rendered in `--help`. */
26
+ describe: string;
27
+ /** Placeholder for the value in `--help`, e.g. `<id>`; string flags only. */
28
+ placeholder?: string;
29
+ /** Shown in `--help` as `(default: …)`. Documentation only — commands own defaults. */
30
+ defaultDescription?: string;
31
+ }
32
+ export type FlagSpecs = Readonly<Record<string, FlagSpec>>;
33
+ /** What `parseArgs` hands back, before a command's Zod schema refines it. */
34
+ export interface ParsedArgs {
35
+ /** Flag values keyed by the long flag name (no leading `--`). */
36
+ values: Record<string, string | boolean | string[] | undefined>;
37
+ /** Non-flag operands, in order. */
38
+ positionals: string[];
39
+ }
40
+ /**
41
+ * Parse `argv` against `specs`. Unknown flags are rejected (strict) and
42
+ * re-thrown as a {@link CliUsageError} so the dispatcher can print help rather
43
+ * than a raw Node error — `parseArgs`'s own message is good but its stack is not
44
+ * something a user should ever see.
45
+ */
46
+ export declare function parseFlags(argv: readonly string[], specs: FlagSpecs, command?: string | null): ParsedArgs;
47
+ /**
48
+ * Split a repeatable-or-CSV flag into items. 06-llm-assist.md §10.4 writes
49
+ * `--sections labels,enums,…` and `--locales en_US,de_DE`; supporting the
50
+ * repeated form too costs nothing and is what people reflexively try.
51
+ * `--sections a,b --sections c` → `['a','b','c']`.
52
+ */
53
+ export declare function splitList(value: string | boolean | string[] | undefined): string[];
54
+ /** A string flag's value, or `undefined`. Repeated flags take the LAST value. */
55
+ export declare function stringFlag(value: string | boolean | string[] | undefined): string | undefined;
56
+ /** A boolean flag's presence. */
57
+ export declare function boolFlag(value: string | boolean | string[] | undefined): boolean;
58
+ /**
59
+ * A numeric flag, validated. `--port banana` must say so in one line rather
60
+ * than surface later as `NaN` from `app.listen`.
61
+ */
62
+ export declare function numberFlag(value: string | boolean | string[] | undefined, flagName: string, command?: string | null): number | undefined;
63
+ //# sourceMappingURL=args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE3D,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAChE,mCAAmC;IACnC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAeD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,GAAE,MAAM,GAAG,IAAW,GAAG,UAAU,CAa/G;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAOlF;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG7F;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAEhF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,EAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAM,GAAG,IAAW,GAC5B,MAAM,GAAG,SAAS,CAQpB"}