@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,146 @@
1
+ /**
2
+ * Direct-API path runner (06-llm-assist.md §7.5, §10.2 step 3, acceptance #6).
3
+ *
4
+ * The provider-agnostic core the `llm-run` job handler drives: given the
5
+ * per-chunk prompts, a {@link ProviderClient}, and a `validate` closure, it runs
6
+ * the map phase (one provider round-trip per chunk, with the §7.5 repair loop),
7
+ * then reduces the per-chunk `LlmResponseV1` results into one via the browser-safe
8
+ * `@adminium/llm` merge. It is DELIBERATELY free of `@adminium/meta` / persistence
9
+ * / the jobs runtime so it stays a pure, unit-testable function — the handler
10
+ * (`jobs/llm-run.ts`) owns run-state persistence and progress fan-out.
11
+ *
12
+ * §7.5 repair loop (per chunk):
13
+ * - A clean reply (no FATAL error) ends the chunk. Per-item (referential) errors
14
+ * are review-time information and NEVER trigger a repair.
15
+ * - A FATAL stage-1–4 failure sends a repair turn — the model's bad output as an
16
+ * `assistant` message, then the exact §7.5 `user` message carrying the error
17
+ * list — up to {@link DEFAULT_MAX_REPAIRS} (2) times.
18
+ * - `LLM_TRUNCATED` first raises `maxTokens` to the provider ceiling and retries
19
+ * the SAME messages, WITHOUT consuming a repair attempt (§7.5). Only once the
20
+ * budget is already at the ceiling does a further truncation cost a repair.
21
+ * - Initial attempt + 2 exhausted repairs = 3 consecutive failures → the run
22
+ * fails with the last error list preserved.
23
+ *
24
+ * Temperature is pinned to 0 on every call (determinism mandate, §3.1). The API
25
+ * key lives only inside the injected client; nothing here logs or returns it.
26
+ */
27
+ import { type LlmResponseV1, type LlmValidationError, type ProviderClient, type ValidationResult } from '@adminium/llm';
28
+ /** Max repair turns per chunk before the run fails (§7.5). */
29
+ export declare const DEFAULT_MAX_REPAIRS = 2;
30
+ /** Longest error list embedded in a repair message (§7.5 "max 20"). */
31
+ export declare const MAX_REPAIR_ERRORS = 20;
32
+ /** One map-phase prompt: the direct-path `system` + initial `user` messages. */
33
+ export interface RunnerChunk {
34
+ /** 1-based position for display; `1`/`total: 1` for an unchunked run. */
35
+ index: number;
36
+ total: number;
37
+ system: string;
38
+ user: string;
39
+ }
40
+ /**
41
+ * A provider transport/config failure recorded on a failed run. Distinct from a
42
+ * {@link LlmValidationError} — it carries the {@link ProviderError} code, never a
43
+ * schema path, and is scrubbed of the API key by `ProviderError` itself. Stored
44
+ * opaquely in `adminium_llm_runs.validation_errors` alongside validation errors.
45
+ */
46
+ export interface ProviderRunError {
47
+ kind: 'provider';
48
+ provider: string;
49
+ /** {@link ProviderError.code} — `network` / `timeout` / `auth` / … */
50
+ code: string;
51
+ message: string;
52
+ }
53
+ /** A failed-run error entry: a validation failure OR a provider transport error. */
54
+ export type RunFailureError = LlmValidationError | ProviderRunError;
55
+ export declare function isProviderRunError(error: RunFailureError): error is ProviderRunError;
56
+ /** Progress phases (§10.2 step 3), mapped to hub events by the handler. */
57
+ export type RunnerPhase = {
58
+ phase: 'building';
59
+ } | {
60
+ phase: 'sending';
61
+ chunk: number;
62
+ total: number;
63
+ provider: string;
64
+ model: string;
65
+ } | {
66
+ phase: 'validating';
67
+ chunk: number;
68
+ total: number;
69
+ } | {
70
+ phase: 'truncation-retry';
71
+ chunk: number;
72
+ total: number;
73
+ maxTokens: number;
74
+ } | {
75
+ phase: 'repairing';
76
+ chunk: number;
77
+ total: number;
78
+ attempt: number;
79
+ maxAttempts: number;
80
+ } | {
81
+ phase: 'chunk-done';
82
+ chunk: number;
83
+ total: number;
84
+ received: number;
85
+ } | {
86
+ phase: 'done';
87
+ suggestions: number;
88
+ };
89
+ export interface DirectRunInput {
90
+ /** Per-chunk prompts (one entry for an unchunked run). */
91
+ chunks: readonly RunnerChunk[];
92
+ client: ProviderClient;
93
+ /** Selected model id passed to `complete()`. */
94
+ model: string;
95
+ /** Display id for the `sending` progress event (`anthropic`, `openai`, …). */
96
+ provider: string;
97
+ /** Initial response budget (`maxTokens`); default provider budget when unset. */
98
+ maxTokens: number;
99
+ /** Ceiling `maxTokens` is raised to on `LLM_TRUNCATED` before a repair (§7.5). */
100
+ maxTokensCeiling: number;
101
+ /** Validate one raw reply against the run's snapshot + registries. */
102
+ validate(rawText: string): ValidationResult;
103
+ /** Progress sink (§10.2). */
104
+ onProgress?: (event: RunnerPhase) => void;
105
+ /** Called after each chunk validates cleanly — persists `chunks_received`. */
106
+ onChunkComplete?: (received: number) => void | Promise<void>;
107
+ /** Cooperative cancellation; checked at every turn boundary (§10.2). */
108
+ signal?: AbortSignal;
109
+ /** Max repair turns per chunk (§7.5 = 2). */
110
+ maxRepairs?: number;
111
+ }
112
+ export type DirectRunOutcome = {
113
+ status: 'validated';
114
+ /** Merged (map-reduce) response across all chunks. */
115
+ response: LlmResponseV1;
116
+ tokensIn: number;
117
+ tokensOut: number;
118
+ chunksReceived: number;
119
+ /** Accumulated per-item validation errors (review-time info). */
120
+ errors: LlmValidationError[];
121
+ warnings: LlmValidationError[];
122
+ } | {
123
+ status: 'failed';
124
+ /** The last fatal error list, or a single provider-transport error. */
125
+ errors: RunFailureError[];
126
+ tokensIn: number;
127
+ tokensOut: number;
128
+ chunksReceived: number;
129
+ } | {
130
+ status: 'cancelled';
131
+ chunksReceived: number;
132
+ };
133
+ /**
134
+ * Build the §7.5 repair `user` message VERBATIM. The error list renders each
135
+ * failure as `code, JSON path, message`, capped at {@link MAX_REPAIR_ERRORS}.
136
+ */
137
+ export declare function buildRepairMessage(errors: readonly LlmValidationError[]): string;
138
+ /** Count the atomic suggestions in a response (the "done: N suggestions" total). */
139
+ export declare function countSuggestions(response: LlmResponseV1): number;
140
+ /**
141
+ * Run the direct-API path over every chunk and reduce to one response. Never
142
+ * throws for provider or validation failures — those resolve to a `failed`
143
+ * outcome so the caller records the run rather than retrying the whole job.
144
+ */
145
+ export declare function runDirectPath(input: DirectRunInput): Promise<DirectRunOutcome>;
146
+ //# sourceMappingURL=direct-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-runner.d.ts","sourceRoot":"","sources":["../../src/llm/direct-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Direct-API path runner (06-llm-assist.md §7.5, §10.2 step 3, acceptance #6).
3
+ *
4
+ * The provider-agnostic core the `llm-run` job handler drives: given the
5
+ * per-chunk prompts, a {@link ProviderClient}, and a `validate` closure, it runs
6
+ * the map phase (one provider round-trip per chunk, with the §7.5 repair loop),
7
+ * then reduces the per-chunk `LlmResponseV1` results into one via the browser-safe
8
+ * `@adminium/llm` merge. It is DELIBERATELY free of `@adminium/meta` / persistence
9
+ * / the jobs runtime so it stays a pure, unit-testable function — the handler
10
+ * (`jobs/llm-run.ts`) owns run-state persistence and progress fan-out.
11
+ *
12
+ * §7.5 repair loop (per chunk):
13
+ * - A clean reply (no FATAL error) ends the chunk. Per-item (referential) errors
14
+ * are review-time information and NEVER trigger a repair.
15
+ * - A FATAL stage-1–4 failure sends a repair turn — the model's bad output as an
16
+ * `assistant` message, then the exact §7.5 `user` message carrying the error
17
+ * list — up to {@link DEFAULT_MAX_REPAIRS} (2) times.
18
+ * - `LLM_TRUNCATED` first raises `maxTokens` to the provider ceiling and retries
19
+ * the SAME messages, WITHOUT consuming a repair attempt (§7.5). Only once the
20
+ * budget is already at the ceiling does a further truncation cost a repair.
21
+ * - Initial attempt + 2 exhausted repairs = 3 consecutive failures → the run
22
+ * fails with the last error list preserved.
23
+ *
24
+ * Temperature is pinned to 0 on every call (determinism mandate, §3.1). The API
25
+ * key lives only inside the injected client; nothing here logs or returns it.
26
+ */
27
+ import { isFatal, mergeChunkResponses, ProviderError, } from '@adminium/llm';
28
+ /** Max repair turns per chunk before the run fails (§7.5). */
29
+ export const DEFAULT_MAX_REPAIRS = 2;
30
+ /** Longest error list embedded in a repair message (§7.5 "max 20"). */
31
+ export const MAX_REPAIR_ERRORS = 20;
32
+ export function isProviderRunError(error) {
33
+ return error.kind === 'provider';
34
+ }
35
+ /**
36
+ * Build the §7.5 repair `user` message VERBATIM. The error list renders each
37
+ * failure as `code, JSON path, message`, capped at {@link MAX_REPAIR_ERRORS}.
38
+ */
39
+ export function buildRepairMessage(errors) {
40
+ const list = errors
41
+ .slice(0, MAX_REPAIR_ERRORS)
42
+ .map((error) => `- ${error.code}, ${error.path === '' ? '(root)' : error.path}, ${error.message}`)
43
+ .join('\n');
44
+ return [
45
+ 'Your previous response failed machine validation:',
46
+ list,
47
+ 'Return the corrected COMPLETE JSON object now. Output rules still apply:',
48
+ 'single JSON object, no prose, no fences, schema_version first.',
49
+ ].join('\n');
50
+ }
51
+ /** Count the atomic suggestions in a response (the "done: N suggestions" total). */
52
+ export function countSuggestions(response) {
53
+ let total = 0;
54
+ for (const table of response.tables) {
55
+ total += 1 + table.columns.length;
56
+ }
57
+ total += response.enums.length;
58
+ total += response.relations.confirmed.length + response.relations.inferred.length;
59
+ total += response.navGroups.length;
60
+ for (const dashboard of response.dashboards) {
61
+ total += 1 + dashboard.widgets.length;
62
+ }
63
+ return total;
64
+ }
65
+ /**
66
+ * Run the direct-API path over every chunk and reduce to one response. Never
67
+ * throws for provider or validation failures — those resolve to a `failed`
68
+ * outcome so the caller records the run rather than retrying the whole job.
69
+ */
70
+ export async function runDirectPath(input) {
71
+ const maxRepairs = input.maxRepairs ?? DEFAULT_MAX_REPAIRS;
72
+ input.onProgress?.({ phase: 'building' });
73
+ const responses = [];
74
+ const errors = [];
75
+ const warnings = [];
76
+ const usage = { tokensIn: 0, tokensOut: 0 };
77
+ let chunksReceived = 0;
78
+ for (const chunk of input.chunks) {
79
+ if (input.signal?.aborted)
80
+ return { status: 'cancelled', chunksReceived };
81
+ const result = await runChunk(chunk, input, maxRepairs, usage);
82
+ if (result.kind === 'cancelled')
83
+ return { status: 'cancelled', chunksReceived };
84
+ if (result.kind === 'failed') {
85
+ return {
86
+ status: 'failed',
87
+ errors: result.errors,
88
+ tokensIn: usage.tokensIn,
89
+ tokensOut: usage.tokensOut,
90
+ chunksReceived,
91
+ };
92
+ }
93
+ responses.push(result.response);
94
+ errors.push(...result.errors);
95
+ warnings.push(...result.warnings);
96
+ chunksReceived += 1;
97
+ input.onProgress?.({
98
+ phase: 'chunk-done',
99
+ chunk: chunk.index,
100
+ total: chunk.total,
101
+ received: chunksReceived,
102
+ });
103
+ await input.onChunkComplete?.(chunksReceived);
104
+ }
105
+ if (input.signal?.aborted)
106
+ return { status: 'cancelled', chunksReceived };
107
+ // Reduce phase — deterministic, order-independent (§4.5, acceptance #7).
108
+ const merged = mergeChunkResponses(responses);
109
+ input.onProgress?.({ phase: 'done', suggestions: countSuggestions(merged) });
110
+ return {
111
+ status: 'validated',
112
+ response: merged,
113
+ tokensIn: usage.tokensIn,
114
+ tokensOut: usage.tokensOut,
115
+ chunksReceived,
116
+ errors,
117
+ warnings,
118
+ };
119
+ }
120
+ /** One chunk's map phase: send → validate → repair loop (§7.5). */
121
+ async function runChunk(chunk, input, maxRepairs, usage) {
122
+ const messages = [{ role: 'user', content: chunk.user }];
123
+ let maxTokens = input.maxTokens;
124
+ let repairs = 0;
125
+ for (;;) {
126
+ if (input.signal?.aborted)
127
+ return { kind: 'cancelled' };
128
+ input.onProgress?.({
129
+ phase: 'sending',
130
+ chunk: chunk.index,
131
+ total: chunk.total,
132
+ provider: input.provider,
133
+ model: input.model,
134
+ });
135
+ let reply;
136
+ try {
137
+ // Temperature pinned 0 — determinism mandate (§3.1).
138
+ reply = await input.client.complete({
139
+ system: chunk.system,
140
+ messages: messages.map((message) => ({ ...message })),
141
+ model: input.model,
142
+ maxTokens,
143
+ temperature: 0,
144
+ });
145
+ }
146
+ catch (error) {
147
+ // Transport/config failure: not repairable by re-prompting → the run fails.
148
+ return { kind: 'failed', errors: [toProviderRunError(error, input.provider)] };
149
+ }
150
+ usage.tokensIn += reply.usage?.inputTokens ?? 0;
151
+ usage.tokensOut += reply.usage?.outputTokens ?? 0;
152
+ input.onProgress?.({ phase: 'validating', chunk: chunk.index, total: chunk.total });
153
+ const validation = input.validate(reply.text);
154
+ if (validation.response !== undefined) {
155
+ // Clean parse (no fatal). Per-item errors are review-time info, not repairs.
156
+ return {
157
+ kind: 'ok',
158
+ response: validation.response,
159
+ errors: validation.errors,
160
+ warnings: validation.warnings,
161
+ };
162
+ }
163
+ const fatals = validation.errors.filter(isFatal);
164
+ const truncated = fatals.some((error) => error.code === 'LLM_TRUNCATED');
165
+ // Truncation escalates the budget once, for free, before any repair (§7.5).
166
+ if (truncated && maxTokens < input.maxTokensCeiling) {
167
+ maxTokens = input.maxTokensCeiling;
168
+ input.onProgress?.({
169
+ phase: 'truncation-retry',
170
+ chunk: chunk.index,
171
+ total: chunk.total,
172
+ maxTokens,
173
+ });
174
+ continue;
175
+ }
176
+ if (repairs >= maxRepairs) {
177
+ // Initial attempt + `maxRepairs` failed = 3 consecutive failures (§7.5).
178
+ return { kind: 'failed', errors: [...validation.errors] };
179
+ }
180
+ repairs += 1;
181
+ input.onProgress?.({
182
+ phase: 'repairing',
183
+ chunk: chunk.index,
184
+ total: chunk.total,
185
+ attempt: repairs,
186
+ maxAttempts: maxRepairs,
187
+ });
188
+ messages.push({ role: 'assistant', content: reply.text });
189
+ messages.push({ role: 'user', content: buildRepairMessage(fatals) });
190
+ }
191
+ }
192
+ /** Map an unknown thrown value to a key-scrubbed {@link ProviderRunError}. */
193
+ function toProviderRunError(error, provider) {
194
+ if (error instanceof ProviderError) {
195
+ return { kind: 'provider', provider: error.provider, code: error.code, message: error.message };
196
+ }
197
+ return {
198
+ kind: 'provider',
199
+ provider,
200
+ code: 'unknown',
201
+ message: error instanceof Error ? error.message : String(error),
202
+ };
203
+ }
204
+ //# sourceMappingURL=direct-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-runner.js","sourceRoot":"","sources":["../../src/llm/direct-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Prompt/run creation service (06-llm-assist.md §10.4 + §10.5).
3
+ *
4
+ * THE LIFT (M10-T01): everything here used to live inline inside the
5
+ * `POST /api/v1/llm/runs` handler. The CLI's `adminium generate-prompt` needs
6
+ * the exact same sequence — resolve the connection's latest snapshot, read the
7
+ * configured provider for a direct run, collect §4.2 stats, `createRun`, and
8
+ * park a BYO run in `awaiting_response`. Rather than let the CLI reimplement it
9
+ * (the M10 risk register's named failure mode: "CLI/Docker parity with Studio
10
+ * wizard drifts"), the orchestration moved here and BOTH front doors call it:
11
+ * the route is now a thin HTTP adapter over `createRunForConnection`.
12
+ *
13
+ * What stays out: HTTP concerns (status codes, DTO mapping, RBAC, audit) belong
14
+ * to the route; process/exit concerns belong to the CLI. This service throws
15
+ * typed errors and returns domain objects — no Fastify, no `process`.
16
+ */
17
+ import { type DatabaseModel, type StatsResult } from '@adminium/engine';
18
+ import type { AllowedVocabularies, LocaleCode, RequestedSection, Sampling } from '@adminium/llm';
19
+ import { type LlmRun, type MetaDb } from '@adminium/meta';
20
+ import type { CreateRunResult, RunService } from './run-service.js';
21
+ /** The connection has never been introspected — nothing to build a prompt from. */
22
+ export declare class SnapshotRequiredError extends Error {
23
+ readonly connectionId: string;
24
+ readonly name = "SnapshotRequiredError";
25
+ constructor(connectionId: string);
26
+ }
27
+ /** A `provider` (direct) run was requested but Settings → AI has no provider. */
28
+ export declare class ProviderNotSelectedError extends Error {
29
+ readonly name = "ProviderNotSelectedError";
30
+ constructor();
31
+ }
32
+ export interface CollectRunStatsInput {
33
+ connectionId: string;
34
+ snapshotId: string;
35
+ /** The classified schema IR from the run's snapshot (privacy flags + types). */
36
+ model: DatabaseModel;
37
+ /** Sampling opt-in (§4.2) — sample-free when `null`. */
38
+ sampling: Sampling;
39
+ }
40
+ /**
41
+ * Collects §4.2 aggregate statistics for a run's snapshot. Injected so callers
42
+ * stay testable WITHOUT a live source database; the app-wiring layer supplies a
43
+ * `ConnectionManager`-backed implementation.
44
+ */
45
+ export type CollectRunStats = (input: CollectRunStatsInput) => Promise<readonly StatsResult[]>;
46
+ /** Default: sample-free with no aggregates (statistics omitted from the prompt). */
47
+ export declare const NO_STATS: CollectRunStats;
48
+ export interface CreateRunForConnectionInput {
49
+ connectionId: string;
50
+ /** `byo` = copy-paste round-trip (the CLI's path); `provider` = direct API. */
51
+ path: 'byo' | 'provider';
52
+ /** Requested output locales; `en_US` is always included by the prompt builder. */
53
+ locales?: readonly LocaleCode[] | undefined;
54
+ /** Requested decision groups (§4.4); empty/omitted ⇒ all sections. */
55
+ sections?: readonly RequestedSection[] | undefined;
56
+ /** Sampling opt-in (§4.2); `null` = sample-free (default). */
57
+ sampling?: Sampling | undefined;
58
+ createdBy?: string | null | undefined;
59
+ }
60
+ export interface CreateRunForConnectionResult extends CreateRunResult {
61
+ /** The run AFTER the BYO `awaiting_response` transition (§10.2 step 4). */
62
+ run: LlmRun;
63
+ /** The snapshot the prompt was built against. */
64
+ snapshotId: string;
65
+ }
66
+ export interface PromptServiceDeps {
67
+ meta: MetaDb;
68
+ runService: RunService;
69
+ /**
70
+ * `LLM_ALLOWED_TEMPLATES` / `LLM_ALLOWED_WIDGETS` from `@adminium/widgets` —
71
+ * INJECTED, since the server tree must not import the widgets package (01 §2.3).
72
+ */
73
+ allowed: AllowedVocabularies;
74
+ /** §4.2 stats collector (default {@link NO_STATS}). */
75
+ collectStats?: CollectRunStats | undefined;
76
+ }
77
+ export declare function createPromptService(deps: PromptServiceDeps): {
78
+ loadLatestModel: (connectionId: string) => Promise<{
79
+ snapshotId: string;
80
+ model: DatabaseModel;
81
+ }>;
82
+ /**
83
+ * Build the prompt for a connection's latest snapshot and persist the run.
84
+ * BYO runs come back already in `awaiting_response`; direct runs stay `draft`
85
+ * for the caller to execute (route → `llm-run` job).
86
+ */
87
+ createRunForConnection(input: CreateRunForConnectionInput): Promise<CreateRunForConnectionResult>;
88
+ };
89
+ export type PromptService = ReturnType<typeof createPromptService>;
90
+ //# sourceMappingURL=prompt-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-service.d.ts","sourceRoot":"","sources":["../../src/llm/prompt-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EAEV,gBAAgB,EAChB,QAAQ,EACT,MAAM,eAAe,CAAC;AACvB,OAAO,EAA+B,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIpE,mFAAmF;AACnF,qBAAa,qBAAsB,SAAQ,KAAK;IAElC,QAAQ,CAAC,YAAY,EAAE,MAAM;IADzC,SAAkB,IAAI,2BAA2B;gBAC5B,YAAY,EAAE,MAAM;CAG1C;AAED,iFAAiF;AACjF,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,SAAkB,IAAI,8BAA8B;;CAIrD;AAID,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,KAAK,EAAE,aAAa,CAAC;IACrB,wDAAwD;IACxD,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;AAE/F,oFAAoF;AACpF,eAAO,MAAM,QAAQ,EAAE,eAAgC,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IACzB,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACnD,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,4BAA6B,SAAQ,eAAe;IACnE,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB;;;OAGG;IACH,OAAO,EAAE,mBAAmB,CAAC;IAC7B,uDAAuD;IACvD,YAAY,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC5C;AAID,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB;oCAQzC,MAAM,KACnB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,CAAC;IAUtD;;;;OAIG;kCAEM,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC;EAsC3C;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Prompt/run creation service (06-llm-assist.md §10.4 + §10.5).
3
+ *
4
+ * THE LIFT (M10-T01): everything here used to live inline inside the
5
+ * `POST /api/v1/llm/runs` handler. The CLI's `adminium generate-prompt` needs
6
+ * the exact same sequence — resolve the connection's latest snapshot, read the
7
+ * configured provider for a direct run, collect §4.2 stats, `createRun`, and
8
+ * park a BYO run in `awaiting_response`. Rather than let the CLI reimplement it
9
+ * (the M10 risk register's named failure mode: "CLI/Docker parity with Studio
10
+ * wizard drifts"), the orchestration moved here and BOTH front doors call it:
11
+ * the route is now a thin HTTP adapter over `createRunForConnection`.
12
+ *
13
+ * What stays out: HTTP concerns (status codes, DTO mapping, RBAC, audit) belong
14
+ * to the route; process/exit concerns belong to the CLI. This service throws
15
+ * typed errors and returns domain objects — no Fastify, no `process`.
16
+ */
17
+ import { parseDatabaseModel } from '@adminium/engine';
18
+ import { settingsRepo, snapshotsRepo } from '@adminium/meta';
19
+ // ─── Errors ──────────────────────────────────────────────────────────────────
20
+ /** The connection has never been introspected — nothing to build a prompt from. */
21
+ export class SnapshotRequiredError extends Error {
22
+ connectionId;
23
+ name = 'SnapshotRequiredError';
24
+ constructor(connectionId) {
25
+ super('Introspect the connection before running AI enrichment.');
26
+ this.connectionId = connectionId;
27
+ }
28
+ }
29
+ /** A `provider` (direct) run was requested but Settings → AI has no provider. */
30
+ export class ProviderNotSelectedError extends Error {
31
+ name = 'ProviderNotSelectedError';
32
+ constructor() {
33
+ super('Configure an AI provider before running the direct path.');
34
+ }
35
+ }
36
+ /** Default: sample-free with no aggregates (statistics omitted from the prompt). */
37
+ export const NO_STATS = async () => [];
38
+ // ─── Service ─────────────────────────────────────────────────────────────────
39
+ export function createPromptService(deps) {
40
+ const { meta, runService, allowed } = deps;
41
+ const snapshots = snapshotsRepo(meta);
42
+ const settings = settingsRepo(meta);
43
+ const collectStats = deps.collectStats ?? NO_STATS;
44
+ /** The connection's latest snapshot as a parsed IR, or {@link SnapshotRequiredError}. */
45
+ async function loadLatestModel(connectionId) {
46
+ const snapshot = await snapshots.latest(connectionId);
47
+ if (snapshot === null)
48
+ throw new SnapshotRequiredError(connectionId);
49
+ // The stored snapshot already carries its classified semantics.
50
+ return { snapshotId: snapshot.id, model: parseDatabaseModel(snapshot.schema) };
51
+ }
52
+ return {
53
+ loadLatestModel,
54
+ /**
55
+ * Build the prompt for a connection's latest snapshot and persist the run.
56
+ * BYO runs come back already in `awaiting_response`; direct runs stay `draft`
57
+ * for the caller to execute (route → `llm-run` job).
58
+ */
59
+ async createRunForConnection(input) {
60
+ const { snapshotId, model } = await loadLatestModel(input.connectionId);
61
+ const locales = (input.locales ?? ['en_US']);
62
+ const sections = (input.sections ?? []);
63
+ const sampling = input.sampling ?? null;
64
+ // §9: BYO runs record no provider/model — only the direct path reads them.
65
+ let provider = null;
66
+ let providerModel = null;
67
+ if (input.path === 'provider') {
68
+ provider = await settings.get('llm.provider');
69
+ if (provider === null)
70
+ throw new ProviderNotSelectedError();
71
+ providerModel = await settings.get('llm.model');
72
+ }
73
+ const stats = await collectStats({ connectionId: input.connectionId, snapshotId, model, sampling });
74
+ const created = await runService.createRun({
75
+ connectionId: input.connectionId,
76
+ snapshotId,
77
+ schemaIr: model,
78
+ stats,
79
+ locales,
80
+ sections,
81
+ sampling,
82
+ mode: input.path,
83
+ provider,
84
+ model: providerModel,
85
+ allowed,
86
+ createdBy: input.createdBy ?? null,
87
+ });
88
+ const run = input.path === 'byo' ? await runService.markAwaitingResponse(created.run.id) : created.run;
89
+ return { ...created, run, snapshotId };
90
+ },
91
+ };
92
+ }
93
+ //# sourceMappingURL=prompt-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../src/llm/prompt-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type LlmKeyCrypto, type ProviderClient, type ProviderConfig, type ProviderId } from '@adminium/llm';
2
+ import { type MetaDb } from '@adminium/meta';
3
+ import type { ResolveRun } from '../jobs/llm-run.js';
4
+ /**
5
+ * Per-provider `maxTokens` ceiling the `LLM_TRUNCATED` escalation raises to
6
+ * before counting a repair (§7.5). Conservative output caps for the chat
7
+ * contract each client speaks; a truncated reply retries once at this budget.
8
+ */
9
+ export declare const PROVIDER_OUTPUT_CEILING: Record<ProviderId, number>;
10
+ export interface ProviderResolverDeps {
11
+ meta: MetaDb;
12
+ /** Decrypts the stored `llm.apiKey` (`enc:v1:` token → plaintext). */
13
+ keyCrypto: LlmKeyCrypto;
14
+ /** `LLM_ALLOWED_TEMPLATES` from `@adminium/widgets`. */
15
+ allowedTemplates: readonly string[];
16
+ /** `LLM_ALLOWED_WIDGETS` from `@adminium/widgets`. */
17
+ allowedWidgets: readonly string[];
18
+ /** Bundled lucide manifest for the icon-fallback warning (optional). */
19
+ allowedIcons?: ReadonlySet<string> | readonly string[];
20
+ /** Test seam — construct a client from a config (default: `createProviderClient`). */
21
+ createClient?: (config: ProviderConfig) => ProviderClient;
22
+ }
23
+ /** Build the production run resolver. */
24
+ export declare function createProviderResolver(deps: ProviderResolverDeps): ResolveRun;
25
+ //# sourceMappingURL=provider-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-resolver.d.ts","sourceRoot":"","sources":["../../src/llm/provider-resolver.ts"],"names":[],"mappings":"AAoBA,OAAO,EAKL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAA4C,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAM9D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,SAAS,EAAE,YAAY,CAAC;IACxB,wDAAwD;IACxD,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,sDAAsD;IACtD,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,wEAAwE;IACxE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;IACvD,sFAAsF;IACtF,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,cAAc,CAAC;CAC3D;AAED,yCAAyC;AACzC,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,UAAU,CA6D7E"}