@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.
- package/LICENSE +661 -0
- package/README.md +94 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js +2 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js.map +1 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js +2 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js.map +1 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js +2 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js.map +1 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js +2 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js.map +1 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js +2 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js.map +1 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js +2 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js.map +1 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js +2 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js.map +1 -0
- package/dashboard/assets/arc-CPxb74pf.js +2 -0
- package/dashboard/assets/arc-CPxb74pf.js.map +1 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js +2 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js.map +1 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js +2 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js.map +1 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js +2 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js.map +1 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js +2 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js.map +1 -0
- package/dashboard/assets/common-BY1j__bD.js +2 -0
- package/dashboard/assets/common-BY1j__bD.js.map +1 -0
- package/dashboard/assets/common-BdlXKpcB.js +2 -0
- package/dashboard/assets/common-BdlXKpcB.js.map +1 -0
- package/dashboard/assets/common-BqqhgMgB.js +2 -0
- package/dashboard/assets/common-BqqhgMgB.js.map +1 -0
- package/dashboard/assets/common-BribWmIo.js +2 -0
- package/dashboard/assets/common-BribWmIo.js.map +1 -0
- package/dashboard/assets/common-Cmf0_lKV.js +2 -0
- package/dashboard/assets/common-Cmf0_lKV.js.map +1 -0
- package/dashboard/assets/common-i0r48qY9.js +2 -0
- package/dashboard/assets/common-i0r48qY9.js.map +1 -0
- package/dashboard/assets/common-x8cfkwpc.js +2 -0
- package/dashboard/assets/common-x8cfkwpc.js.map +1 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js +2 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js.map +1 -0
- package/dashboard/assets/components-Bp5cFm2d.js +2 -0
- package/dashboard/assets/components-Bp5cFm2d.js.map +1 -0
- package/dashboard/assets/components-C4-O3_gD.js +2 -0
- package/dashboard/assets/components-C4-O3_gD.js.map +1 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js +2 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js.map +1 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js +2 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js.map +1 -0
- package/dashboard/assets/errors-BHUWiAQ3.js +2 -0
- package/dashboard/assets/errors-BHUWiAQ3.js.map +1 -0
- package/dashboard/assets/errors-BbyKweDG.js +2 -0
- package/dashboard/assets/errors-BbyKweDG.js.map +1 -0
- package/dashboard/assets/errors-CMQ6JC31.js +2 -0
- package/dashboard/assets/errors-CMQ6JC31.js.map +1 -0
- package/dashboard/assets/errors-D3nVgTmf.js +2 -0
- package/dashboard/assets/errors-D3nVgTmf.js.map +1 -0
- package/dashboard/assets/errors-IqJSoANC.js +2 -0
- package/dashboard/assets/errors-IqJSoANC.js.map +1 -0
- package/dashboard/assets/errors-gmIkO9F6.js +2 -0
- package/dashboard/assets/errors-gmIkO9F6.js.map +1 -0
- package/dashboard/assets/errors-vFk058Vh.js +2 -0
- package/dashboard/assets/errors-vFk058Vh.js.map +1 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js +2 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js.map +1 -0
- package/dashboard/assets/format-Lx4cQ8k-.js +2 -0
- package/dashboard/assets/format-Lx4cQ8k-.js.map +1 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js +2 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js.map +1 -0
- package/dashboard/assets/generated-1EfWhCMA.js +2 -0
- package/dashboard/assets/generated-1EfWhCMA.js.map +1 -0
- package/dashboard/assets/generated-BB3ZMxvx.js +2 -0
- package/dashboard/assets/generated-BB3ZMxvx.js.map +1 -0
- package/dashboard/assets/generated-C0JVNBRX.js +2 -0
- package/dashboard/assets/generated-C0JVNBRX.js.map +1 -0
- package/dashboard/assets/generated-C1W48_-3.js +2 -0
- package/dashboard/assets/generated-C1W48_-3.js.map +1 -0
- package/dashboard/assets/generated-CluiB_xY.js +2 -0
- package/dashboard/assets/generated-CluiB_xY.js.map +1 -0
- package/dashboard/assets/generated-DDGtlf-4.js +2 -0
- package/dashboard/assets/generated-DDGtlf-4.js.map +1 -0
- package/dashboard/assets/generated-DPCHvNto.js +2 -0
- package/dashboard/assets/generated-DPCHvNto.js.map +1 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js +3 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js.map +1 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2 +0 -0
- package/dashboard/assets/index-DPi4cduu.css +1 -0
- package/dashboard/assets/index-PB1II0WV.js +137 -0
- package/dashboard/assets/index-PB1II0WV.js.map +1 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dashboard/assets/leaflet-CIGW-MKW.css +1 -0
- package/dashboard/assets/leaflet-src-D12shr04.js +2 -0
- package/dashboard/assets/leaflet-src-D12shr04.js.map +1 -0
- package/dashboard/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
- package/dashboard/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js +2 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js.map +1 -0
- package/dashboard/assets/scales-e0tkfEy1.js +2 -0
- package/dashboard/assets/scales-e0tkfEy1.js.map +1 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js +2 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js.map +1 -0
- package/dashboard/assets/stats-BNgXz5BD.js +2 -0
- package/dashboard/assets/stats-BNgXz5BD.js.map +1 -0
- package/dashboard/assets/studio-B7hMOwAF.js +2 -0
- package/dashboard/assets/studio-B7hMOwAF.js.map +1 -0
- package/dashboard/assets/studio-BN_9xHY3.js +2 -0
- package/dashboard/assets/studio-BN_9xHY3.js.map +1 -0
- package/dashboard/assets/studio-Cn2MObe8.js +2 -0
- package/dashboard/assets/studio-Cn2MObe8.js.map +1 -0
- package/dashboard/assets/studio-DZEZCCkw.js +2 -0
- package/dashboard/assets/studio-DZEZCCkw.js.map +1 -0
- package/dashboard/assets/studio-DzatTvLl.js +2 -0
- package/dashboard/assets/studio-DzatTvLl.js.map +1 -0
- package/dashboard/assets/studio-cBlD8x90.js +2 -0
- package/dashboard/assets/studio-cBlD8x90.js.map +1 -0
- package/dashboard/assets/studio-cglZPbJK.js +2 -0
- package/dashboard/assets/studio-cglZPbJK.js.map +1 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js +2 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js.map +1 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js +2 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js.map +1 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js +2 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js.map +1 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js +2 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js.map +1 -0
- package/dashboard/assets/ui-B-kZetor.js +2 -0
- package/dashboard/assets/ui-B-kZetor.js.map +1 -0
- package/dashboard/assets/ui-BEStJ5Pw.js +2 -0
- package/dashboard/assets/ui-BEStJ5Pw.js.map +1 -0
- package/dashboard/assets/ui-BS5_eDN4.js +2 -0
- package/dashboard/assets/ui-BS5_eDN4.js.map +1 -0
- package/dashboard/assets/ui-BZ0EyxRH.js +2 -0
- package/dashboard/assets/ui-BZ0EyxRH.js.map +1 -0
- package/dashboard/assets/ui-BloJDdt6.js +2 -0
- package/dashboard/assets/ui-BloJDdt6.js.map +1 -0
- package/dashboard/assets/ui-CpdrplJH.js +2 -0
- package/dashboard/assets/ui-CpdrplJH.js.map +1 -0
- package/dashboard/assets/ui-YJfT644k.js +2 -0
- package/dashboard/assets/ui-YJfT644k.js.map +1 -0
- package/dashboard/assets/widgets-uDqZWw4A.js +2 -0
- package/dashboard/assets/widgets-uDqZWw4A.js.map +1 -0
- package/dashboard/index.html +41 -0
- package/dist/app.d.ts +48 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +250 -0
- package/dist/app.js.map +1 -0
- package/dist/auth/audit.d.ts +22 -0
- package/dist/auth/audit.d.ts.map +1 -0
- package/dist/auth/audit.js +17 -0
- package/dist/auth/audit.js.map +1 -0
- package/dist/auth/desktop-session.d.ts +53 -0
- package/dist/auth/desktop-session.d.ts.map +1 -0
- package/dist/auth/desktop-session.js +111 -0
- package/dist/auth/desktop-session.js.map +1 -0
- package/dist/auth/passwords.d.ts +17 -0
- package/dist/auth/passwords.d.ts.map +1 -0
- package/dist/auth/passwords.js +40 -0
- package/dist/auth/passwords.js.map +1 -0
- package/dist/auth/sessions.d.ts +77 -0
- package/dist/auth/sessions.d.ts.map +1 -0
- package/dist/auth/sessions.js +137 -0
- package/dist/auth/sessions.js.map +1 -0
- package/dist/auth/totp.d.ts +30 -0
- package/dist/auth/totp.d.ts.map +1 -0
- package/dist/auth/totp.js +97 -0
- package/dist/auth/totp.js.map +1 -0
- package/dist/backup/backup-service.d.ts +157 -0
- package/dist/backup/backup-service.d.ts.map +1 -0
- package/dist/backup/backup-service.js +354 -0
- package/dist/backup/backup-service.js.map +1 -0
- package/dist/backup/format.d.ts +300 -0
- package/dist/backup/format.d.ts.map +1 -0
- package/dist/backup/format.js +304 -0
- package/dist/backup/format.js.map +1 -0
- package/dist/backup/notify.d.ts +55 -0
- package/dist/backup/notify.d.ts.map +1 -0
- package/dist/backup/notify.js +60 -0
- package/dist/backup/notify.js.map +1 -0
- package/dist/backup/snapshot.d.ts +78 -0
- package/dist/backup/snapshot.d.ts.map +1 -0
- package/dist/backup/snapshot.js +142 -0
- package/dist/backup/snapshot.js.map +1 -0
- package/dist/capabilities/catalog.d.ts +33 -0
- package/dist/capabilities/catalog.d.ts.map +1 -0
- package/dist/capabilities/catalog.js +32 -0
- package/dist/capabilities/catalog.js.map +1 -0
- package/dist/capabilities/grants.d.ts +44 -0
- package/dist/capabilities/grants.d.ts.map +1 -0
- package/dist/capabilities/grants.js +65 -0
- package/dist/capabilities/grants.js.map +1 -0
- package/dist/cli/allowlist.d.ts +46 -0
- package/dist/cli/allowlist.d.ts.map +1 -0
- package/dist/cli/allowlist.js +99 -0
- package/dist/cli/allowlist.js.map +1 -0
- package/dist/cli/args.d.ts +63 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +92 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/command.d.ts +32 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +64 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/apply-llm-response.d.ts +32 -0
- package/dist/cli/commands/apply-llm-response.d.ts.map +1 -0
- package/dist/cli/commands/apply-llm-response.js +209 -0
- package/dist/cli/commands/apply-llm-response.js.map +1 -0
- package/dist/cli/commands/export-zip.d.ts +17 -0
- package/dist/cli/commands/export-zip.d.ts.map +1 -0
- package/dist/cli/commands/export-zip.js +111 -0
- package/dist/cli/commands/export-zip.js.map +1 -0
- package/dist/cli/commands/generate-prompt.d.ts +29 -0
- package/dist/cli/commands/generate-prompt.d.ts.map +1 -0
- package/dist/cli/commands/generate-prompt.js +154 -0
- package/dist/cli/commands/generate-prompt.js.map +1 -0
- package/dist/cli/commands/import-zip.d.ts +13 -0
- package/dist/cli/commands/import-zip.d.ts.map +1 -0
- package/dist/cli/commands/import-zip.js +95 -0
- package/dist/cli/commands/import-zip.js.map +1 -0
- package/dist/cli/commands/init.d.ts +47 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +372 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts +11 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -0
- package/dist/cli/commands/introspect.js +100 -0
- package/dist/cli/commands/introspect.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +11 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +80 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/start.d.ts +22 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +101 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/exit.d.ts +37 -0
- package/dist/cli/exit.d.ts.map +1 -0
- package/dist/cli/exit.js +39 -0
- package/dist/cli/exit.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +17 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/io.d.ts +49 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +77 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/run.d.ts +35 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +139 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/runtime.d.ts +116 -0
- package/dist/cli/runtime.d.ts.map +1 -0
- package/dist/cli/runtime.js +181 -0
- package/dist/cli/runtime.js.map +1 -0
- package/dist/cli/static-root.d.ts +42 -0
- package/dist/cli/static-root.d.ts.map +1 -0
- package/dist/cli/static-root.js +58 -0
- package/dist/cli/static-root.js.map +1 -0
- package/dist/compose.d.ts +135 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +383 -0
- package/dist/compose.js.map +1 -0
- package/dist/config/bootstrap.d.ts +33 -0
- package/dist/config/bootstrap.d.ts.map +1 -0
- package/dist/config/bootstrap.js +81 -0
- package/dist/config/bootstrap.js.map +1 -0
- package/dist/config/env.d.ts +95 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +236 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/secrets.d.ts +24 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +74 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/connections/crypto.d.ts +9 -0
- package/dist/connections/crypto.d.ts.map +1 -0
- package/dist/connections/crypto.js +16 -0
- package/dist/connections/crypto.js.map +1 -0
- package/dist/connections/dsn.d.ts +42 -0
- package/dist/connections/dsn.d.ts.map +1 -0
- package/dist/connections/dsn.js +131 -0
- package/dist/connections/dsn.js.map +1 -0
- package/dist/connections/effective-schema.d.ts +65 -0
- package/dist/connections/effective-schema.d.ts.map +1 -0
- package/dist/connections/effective-schema.js +249 -0
- package/dist/connections/effective-schema.js.map +1 -0
- package/dist/connections/introspect.d.ts +52 -0
- package/dist/connections/introspect.d.ts.map +1 -0
- package/dist/connections/introspect.js +111 -0
- package/dist/connections/introspect.js.map +1 -0
- package/dist/connections/manager.d.ts +97 -0
- package/dist/connections/manager.d.ts.map +1 -0
- package/dist/connections/manager.js +224 -0
- package/dist/connections/manager.js.map +1 -0
- package/dist/connections/register-adapters.d.ts +42 -0
- package/dist/connections/register-adapters.d.ts.map +1 -0
- package/dist/connections/register-adapters.js +92 -0
- package/dist/connections/register-adapters.js.map +1 -0
- package/dist/crud/filters.d.ts +57 -0
- package/dist/crud/filters.d.ts.map +1 -0
- package/dist/crud/filters.js +177 -0
- package/dist/crud/filters.js.map +1 -0
- package/dist/crud/identifiers.d.ts +58 -0
- package/dist/crud/identifiers.d.ts.map +1 -0
- package/dist/crud/identifiers.js +99 -0
- package/dist/crud/identifiers.js.map +1 -0
- package/dist/crud/list.d.ts +51 -0
- package/dist/crud/list.d.ts.map +1 -0
- package/dist/crud/list.js +126 -0
- package/dist/crud/list.js.map +1 -0
- package/dist/crud/mask.d.ts +23 -0
- package/dist/crud/mask.d.ts.map +1 -0
- package/dist/crud/mask.js +41 -0
- package/dist/crud/mask.js.map +1 -0
- package/dist/crud/records.d.ts +33 -0
- package/dist/crud/records.d.ts.map +1 -0
- package/dist/crud/records.js +126 -0
- package/dist/crud/records.js.map +1 -0
- package/dist/crud/undo.d.ts +55 -0
- package/dist/crud/undo.d.ts.map +1 -0
- package/dist/crud/undo.js +74 -0
- package/dist/crud/undo.js.map +1 -0
- package/dist/data-io/coerce.d.ts +28 -0
- package/dist/data-io/coerce.d.ts.map +1 -0
- package/dist/data-io/coerce.js +123 -0
- package/dist/data-io/coerce.js.map +1 -0
- package/dist/data-io/csv.d.ts +38 -0
- package/dist/data-io/csv.d.ts.map +1 -0
- package/dist/data-io/csv.js +138 -0
- package/dist/data-io/csv.js.map +1 -0
- package/dist/data-io/snapshot-view.d.ts +10 -0
- package/dist/data-io/snapshot-view.d.ts.map +1 -0
- package/dist/data-io/snapshot-view.js +19 -0
- package/dist/data-io/snapshot-view.js.map +1 -0
- package/dist/desktop/demo-seed.d.ts +23 -0
- package/dist/desktop/demo-seed.d.ts.map +1 -0
- package/dist/desktop/demo-seed.js +28 -0
- package/dist/desktop/demo-seed.js.map +1 -0
- package/dist/desktop/lan-share.d.ts +94 -0
- package/dist/desktop/lan-share.d.ts.map +1 -0
- package/dist/desktop/lan-share.js +150 -0
- package/dist/desktop/lan-share.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -0
- package/dist/export/bundle.d.ts +235 -0
- package/dist/export/bundle.d.ts.map +1 -0
- package/dist/export/bundle.js +172 -0
- package/dist/export/bundle.js.map +1 -0
- package/dist/export/import-service.d.ts +99 -0
- package/dist/export/import-service.d.ts.map +1 -0
- package/dist/export/import-service.js +515 -0
- package/dist/export/import-service.js.map +1 -0
- package/dist/export/readme.d.ts +25 -0
- package/dist/export/readme.d.ts.map +1 -0
- package/dist/export/readme.js +154 -0
- package/dist/export/readme.js.map +1 -0
- package/dist/export/redaction.d.ts +118 -0
- package/dist/export/redaction.d.ts.map +1 -0
- package/dist/export/redaction.js +233 -0
- package/dist/export/redaction.js.map +1 -0
- package/dist/export/zip-service.d.ts +66 -0
- package/dist/export/zip-service.d.ts.map +1 -0
- package/dist/export/zip-service.js +306 -0
- package/dist/export/zip-service.js.map +1 -0
- package/dist/files/storage.d.ts +50 -0
- package/dist/files/storage.d.ts.map +1 -0
- package/dist/files/storage.js +100 -0
- package/dist/files/storage.js.map +1 -0
- package/dist/generate/materialize-llm.d.ts +45 -0
- package/dist/generate/materialize-llm.d.ts.map +1 -0
- package/dist/generate/materialize-llm.js +167 -0
- package/dist/generate/materialize-llm.js.map +1 -0
- package/dist/generate/run.d.ts +48 -0
- package/dist/generate/run.d.ts.map +1 -0
- package/dist/generate/run.js +123 -0
- package/dist/generate/run.js.map +1 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +116 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/export-run.d.ts +38 -0
- package/dist/jobs/export-run.d.ts.map +1 -0
- package/dist/jobs/export-run.js +172 -0
- package/dist/jobs/export-run.js.map +1 -0
- package/dist/jobs/import-run.d.ts +43 -0
- package/dist/jobs/import-run.d.ts.map +1 -0
- package/dist/jobs/import-run.js +290 -0
- package/dist/jobs/import-run.js.map +1 -0
- package/dist/jobs/llm-run.d.ts +73 -0
- package/dist/jobs/llm-run.d.ts.map +1 -0
- package/dist/jobs/llm-run.js +225 -0
- package/dist/jobs/llm-run.js.map +1 -0
- package/dist/jobs/register.d.ts +90 -0
- package/dist/jobs/register.d.ts.map +1 -0
- package/dist/jobs/register.js +121 -0
- package/dist/jobs/register.js.map +1 -0
- package/dist/jobs/registry.d.ts +74 -0
- package/dist/jobs/registry.d.ts.map +1 -0
- package/dist/jobs/registry.js +78 -0
- package/dist/jobs/registry.js.map +1 -0
- package/dist/jobs/report-run.d.ts +64 -0
- package/dist/jobs/report-run.d.ts.map +1 -0
- package/dist/jobs/report-run.js +221 -0
- package/dist/jobs/report-run.js.map +1 -0
- package/dist/jobs/scheduler.d.ts +72 -0
- package/dist/jobs/scheduler.d.ts.map +1 -0
- package/dist/jobs/scheduler.js +121 -0
- package/dist/jobs/scheduler.js.map +1 -0
- package/dist/jobs/worker.d.ts +110 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +282 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/llm/apply-service.d.ts +150 -0
- package/dist/llm/apply-service.d.ts.map +1 -0
- package/dist/llm/apply-service.js +463 -0
- package/dist/llm/apply-service.js.map +1 -0
- package/dist/llm/apply-undo-store.d.ts +50 -0
- package/dist/llm/apply-undo-store.d.ts.map +1 -0
- package/dist/llm/apply-undo-store.js +60 -0
- package/dist/llm/apply-undo-store.js.map +1 -0
- package/dist/llm/direct-runner.d.ts +146 -0
- package/dist/llm/direct-runner.d.ts.map +1 -0
- package/dist/llm/direct-runner.js +204 -0
- package/dist/llm/direct-runner.js.map +1 -0
- package/dist/llm/prompt-service.d.ts +90 -0
- package/dist/llm/prompt-service.d.ts.map +1 -0
- package/dist/llm/prompt-service.js +93 -0
- package/dist/llm/prompt-service.js.map +1 -0
- package/dist/llm/provider-resolver.d.ts +25 -0
- package/dist/llm/provider-resolver.d.ts.map +1 -0
- package/dist/llm/provider-resolver.js +81 -0
- package/dist/llm/provider-resolver.js.map +1 -0
- package/dist/llm/run-service.d.ts +215 -0
- package/dist/llm/run-service.d.ts.map +1 -0
- package/dist/llm/run-service.js +343 -0
- package/dist/llm/run-service.js.map +1 -0
- package/dist/llm/stats-collector.d.ts +40 -0
- package/dist/llm/stats-collector.d.ts.map +1 -0
- package/dist/llm/stats-collector.js +74 -0
- package/dist/llm/stats-collector.js.map +1 -0
- package/dist/log-scrub.d.ts +58 -0
- package/dist/log-scrub.d.ts.map +1 -0
- package/dist/log-scrub.js +103 -0
- package/dist/log-scrub.js.map +1 -0
- package/dist/meta/store.d.ts +96 -0
- package/dist/meta/store.d.ts.map +1 -0
- package/dist/meta/store.js +192 -0
- package/dist/meta/store.js.map +1 -0
- package/dist/notifications/notify.d.ts +43 -0
- package/dist/notifications/notify.d.ts.map +1 -0
- package/dist/notifications/notify.js +42 -0
- package/dist/notifications/notify.js.map +1 -0
- package/dist/plugins/auth.d.ts +42 -0
- package/dist/plugins/auth.d.ts.map +1 -0
- package/dist/plugins/auth.js +84 -0
- package/dist/plugins/auth.js.map +1 -0
- package/dist/plugins/core.d.ts +48 -0
- package/dist/plugins/core.d.ts.map +1 -0
- package/dist/plugins/core.js +248 -0
- package/dist/plugins/core.js.map +1 -0
- package/dist/plugins/rbac.d.ts +54 -0
- package/dist/plugins/rbac.d.ts.map +1 -0
- package/dist/plugins/rbac.js +103 -0
- package/dist/plugins/rbac.js.map +1 -0
- package/dist/plugins/static.d.ts +12 -0
- package/dist/plugins/static.d.ts.map +1 -0
- package/dist/plugins/static.js +36 -0
- package/dist/plugins/static.js.map +1 -0
- package/dist/rbac/api-keys.d.ts +30 -0
- package/dist/rbac/api-keys.d.ts.map +1 -0
- package/dist/rbac/api-keys.js +41 -0
- package/dist/rbac/api-keys.js.map +1 -0
- package/dist/rbac/index.d.ts +6 -0
- package/dist/rbac/index.d.ts.map +1 -0
- package/dist/rbac/index.js +6 -0
- package/dist/rbac/index.js.map +1 -0
- package/dist/rbac/permissions.d.ts +107 -0
- package/dist/rbac/permissions.d.ts.map +1 -0
- package/dist/rbac/permissions.js +250 -0
- package/dist/rbac/permissions.js.map +1 -0
- package/dist/rbac/principal.d.ts +33 -0
- package/dist/rbac/principal.d.ts.map +1 -0
- package/dist/rbac/principal.js +31 -0
- package/dist/rbac/principal.js.map +1 -0
- package/dist/rbac/resolver.d.ts +26 -0
- package/dist/rbac/resolver.d.ts.map +1 -0
- package/dist/rbac/resolver.js +46 -0
- package/dist/rbac/resolver.js.map +1 -0
- package/dist/realtime/hub.d.ts +90 -0
- package/dist/realtime/hub.d.ts.map +1 -0
- package/dist/realtime/hub.js +146 -0
- package/dist/realtime/hub.js.map +1 -0
- package/dist/realtime/sse.d.ts +35 -0
- package/dist/realtime/sse.d.ts.map +1 -0
- package/dist/realtime/sse.js +88 -0
- package/dist/realtime/sse.js.map +1 -0
- package/dist/realtime/ws.d.ts +38 -0
- package/dist/realtime/ws.d.ts.map +1 -0
- package/dist/realtime/ws.js +124 -0
- package/dist/realtime/ws.js.map +1 -0
- package/dist/reports/schedule.d.ts +14 -0
- package/dist/reports/schedule.d.ts.map +1 -0
- package/dist/reports/schedule.js +63 -0
- package/dist/reports/schedule.js.map +1 -0
- package/dist/routes/about/index.d.ts +39 -0
- package/dist/routes/about/index.d.ts.map +1 -0
- package/dist/routes/about/index.js +73 -0
- package/dist/routes/about/index.js.map +1 -0
- package/dist/routes/about/schema.d.ts +50 -0
- package/dist/routes/about/schema.d.ts.map +1 -0
- package/dist/routes/about/schema.js +53 -0
- package/dist/routes/about/schema.js.map +1 -0
- package/dist/routes/api-keys/index.d.ts +11 -0
- package/dist/routes/api-keys/index.d.ts.map +1 -0
- package/dist/routes/api-keys/index.js +79 -0
- package/dist/routes/api-keys/index.js.map +1 -0
- package/dist/routes/api-keys/schema.d.ts +62 -0
- package/dist/routes/api-keys/schema.d.ts.map +1 -0
- package/dist/routes/api-keys/schema.js +37 -0
- package/dist/routes/api-keys/schema.js.map +1 -0
- package/dist/routes/audit/index.d.ts +11 -0
- package/dist/routes/audit/index.d.ts.map +1 -0
- package/dist/routes/audit/index.js +107 -0
- package/dist/routes/audit/index.js.map +1 -0
- package/dist/routes/audit/schema.d.ts +129 -0
- package/dist/routes/audit/schema.d.ts.map +1 -0
- package/dist/routes/audit/schema.js +43 -0
- package/dist/routes/audit/schema.js.map +1 -0
- package/dist/routes/auth/desktop-session.d.ts +48 -0
- package/dist/routes/auth/desktop-session.d.ts.map +1 -0
- package/dist/routes/auth/desktop-session.js +132 -0
- package/dist/routes/auth/desktop-session.js.map +1 -0
- package/dist/routes/auth/handlers.d.ts +21 -0
- package/dist/routes/auth/handlers.d.ts.map +1 -0
- package/dist/routes/auth/handlers.js +256 -0
- package/dist/routes/auth/handlers.js.map +1 -0
- package/dist/routes/auth/index.d.ts +27 -0
- package/dist/routes/auth/index.d.ts.map +1 -0
- package/dist/routes/auth/index.js +67 -0
- package/dist/routes/auth/index.js.map +1 -0
- package/dist/routes/auth/schema.d.ts +129 -0
- package/dist/routes/auth/schema.d.ts.map +1 -0
- package/dist/routes/auth/schema.js +84 -0
- package/dist/routes/auth/schema.js.map +1 -0
- package/dist/routes/bootstrap/handlers.d.ts +34 -0
- package/dist/routes/bootstrap/handlers.d.ts.map +1 -0
- package/dist/routes/bootstrap/handlers.js +96 -0
- package/dist/routes/bootstrap/handlers.js.map +1 -0
- package/dist/routes/bootstrap/index.d.ts +9 -0
- package/dist/routes/bootstrap/index.d.ts.map +1 -0
- package/dist/routes/bootstrap/index.js +16 -0
- package/dist/routes/bootstrap/index.js.map +1 -0
- package/dist/routes/bootstrap/schema.d.ts +177 -0
- package/dist/routes/bootstrap/schema.d.ts.map +1 -0
- package/dist/routes/bootstrap/schema.js +55 -0
- package/dist/routes/bootstrap/schema.js.map +1 -0
- package/dist/routes/connections/index.d.ts +21 -0
- package/dist/routes/connections/index.d.ts.map +1 -0
- package/dist/routes/connections/index.js +260 -0
- package/dist/routes/connections/index.js.map +1 -0
- package/dist/routes/connections/schema.d.ts +161 -0
- package/dist/routes/connections/schema.d.ts.map +1 -0
- package/dist/routes/connections/schema.js +91 -0
- package/dist/routes/connections/schema.js.map +1 -0
- package/dist/routes/data/index.d.ts +46 -0
- package/dist/routes/data/index.d.ts.map +1 -0
- package/dist/routes/data/index.js +508 -0
- package/dist/routes/data/index.js.map +1 -0
- package/dist/routes/data/schema.d.ts +128 -0
- package/dist/routes/data/schema.d.ts.map +1 -0
- package/dist/routes/data/schema.js +83 -0
- package/dist/routes/data/schema.js.map +1 -0
- package/dist/routes/desktop/index.d.ts +61 -0
- package/dist/routes/desktop/index.d.ts.map +1 -0
- package/dist/routes/desktop/index.js +91 -0
- package/dist/routes/desktop/index.js.map +1 -0
- package/dist/routes/desktop/schema.d.ts +71 -0
- package/dist/routes/desktop/schema.d.ts.map +1 -0
- package/dist/routes/desktop/schema.js +58 -0
- package/dist/routes/desktop/schema.js.map +1 -0
- package/dist/routes/desktop-capabilities/index.d.ts +9 -0
- package/dist/routes/desktop-capabilities/index.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/index.js +62 -0
- package/dist/routes/desktop-capabilities/index.js.map +1 -0
- package/dist/routes/desktop-capabilities/schema.d.ts +46 -0
- package/dist/routes/desktop-capabilities/schema.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/schema.js +30 -0
- package/dist/routes/desktop-capabilities/schema.js.map +1 -0
- package/dist/routes/desktop-demo/handlers.d.ts +94 -0
- package/dist/routes/desktop-demo/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-demo/handlers.js +182 -0
- package/dist/routes/desktop-demo/handlers.js.map +1 -0
- package/dist/routes/desktop-demo/index.d.ts +39 -0
- package/dist/routes/desktop-demo/index.d.ts.map +1 -0
- package/dist/routes/desktop-demo/index.js +73 -0
- package/dist/routes/desktop-demo/index.js.map +1 -0
- package/dist/routes/desktop-demo/schema.d.ts +17 -0
- package/dist/routes/desktop-demo/schema.d.ts.map +1 -0
- package/dist/routes/desktop-demo/schema.js +30 -0
- package/dist/routes/desktop-demo/schema.js.map +1 -0
- package/dist/routes/desktop-lan/index.d.ts +54 -0
- package/dist/routes/desktop-lan/index.d.ts.map +1 -0
- package/dist/routes/desktop-lan/index.js +33 -0
- package/dist/routes/desktop-lan/index.js.map +1 -0
- package/dist/routes/desktop-lan/schema.d.ts +24 -0
- package/dist/routes/desktop-lan/schema.d.ts.map +1 -0
- package/dist/routes/desktop-lan/schema.js +40 -0
- package/dist/routes/desktop-lan/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/handlers.d.ts +92 -0
- package/dist/routes/desktop-local-db/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/handlers.js +300 -0
- package/dist/routes/desktop-local-db/handlers.js.map +1 -0
- package/dist/routes/desktop-local-db/index.d.ts +39 -0
- package/dist/routes/desktop-local-db/index.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/index.js +83 -0
- package/dist/routes/desktop-local-db/index.js.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts +75 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.js +420 -0
- package/dist/routes/desktop-local-db/placeholder.js.map +1 -0
- package/dist/routes/desktop-local-db/schema.d.ts +50 -0
- package/dist/routes/desktop-local-db/schema.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/schema.js +71 -0
- package/dist/routes/desktop-local-db/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts +104 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js +419 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js.map +1 -0
- package/dist/routes/email-templates/index.d.ts +7 -0
- package/dist/routes/email-templates/index.d.ts.map +1 -0
- package/dist/routes/email-templates/index.js +70 -0
- package/dist/routes/email-templates/index.js.map +1 -0
- package/dist/routes/email-templates/schema.d.ts +54 -0
- package/dist/routes/email-templates/schema.d.ts.map +1 -0
- package/dist/routes/email-templates/schema.js +35 -0
- package/dist/routes/email-templates/schema.js.map +1 -0
- package/dist/routes/exports/index.d.ts +19 -0
- package/dist/routes/exports/index.d.ts.map +1 -0
- package/dist/routes/exports/index.js +145 -0
- package/dist/routes/exports/index.js.map +1 -0
- package/dist/routes/exports/schema.d.ts +183 -0
- package/dist/routes/exports/schema.d.ts.map +1 -0
- package/dist/routes/exports/schema.js +37 -0
- package/dist/routes/exports/schema.js.map +1 -0
- package/dist/routes/generate/index.d.ts +23 -0
- package/dist/routes/generate/index.d.ts.map +1 -0
- package/dist/routes/generate/index.js +80 -0
- package/dist/routes/generate/index.js.map +1 -0
- package/dist/routes/generate/schema.d.ts +43 -0
- package/dist/routes/generate/schema.d.ts.map +1 -0
- package/dist/routes/generate/schema.js +37 -0
- package/dist/routes/generate/schema.js.map +1 -0
- package/dist/routes/imports/index.d.ts +21 -0
- package/dist/routes/imports/index.d.ts.map +1 -0
- package/dist/routes/imports/index.js +288 -0
- package/dist/routes/imports/index.js.map +1 -0
- package/dist/routes/imports/schema.d.ts +292 -0
- package/dist/routes/imports/schema.d.ts.map +1 -0
- package/dist/routes/imports/schema.js +78 -0
- package/dist/routes/imports/schema.js.map +1 -0
- package/dist/routes/index.d.ts +11 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +8 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/jobs/index.d.ts +29 -0
- package/dist/routes/jobs/index.d.ts.map +1 -0
- package/dist/routes/jobs/index.js +175 -0
- package/dist/routes/jobs/index.js.map +1 -0
- package/dist/routes/jobs/schema.d.ts +170 -0
- package/dist/routes/jobs/schema.d.ts.map +1 -0
- package/dist/routes/jobs/schema.js +57 -0
- package/dist/routes/jobs/schema.js.map +1 -0
- package/dist/routes/llm/config-service.d.ts +48 -0
- package/dist/routes/llm/config-service.d.ts.map +1 -0
- package/dist/routes/llm/config-service.js +102 -0
- package/dist/routes/llm/config-service.js.map +1 -0
- package/dist/routes/llm/index.d.ts +69 -0
- package/dist/routes/llm/index.d.ts.map +1 -0
- package/dist/routes/llm/index.js +412 -0
- package/dist/routes/llm/index.js.map +1 -0
- package/dist/routes/llm/schema.d.ts +605 -0
- package/dist/routes/llm/schema.d.ts.map +1 -0
- package/dist/routes/llm/schema.js +238 -0
- package/dist/routes/llm/schema.js.map +1 -0
- package/dist/routes/me/handlers.d.ts +14 -0
- package/dist/routes/me/handlers.d.ts.map +1 -0
- package/dist/routes/me/handlers.js +88 -0
- package/dist/routes/me/handlers.js.map +1 -0
- package/dist/routes/me/index.d.ts +8 -0
- package/dist/routes/me/index.d.ts.map +1 -0
- package/dist/routes/me/index.js +17 -0
- package/dist/routes/me/index.js.map +1 -0
- package/dist/routes/me/schema.d.ts +270 -0
- package/dist/routes/me/schema.d.ts.map +1 -0
- package/dist/routes/me/schema.js +59 -0
- package/dist/routes/me/schema.js.map +1 -0
- package/dist/routes/me-views/index.d.ts +23 -0
- package/dist/routes/me-views/index.d.ts.map +1 -0
- package/dist/routes/me-views/index.js +76 -0
- package/dist/routes/me-views/index.js.map +1 -0
- package/dist/routes/me-views/schema.d.ts +44 -0
- package/dist/routes/me-views/schema.d.ts.map +1 -0
- package/dist/routes/me-views/schema.js +13 -0
- package/dist/routes/me-views/schema.js.map +1 -0
- package/dist/routes/notifications/index.d.ts +19 -0
- package/dist/routes/notifications/index.d.ts.map +1 -0
- package/dist/routes/notifications/index.js +123 -0
- package/dist/routes/notifications/index.js.map +1 -0
- package/dist/routes/notifications/schema.d.ts +122 -0
- package/dist/routes/notifications/schema.d.ts.map +1 -0
- package/dist/routes/notifications/schema.js +83 -0
- package/dist/routes/notifications/schema.js.map +1 -0
- package/dist/routes/onboarding/derive.d.ts +41 -0
- package/dist/routes/onboarding/derive.d.ts.map +1 -0
- package/dist/routes/onboarding/derive.js +30 -0
- package/dist/routes/onboarding/derive.js.map +1 -0
- package/dist/routes/onboarding/index.d.ts +26 -0
- package/dist/routes/onboarding/index.d.ts.map +1 -0
- package/dist/routes/onboarding/index.js +95 -0
- package/dist/routes/onboarding/index.js.map +1 -0
- package/dist/routes/onboarding/schema.d.ts +22 -0
- package/dist/routes/onboarding/schema.d.ts.map +1 -0
- package/dist/routes/onboarding/schema.js +22 -0
- package/dist/routes/onboarding/schema.js.map +1 -0
- package/dist/routes/pages/index.d.ts +26 -0
- package/dist/routes/pages/index.d.ts.map +1 -0
- package/dist/routes/pages/index.js +119 -0
- package/dist/routes/pages/index.js.map +1 -0
- package/dist/routes/pages/layout-schema.d.ts +19 -0
- package/dist/routes/pages/layout-schema.d.ts.map +1 -0
- package/dist/routes/pages/layout-schema.js +19 -0
- package/dist/routes/pages/layout-schema.js.map +1 -0
- package/dist/routes/pages/schema.d.ts +52 -0
- package/dist/routes/pages/schema.d.ts.map +1 -0
- package/dist/routes/pages/schema.js +35 -0
- package/dist/routes/pages/schema.js.map +1 -0
- package/dist/routes/roles/index.d.ts +17 -0
- package/dist/routes/roles/index.d.ts.map +1 -0
- package/dist/routes/roles/index.js +255 -0
- package/dist/routes/roles/index.js.map +1 -0
- package/dist/routes/roles/schema.d.ts +94 -0
- package/dist/routes/roles/schema.d.ts.map +1 -0
- package/dist/routes/roles/schema.js +57 -0
- package/dist/routes/roles/schema.js.map +1 -0
- package/dist/routes/scheduled-reports/index.d.ts +15 -0
- package/dist/routes/scheduled-reports/index.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/index.js +195 -0
- package/dist/routes/scheduled-reports/index.js.map +1 -0
- package/dist/routes/scheduled-reports/schema.d.ts +154 -0
- package/dist/routes/scheduled-reports/schema.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/schema.js +49 -0
- package/dist/routes/scheduled-reports/schema.js.map +1 -0
- package/dist/routes/schema/index.d.ts +24 -0
- package/dist/routes/schema/index.d.ts.map +1 -0
- package/dist/routes/schema/index.js +224 -0
- package/dist/routes/schema/index.js.map +1 -0
- package/dist/routes/schema/schema.d.ts +92 -0
- package/dist/routes/schema/schema.d.ts.map +1 -0
- package/dist/routes/schema/schema.js +64 -0
- package/dist/routes/schema/schema.js.map +1 -0
- package/dist/routes/schema-import/fallback-parser.d.ts +35 -0
- package/dist/routes/schema-import/fallback-parser.d.ts.map +1 -0
- package/dist/routes/schema-import/fallback-parser.js +349 -0
- package/dist/routes/schema-import/fallback-parser.js.map +1 -0
- package/dist/routes/schema-import/index.d.ts +43 -0
- package/dist/routes/schema-import/index.d.ts.map +1 -0
- package/dist/routes/schema-import/index.js +167 -0
- package/dist/routes/schema-import/index.js.map +1 -0
- package/dist/routes/schema-import/schema.d.ts +65 -0
- package/dist/routes/schema-import/schema.d.ts.map +1 -0
- package/dist/routes/schema-import/schema.js +40 -0
- package/dist/routes/schema-import/schema.js.map +1 -0
- package/dist/routes/search/index.d.ts +71 -0
- package/dist/routes/search/index.d.ts.map +1 -0
- package/dist/routes/search/index.js +361 -0
- package/dist/routes/search/index.js.map +1 -0
- package/dist/routes/search/schema.d.ts +125 -0
- package/dist/routes/search/schema.d.ts.map +1 -0
- package/dist/routes/search/schema.js +70 -0
- package/dist/routes/search/schema.js.map +1 -0
- package/dist/routes/settings/index.d.ts +24 -0
- package/dist/routes/settings/index.d.ts.map +1 -0
- package/dist/routes/settings/index.js +164 -0
- package/dist/routes/settings/index.js.map +1 -0
- package/dist/routes/settings/schema.d.ts +110 -0
- package/dist/routes/settings/schema.d.ts.map +1 -0
- package/dist/routes/settings/schema.js +71 -0
- package/dist/routes/settings/schema.js.map +1 -0
- package/dist/routes/setup/index.d.ts +29 -0
- package/dist/routes/setup/index.d.ts.map +1 -0
- package/dist/routes/setup/index.js +68 -0
- package/dist/routes/setup/index.js.map +1 -0
- package/dist/routes/setup/schema.d.ts +61 -0
- package/dist/routes/setup/schema.d.ts.map +1 -0
- package/dist/routes/setup/schema.js +47 -0
- package/dist/routes/setup/schema.js.map +1 -0
- package/dist/routes/system/handlers.d.ts +63 -0
- package/dist/routes/system/handlers.d.ts.map +1 -0
- package/dist/routes/system/handlers.js +121 -0
- package/dist/routes/system/handlers.js.map +1 -0
- package/dist/routes/system/index.d.ts +34 -0
- package/dist/routes/system/index.d.ts.map +1 -0
- package/dist/routes/system/index.js +18 -0
- package/dist/routes/system/index.js.map +1 -0
- package/dist/routes/system/schema.d.ts +93 -0
- package/dist/routes/system/schema.d.ts.map +1 -0
- package/dist/routes/system/schema.js +109 -0
- package/dist/routes/system/schema.js.map +1 -0
- package/dist/routes/views/index.d.ts +21 -0
- package/dist/routes/views/index.d.ts.map +1 -0
- package/dist/routes/views/index.js +155 -0
- package/dist/routes/views/index.js.map +1 -0
- package/dist/routes/views/schema.d.ts +127 -0
- package/dist/routes/views/schema.d.ts.map +1 -0
- package/dist/routes/views/schema.js +56 -0
- package/dist/routes/views/schema.js.map +1 -0
- package/dist/routes/widget-data/index.d.ts +29 -0
- package/dist/routes/widget-data/index.d.ts.map +1 -0
- package/dist/routes/widget-data/index.js +152 -0
- package/dist/routes/widget-data/index.js.map +1 -0
- package/dist/routes/widget-data/schema.d.ts +252 -0
- package/dist/routes/widget-data/schema.d.ts.map +1 -0
- package/dist/routes/widget-data/schema.js +44 -0
- package/dist/routes/widget-data/schema.js.map +1 -0
- package/dist/setup/service.d.ts +63 -0
- package/dist/setup/service.d.ts.map +1 -0
- package/dist/setup/service.js +103 -0
- package/dist/setup/service.js.map +1 -0
- package/dist/start.d.ts +12 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +28 -0
- package/dist/start.js.map +1 -0
- package/dist/telemetry/payload.d.ts +66 -0
- package/dist/telemetry/payload.d.ts.map +1 -0
- package/dist/telemetry/payload.js +69 -0
- package/dist/telemetry/payload.js.map +1 -0
- package/dist/telemetry/service.d.ts +67 -0
- package/dist/telemetry/service.d.ts.map +1 -0
- package/dist/telemetry/service.js +103 -0
- package/dist/telemetry/service.js.map +1 -0
- package/dist/telemetry/update-check.d.ts +79 -0
- package/dist/telemetry/update-check.d.ts.map +1 -0
- package/dist/telemetry/update-check.js +103 -0
- package/dist/telemetry/update-check.js.map +1 -0
- package/dist/version.d.ts +14 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +21 -0
- package/dist/version.js.map +1 -0
- package/dist/widget-data/cache.d.ts +35 -0
- package/dist/widget-data/cache.d.ts.map +1 -0
- package/dist/widget-data/cache.js +67 -0
- package/dist/widget-data/cache.js.map +1 -0
- package/dist/widget-data/compiler.d.ts +107 -0
- package/dist/widget-data/compiler.d.ts.map +1 -0
- package/dist/widget-data/compiler.js +362 -0
- package/dist/widget-data/compiler.js.map +1 -0
- package/dist/widget-data/shapers.d.ts +75 -0
- package/dist/widget-data/shapers.d.ts.map +1 -0
- package/dist/widget-data/shapers.js +128 -0
- package/dist/widget-data/shapers.js.map +1 -0
- package/dist/widget-data/stream-publisher.d.ts +42 -0
- package/dist/widget-data/stream-publisher.d.ts.map +1 -0
- package/dist/widget-data/stream-publisher.js +34 -0
- package/dist/widget-data/stream-publisher.js.map +1 -0
- package/package.json +79 -0
- package/vocabulary/llm-allowlist.json +76 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM page-row materialization (06-llm-assist.md §8.3 step 3).
|
|
3
|
+
*
|
|
4
|
+
* The apply executor seeds `origin: 'llm'` page rows with a minimal config —
|
|
5
|
+
* `{source, llmRunId}` for template pages, `{domain, tables, layout, source,
|
|
6
|
+
* llmRunId}` for dashboards — and defers the full §6.1 envelope to "the
|
|
7
|
+
* regeneration hook". This module IS that expansion. `runGeneration` calls it
|
|
8
|
+
* after every persist, so the post-apply hook AND any manual regeneration
|
|
9
|
+
* repair seed rows into envelopes the client can parse; `upsertGenerated`
|
|
10
|
+
* itself never touches non-generated origins (user delta wins, 04 §6.3), so
|
|
11
|
+
* without this pass a seed row would stay an invalid-config card forever.
|
|
12
|
+
*
|
|
13
|
+
* Failure is per-row and non-fatal: a table that is excluded from the run, a
|
|
14
|
+
* template whose required slot cannot fill, or an envelope the frozen contract
|
|
15
|
+
* rejects leaves the seed's config untouched, records a warning on the run,
|
|
16
|
+
* and DISABLES the row — a parked page beats the invalid-config card the
|
|
17
|
+
* client would otherwise render forever. Every later run retries; success
|
|
18
|
+
* re-enables.
|
|
19
|
+
*
|
|
20
|
+
* A successful expansion also syncs the ROW's nav projection (title, nav
|
|
21
|
+
* group, icon back-fill) from the validated envelope: the bootstrap tree and
|
|
22
|
+
* the client's `/p/$slug` resolver read the row columns, not the document, so
|
|
23
|
+
* without the sync a materialized llm page would stay invisible and
|
|
24
|
+
* unreachable. An §8.3 nav-group re-placement still wins — the envelope
|
|
25
|
+
* follows the row's group when one was stamped.
|
|
26
|
+
*/
|
|
27
|
+
import { composeRequestedArchetype, hashEnvelope } from '@adminium/engine';
|
|
28
|
+
import { pageEnvelopeSchema, widgetConfigSchema } from '@adminium/engine/config';
|
|
29
|
+
import { pagesRepo } from '@adminium/meta';
|
|
30
|
+
/** A stored config counts as materialized once it carries the envelope `v`. */
|
|
31
|
+
function isEnvelope(config) {
|
|
32
|
+
return typeof config === 'object' && config !== null && 'v' in config;
|
|
33
|
+
}
|
|
34
|
+
function seedOf(page) {
|
|
35
|
+
return typeof page.config === 'object' && page.config !== null
|
|
36
|
+
? page.config
|
|
37
|
+
: {};
|
|
38
|
+
}
|
|
39
|
+
/** The seed's bound table (`config.source.table`), or null. */
|
|
40
|
+
function seedTable(seed) {
|
|
41
|
+
const source = seed['source'];
|
|
42
|
+
if (typeof source !== 'object' || source === null)
|
|
43
|
+
return null;
|
|
44
|
+
const table = source['table'];
|
|
45
|
+
return typeof table === 'string' ? table : null;
|
|
46
|
+
}
|
|
47
|
+
/** Compose the §14 archetype envelope a template-page seed asked for. */
|
|
48
|
+
function templateEnvelope(page, seed, model, connectionId) {
|
|
49
|
+
const table = seedTable(seed);
|
|
50
|
+
if (table === null)
|
|
51
|
+
return { envelope: null, reason: 'seed carries no source.table' };
|
|
52
|
+
const built = composeRequestedArchetype(model, table, page.type, {
|
|
53
|
+
connectionId,
|
|
54
|
+
slug: page.slug,
|
|
55
|
+
id: page.id,
|
|
56
|
+
navOrder: page.navOrder,
|
|
57
|
+
});
|
|
58
|
+
if (built.envelope === null) {
|
|
59
|
+
const detail = built.warnings.map((w) => w.message).join('; ');
|
|
60
|
+
return {
|
|
61
|
+
envelope: null,
|
|
62
|
+
reason: detail || `table ${table} is not part of this run (excluded/system/join)`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// The row's nav column is authoritative for the tree; a §8.3 nav-group write
|
|
66
|
+
// may have re-placed the row after seeding, so the envelope follows the row.
|
|
67
|
+
const nav = built.envelope['nav'];
|
|
68
|
+
if (page.navGroup !== null)
|
|
69
|
+
nav['group'] = page.navGroup;
|
|
70
|
+
return { envelope: built.envelope, reason: '' };
|
|
71
|
+
}
|
|
72
|
+
/** Wrap a dashboard seed's bound layout (§8.3 `dashboard`+`widget`) per §6.1. */
|
|
73
|
+
function dashboardEnvelope(page, seed, connectionId) {
|
|
74
|
+
const layout = seed['layout'];
|
|
75
|
+
if (typeof layout !== 'object' || layout === null) {
|
|
76
|
+
return { envelope: null, reason: 'seed carries no config.layout' };
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
reason: '',
|
|
80
|
+
envelope: {
|
|
81
|
+
v: 1,
|
|
82
|
+
kind: 'dashboard',
|
|
83
|
+
id: page.id,
|
|
84
|
+
template: 'page-dashboard',
|
|
85
|
+
title: { key: `nav.${page.slug}`, fallback: page.title },
|
|
86
|
+
source: { connectionId, table: null },
|
|
87
|
+
nav: {
|
|
88
|
+
group: page.navGroup ?? 'workspace',
|
|
89
|
+
icon: page.icon ?? 'layout-dashboard',
|
|
90
|
+
order: page.navOrder,
|
|
91
|
+
slug: page.slug,
|
|
92
|
+
},
|
|
93
|
+
access: { minRole: 'viewer', permissions: [] },
|
|
94
|
+
config: {
|
|
95
|
+
domain: seed['domain'] ?? null,
|
|
96
|
+
tables: seed['tables'] ?? [],
|
|
97
|
+
layout,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Expand every still-seed `origin: 'llm'` page row of a connection into a
|
|
104
|
+
* validated §6.1 envelope. Idempotent — materialized rows (config carries `v`)
|
|
105
|
+
* are never re-touched, so a user's later layout edits survive regeneration.
|
|
106
|
+
*/
|
|
107
|
+
export async function materializeLlmPages(opts) {
|
|
108
|
+
const repo = pagesRepo(opts.meta);
|
|
109
|
+
const result = { materialized: [], warnings: [] };
|
|
110
|
+
/** Park a seed that cannot compose: warn + hide it from nav/GET until a run succeeds. */
|
|
111
|
+
const park = async (page, reason) => {
|
|
112
|
+
result.warnings.push(`llm page ${page.id} (${page.slug}) not materialized — ${reason}; page disabled until a regeneration can compose it`);
|
|
113
|
+
if (page.isEnabled) {
|
|
114
|
+
await repo.setEnabled(page.id, false, opts.at ?? Date.now());
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
for (const page of await repo.listForConnection(opts.connectionId)) {
|
|
118
|
+
if (page.origin !== 'llm' || isEnvelope(page.config))
|
|
119
|
+
continue;
|
|
120
|
+
const seed = seedOf(page);
|
|
121
|
+
const { envelope, reason } = page.type === 'page-dashboard'
|
|
122
|
+
? dashboardEnvelope(page, seed, opts.connectionId)
|
|
123
|
+
: templateEnvelope(page, seed, opts.model, opts.connectionId);
|
|
124
|
+
if (envelope === null) {
|
|
125
|
+
await park(page, reason);
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
// Provenance survives the expansion; the hash goes on last (it excludes
|
|
129
|
+
// only itself), then the frozen contract gets the final word.
|
|
130
|
+
const config = envelope['config'];
|
|
131
|
+
config['llmRunId'] = seed['llmRunId'] ?? null;
|
|
132
|
+
config['generatedHash'] = hashEnvelope(envelope);
|
|
133
|
+
const parsed = pageEnvelopeSchema.safeParse(envelope);
|
|
134
|
+
if (!parsed.success) {
|
|
135
|
+
const first = parsed.error.issues[0];
|
|
136
|
+
await park(page, `envelope invalid: ${first?.message ?? 'unknown'}`);
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (parsed.data.kind === 'dashboard') {
|
|
140
|
+
const layout = parsed.data.config['layout'];
|
|
141
|
+
const bad = layout.items.find((item) => !widgetConfigSchema.safeParse(item).success);
|
|
142
|
+
if (bad !== undefined) {
|
|
143
|
+
await park(page, 'a layout item fails the widget contract');
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Sync the row's nav projection (title/group/icon) from the envelope: the
|
|
148
|
+
// bootstrap tree and the `/p/$slug` resolver read the ROW columns, so a
|
|
149
|
+
// seed left with its apply-time `nav_group` (null, or an §8.3 llm group
|
|
150
|
+
// slug) would materialize into an unreachable page. The envelope already
|
|
151
|
+
// encodes the §8.3 precedence — a nav-group write on the row wins,
|
|
152
|
+
// otherwise the archetype's fixed group — so the row simply follows it.
|
|
153
|
+
const icon = envelope['nav']['icon'];
|
|
154
|
+
await repo.replaceConfig(page.id, parsed.data, {
|
|
155
|
+
icon: typeof icon === 'string' ? icon : null,
|
|
156
|
+
title: parsed.data.title.fallback,
|
|
157
|
+
navGroup: parsed.data.nav.group,
|
|
158
|
+
...(opts.at === undefined ? {} : { at: opts.at }),
|
|
159
|
+
});
|
|
160
|
+
if (!page.isEnabled) {
|
|
161
|
+
await repo.setEnabled(page.id, true, opts.at ?? Date.now());
|
|
162
|
+
}
|
|
163
|
+
result.materialized.push(page.id);
|
|
164
|
+
}
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=materialize-llm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materialize-llm.js","sourceRoot":"","sources":["../../src/generate/materialize-llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generation pipeline glue (M4-T08): latest classified snapshot (introspect
|
|
3
|
+
* first when none) → `generatePages()` (@adminium/engine) → validate every
|
|
4
|
+
* envelope against the frozen config contract (the server is the single
|
|
5
|
+
* write-time validator, 01-architecture.md §6.1) → persist idempotently via
|
|
6
|
+
* `pagesRepo.upsertGenerated`.
|
|
7
|
+
*
|
|
8
|
+
* Pure orchestration — no Fastify types here so the demo script and tests
|
|
9
|
+
* can drive it directly.
|
|
10
|
+
*/
|
|
11
|
+
import { type DatabaseModel, type GenerateIntent } from '@adminium/engine';
|
|
12
|
+
import { type PageEnvelope } from '@adminium/engine/config';
|
|
13
|
+
import { type GeneratedPageInput, type MetaDb, type UpsertGeneratedResult } from '@adminium/meta';
|
|
14
|
+
import type { ConnectionManager } from '../connections/manager.js';
|
|
15
|
+
export interface RunGenerationOptions {
|
|
16
|
+
manager: ConnectionManager;
|
|
17
|
+
meta: MetaDb;
|
|
18
|
+
connectionId: string;
|
|
19
|
+
createdBy?: string | null | undefined;
|
|
20
|
+
/** Overrides the connection's stored intent for this run (09 §8.4). */
|
|
21
|
+
intent?: GenerateIntent | undefined;
|
|
22
|
+
}
|
|
23
|
+
export interface GenerationRunResult {
|
|
24
|
+
snapshotId: string;
|
|
25
|
+
/** True when a fresh introspection ran because no snapshot existed. */
|
|
26
|
+
introspected: boolean;
|
|
27
|
+
intent: GenerateIntent;
|
|
28
|
+
pages: PageEnvelope[];
|
|
29
|
+
navGroups: string[];
|
|
30
|
+
warnings: string[];
|
|
31
|
+
persistence: UpsertGeneratedResult;
|
|
32
|
+
/** `origin: 'llm'` seed rows expanded into envelopes this run (06 §8.3). */
|
|
33
|
+
llmPagesMaterialized: number;
|
|
34
|
+
durationMs: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* M5-T02 table inclusion: when the wizard persisted
|
|
38
|
+
* `settings.includedTables` (PATCH /connections/:id), restrict the model to
|
|
39
|
+
* that set before generation. Join/system tables stay in the graph (they
|
|
40
|
+
* power M2M detection and are never paged anyway); relations and FK mirrors
|
|
41
|
+
* that point at excluded tables are dropped so envelopes cannot reference
|
|
42
|
+
* pages that will not exist.
|
|
43
|
+
*/
|
|
44
|
+
export declare function filterModelToIncludedTables(model: DatabaseModel, includedTables: readonly string[] | undefined): DatabaseModel;
|
|
45
|
+
/** Envelope → the opaque row shape `pagesRepo` persists. */
|
|
46
|
+
export declare function toGeneratedPageInput(envelope: PageEnvelope): GeneratedPageInput;
|
|
47
|
+
export declare function runGeneration(opts: RunGenerationOptions): Promise<GenerationRunResult>;
|
|
48
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/generate/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,uEAAuE;IACvE,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,qBAAqB,CAAC;IACnC,4EAA4E;IAC5E,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,aAAa,EACpB,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAC5C,aAAa,CAwBf;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,kBAAkB,CAW/E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgF5F"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generation pipeline glue (M4-T08): latest classified snapshot (introspect
|
|
3
|
+
* first when none) → `generatePages()` (@adminium/engine) → validate every
|
|
4
|
+
* envelope against the frozen config contract (the server is the single
|
|
5
|
+
* write-time validator, 01-architecture.md §6.1) → persist idempotently via
|
|
6
|
+
* `pagesRepo.upsertGenerated`.
|
|
7
|
+
*
|
|
8
|
+
* Pure orchestration — no Fastify types here so the demo script and tests
|
|
9
|
+
* can drive it directly.
|
|
10
|
+
*/
|
|
11
|
+
import { generatePages, hashEnvelope, parseDatabaseModel, } from '@adminium/engine';
|
|
12
|
+
import { pageEnvelopeSchema } from '@adminium/engine/config';
|
|
13
|
+
import { overridesRepo, pagesRepo, snapshotsRepo, } from '@adminium/meta';
|
|
14
|
+
import { activeTableLabels } from '../connections/effective-schema.js';
|
|
15
|
+
import { runIntrospection } from '../connections/introspect.js';
|
|
16
|
+
import { materializeLlmPages } from './materialize-llm.js';
|
|
17
|
+
/**
|
|
18
|
+
* M5-T02 table inclusion: when the wizard persisted
|
|
19
|
+
* `settings.includedTables` (PATCH /connections/:id), restrict the model to
|
|
20
|
+
* that set before generation. Join/system tables stay in the graph (they
|
|
21
|
+
* power M2M detection and are never paged anyway); relations and FK mirrors
|
|
22
|
+
* that point at excluded tables are dropped so envelopes cannot reference
|
|
23
|
+
* pages that will not exist.
|
|
24
|
+
*/
|
|
25
|
+
export function filterModelToIncludedTables(model, includedTables) {
|
|
26
|
+
if (includedTables === undefined || includedTables.length === 0)
|
|
27
|
+
return model;
|
|
28
|
+
const keep = new Set(includedTables);
|
|
29
|
+
const tables = model.tables.filter((table) => keep.has(table.id) || table.system || table.semantics?.role === 'join-table');
|
|
30
|
+
const ids = new Set(tables.map((table) => table.id));
|
|
31
|
+
return {
|
|
32
|
+
...model,
|
|
33
|
+
tables: tables.map((table) => ({
|
|
34
|
+
...table,
|
|
35
|
+
columns: table.columns.map((column) => column.references !== null && !ids.has(column.references.tableId)
|
|
36
|
+
? { ...column, references: null }
|
|
37
|
+
: column),
|
|
38
|
+
})),
|
|
39
|
+
relations: model.relations.filter((relation) => ids.has(relation.from.tableId) &&
|
|
40
|
+
ids.has(relation.to.tableId) &&
|
|
41
|
+
(relation.through === null || ids.has(relation.through.tableId))),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** Envelope → the opaque row shape `pagesRepo` persists. */
|
|
45
|
+
export function toGeneratedPageInput(envelope) {
|
|
46
|
+
return {
|
|
47
|
+
id: envelope.id,
|
|
48
|
+
slug: envelope.nav.slug ?? envelope.id.replace(/^page_/, ''),
|
|
49
|
+
type: envelope.template,
|
|
50
|
+
title: envelope.title.fallback,
|
|
51
|
+
icon: envelope.nav.icon,
|
|
52
|
+
navGroup: envelope.nav.group,
|
|
53
|
+
navOrder: envelope.nav.order,
|
|
54
|
+
config: envelope,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export async function runGeneration(opts) {
|
|
58
|
+
const { manager, meta, connectionId } = opts;
|
|
59
|
+
const startedAt = Date.now();
|
|
60
|
+
const snapshots = snapshotsRepo(meta);
|
|
61
|
+
const connection = await manager.mustFind(connectionId);
|
|
62
|
+
const intent = opts.intent ?? connection.settings.intent ?? 'full-admin';
|
|
63
|
+
let snapshot = await snapshots.latest(connectionId);
|
|
64
|
+
let introspected = false;
|
|
65
|
+
if (snapshot === null) {
|
|
66
|
+
const result = await runIntrospection({
|
|
67
|
+
manager,
|
|
68
|
+
meta,
|
|
69
|
+
connectionId,
|
|
70
|
+
createdBy: opts.createdBy ?? null,
|
|
71
|
+
});
|
|
72
|
+
snapshot = result.snapshot;
|
|
73
|
+
introspected = true;
|
|
74
|
+
}
|
|
75
|
+
// Snapshots store the classified model (connections/introspect.ts).
|
|
76
|
+
const model = filterModelToIncludedTables(parseDatabaseModel(snapshot.schema), connection.settings.includedTables);
|
|
77
|
+
// Overlay effective table labels (user `table.label` > accepted `llm.label`,
|
|
78
|
+
// provenance 06 §8.3) onto the parsed model BEFORE generation, so every
|
|
79
|
+
// renamed table's page titles — and through `adminium_pages`, the sidebar
|
|
80
|
+
// nav — carry the rename. The stored snapshot stays label-free; this is a
|
|
81
|
+
// per-run, in-memory attachment. L10n bundles resolve to the connection's
|
|
82
|
+
// default locale (en_US in v1).
|
|
83
|
+
const overrides = await overridesRepo(meta).listForConnection(connectionId, { status: 'active' });
|
|
84
|
+
const labels = activeTableLabels(overrides);
|
|
85
|
+
if (labels.size > 0) {
|
|
86
|
+
for (const table of model.tables) {
|
|
87
|
+
const label = labels.get(table.id);
|
|
88
|
+
if (label !== undefined)
|
|
89
|
+
table.label = label;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const { pages, warnings } = generatePages(model, { connectionId, intent });
|
|
93
|
+
// Belt and braces: the engine validated on emit; the server re-validates
|
|
94
|
+
// at the write boundary because it is the single write-time authority.
|
|
95
|
+
const validated = pages.map((page) => pageEnvelopeSchema.parse(page));
|
|
96
|
+
const persistence = await pagesRepo(meta).upsertGenerated(connectionId, validated.map(toGeneratedPageInput),
|
|
97
|
+
// `hashEnvelope` arms the H5 edited-page guard (04 §6.3 "user delta wins"):
|
|
98
|
+
// stored documents whose embedded generatedHash went stale were edited by a
|
|
99
|
+
// human and are skipped, not overwritten.
|
|
100
|
+
{ snapshotId: snapshot.id, createdBy: opts.createdBy ?? null, hashEnvelope });
|
|
101
|
+
for (const id of persistence.skippedEdited) {
|
|
102
|
+
warnings.push(`page ${id} was edited after generation — kept as-is (user delta wins, 04 §6.3)`);
|
|
103
|
+
}
|
|
104
|
+
for (const id of persistence.keptEdited) {
|
|
105
|
+
warnings.push(`page ${id} is no longer generated but was edited by hand — kept instead of pruned (user delta wins, 04 §6.3)`);
|
|
106
|
+
}
|
|
107
|
+
// §8.3 step 3 tail: expand `origin: 'llm'` seed rows into real envelopes.
|
|
108
|
+
const llm = await materializeLlmPages({ meta, model, connectionId });
|
|
109
|
+
warnings.push(...llm.warnings);
|
|
110
|
+
const navGroups = [...new Set(validated.map((page) => page.nav.group))];
|
|
111
|
+
return {
|
|
112
|
+
snapshotId: snapshot.id,
|
|
113
|
+
introspected,
|
|
114
|
+
intent,
|
|
115
|
+
pages: validated,
|
|
116
|
+
navGroups,
|
|
117
|
+
warnings,
|
|
118
|
+
persistence,
|
|
119
|
+
llmPagesMaterialized: llm.materialized.length,
|
|
120
|
+
durationMs: Date.now() - startedAt,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/generate/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAqB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,aAAa,EACb,SAAS,EACT,aAAa,GAId,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAyB3D;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAoB,EACpB,cAA6C;IAE7C,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,KAAK,YAAY,CACxF,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO;QACL,GAAG,KAAK;QACR,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC7B,GAAG,KAAK;YACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC/D,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBACjC,CAAC,CAAC,MAAM,CACX;SACF,CAAC,CAAC;QACH,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAC/B,CAAC,QAAQ,EAAE,EAAE,CACX,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC;YAC5B,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACnE;KACF,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB,CAAC,QAAsB;IACzD,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5D,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ;QAC9B,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI;QACvB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;QAC5B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;QAC5B,MAAM,EAAE,QAAQ;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC;IAEzE,IAAI,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YACpC,OAAO;YACP,IAAI;YACJ,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;SAClC,CAAC,CAAC;QACH,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,oEAAoE;IACpE,MAAM,KAAK,GAAG,2BAA2B,CACvC,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,EACnC,UAAU,CAAC,QAAQ,CAAC,cAAc,CACnC,CAAC;IAEF,6EAA6E;IAC7E,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,gCAAgC;IAChC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;IAE3E,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtE,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,eAAe,CACvD,YAAY,EACZ,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACnC,4EAA4E;IAC5E,4EAA4E;IAC5E,0CAA0C;IAC1C,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,YAAY,EAAE,CAC7E,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,sEAAsE,CAAC,CAAC;IAClG,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CACX,QAAQ,EAAE,oGAAoG,CAC/G,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACrE,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,YAAY;QACZ,MAAM;QACN,KAAK,EAAE,SAAS;QAChB,SAAS;QACT,QAAQ;QACR,WAAW;QACX,oBAAoB,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;QAC7C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export { buildLogger, buildServer, REDACT_PATHS, type AdminiumServer, type BuildLoggerOptions, type BuildServerOptions, } from './app.js';
|
|
2
|
+
export { start, type StartOptions } from './start.js';
|
|
3
|
+
export { AppError, ConflictError, errorEnvelope, ForbiddenError, NotFoundError, RateLimitedError, UnauthorizedError, ValidationFailedError, type ErrorCode, type ErrorEnvelope, } from './errors.js';
|
|
4
|
+
export { API_PREFIX, registerRoutes } from './routes/index.js';
|
|
5
|
+
export { corePlugin, type CorePluginOptions } from './plugins/core.js';
|
|
6
|
+
export { staticPlugin, type StaticPluginOptions } from './plugins/static.js';
|
|
7
|
+
export { metaDialect, systemHealthzReply, systemInfoReply, type SystemHealthzReply, type SystemInfoReply, } from './routes/system/schema.js';
|
|
8
|
+
export { APP_VERSION } from './version.js';
|
|
9
|
+
export { EnvValidationError, LOG_LEVELS, envSchema, formatEnvErrorTable, loadEnv, type Env, type EnvWriter, } from './config/env.js';
|
|
10
|
+
export { ENC_TOKEN_PREFIX, SecretFormatError, SecretIntegrityError, decryptSecret, deriveKey, encryptSecret, isEncryptedSecret, } from './config/secrets.js';
|
|
11
|
+
export { BOOTSTRAP_FILENAME, BootstrapFileError, bootstrapPath, bootstrapSchema, readBootstrap, writeBootstrap, type Bootstrap, } from './config/bootstrap.js';
|
|
12
|
+
/**
|
|
13
|
+
* THE COMPOSITION ROOT (see `compose.ts`) — the complete server, not the
|
|
14
|
+
* skeleton.
|
|
15
|
+
*
|
|
16
|
+
* `buildServer` above is exported and `composeServer` was not, which made the
|
|
17
|
+
* public API of this package a trap: the only documented way in built the six
|
|
18
|
+
* `/api/v1` namespaces that need no injected services and silently omitted the
|
|
19
|
+
* other eleven the dashboard calls. That is precisely the M10 bug — a hollow API
|
|
20
|
+
* whose connect wizard 404s — and 11-electron.md §3 walks the next wrapper
|
|
21
|
+
* straight into it by describing the Electron entry as importing "the exported
|
|
22
|
+
* `buildServer()` factory". Exporting the real root is what lets that wrapper be
|
|
23
|
+
* correct: 01 §4's "only the wrapper differs" requires the thing that does not
|
|
24
|
+
* differ to be reachable from outside.
|
|
25
|
+
*/
|
|
26
|
+
export { composeServer, TELEMETRY_CRON, TELEMETRY_JITTER_MS, TELEMETRY_SCHEDULE_NAME, type ComposedServer, type ComposeServerOptions, } from './compose.js';
|
|
27
|
+
/**
|
|
28
|
+
* The idempotent boot bootstrap (07-meta-store.md §6) — re-exported, not
|
|
29
|
+
* re-implemented.
|
|
30
|
+
*
|
|
31
|
+
* `cli/commands/start.ts` imports `firstRun` straight from `@adminium/meta`
|
|
32
|
+
* because it lives INSIDE this package. A wrapper outside it cannot: the
|
|
33
|
+
* 01-architecture.md §2.3 matrix gives `@adminium/desktop` exactly two inputs,
|
|
34
|
+
* "`@adminium/server` (spawned)" and "dashboard build output", so the Electron
|
|
35
|
+
* utilityProcess entry has no legal path to `@adminium/meta`. Without this line
|
|
36
|
+
* its only options are to grow a banned dependency edge or to call
|
|
37
|
+
* `applyMigrations` instead — and the second one is the M10 bug: migrations
|
|
38
|
+
* create `adminium_roles` but nothing in the ledger SEEDS it, so a
|
|
39
|
+
* migrate-only boot serves a first-run wizard whose `POST /setup/super-admin`
|
|
40
|
+
* dies in `createFirstSuperAdmin` ("built-in roles missing") permanently, the
|
|
41
|
+
* claim row rolling back with every retry. On desktop that wizard is the app's
|
|
42
|
+
* front door (11-electron.md §6), so the very first launch would dead-end.
|
|
43
|
+
*
|
|
44
|
+
* `firstRun` is the documented "safe to run at every boot" entry point: migrate,
|
|
45
|
+
* seed the built-in roles, seed `system.*`. Exporting it makes the correct call
|
|
46
|
+
* the reachable one for every wrapper, which is the whole point of 01 §4's "only
|
|
47
|
+
* the wrapper differs".
|
|
48
|
+
*/
|
|
49
|
+
export { firstRun, type FirstRunResult } from '@adminium/meta';
|
|
50
|
+
/**
|
|
51
|
+
* The newest migration this build ships (11-electron.md §9, 11-T12).
|
|
52
|
+
*
|
|
53
|
+
* Re-exported for the same reason `firstRun` above is: the Electron
|
|
54
|
+
* utilityProcess entry has no legal path to `@adminium/meta` (01 §2.3 gives
|
|
55
|
+
* `@adminium/desktop` exactly two inputs), and it needs this string to tell the
|
|
56
|
+
* main process how new the app is — which is what lets main refuse a backup
|
|
57
|
+
* whose `metaMigrationVersion` is newer than itself BEFORE it moves any data
|
|
58
|
+
* aside. Computed here rather than restated, so it cannot fall behind the
|
|
59
|
+
* ledger it names.
|
|
60
|
+
*/
|
|
61
|
+
export declare const LATEST_META_MIGRATION: string;
|
|
62
|
+
export { BACKUP_CONFIG_PATH, BACKUP_DATABASES_DIR, BACKUP_FILE_PATTERN, BACKUP_FORMAT_VERSION, BACKUP_MANIFEST_PATH, BACKUP_META_PATH, BACKUP_SLUG_PATTERN, PRE_RESTORE_PREFIX, backupDatabasePath, backupFileName, backupManifestSchema, compareMetaMigrationVersion, deriveDatabaseSlug, preRestoreDirName, sha256Hex, uniqueSlug, type BackupDatabaseEntry, type BackupExternalDatabase, type BackupLocalDatabase, type BackupManifest, type BackupMetaEntry, type BackupVersionOrder, } from './backup/format.js';
|
|
63
|
+
export { BACKUPS_DIR, BACKUP_STAGING_DIR, BackupRedactionError, DEFAULT_AUTO_BACKUP_KEEP, createBackup, rotateBackups, rotateBackupsOnDisk, type CreateBackupOptions, type CreateBackupResult, type RotateBackupsResult, } from './backup/backup-service.js';
|
|
64
|
+
export { BACKUP_NOTIFICATION_KIND } from './backup/notify.js';
|
|
65
|
+
/**
|
|
66
|
+
* The session cookie's name (08-server-api.md §2.1).
|
|
67
|
+
*
|
|
68
|
+
* Exported because the Electron main process has to send it: §9's backup route
|
|
69
|
+
* is session-guarded and main calls it carrying the WINDOW'S cookie, read out of
|
|
70
|
+
* Electron's own cookie jar (`main/index.ts`'s `electronBackupTransport`). Main
|
|
71
|
+
* cannot import this at runtime — that would load Fastify into the main process
|
|
72
|
+
* to read a string — so it restates the name and pins it here with a test.
|
|
73
|
+
*/
|
|
74
|
+
export { SESSION_COOKIE } from './auth/sessions.js';
|
|
75
|
+
export { desktopRoutes, type DesktopRoutesDeps } from './routes/desktop/index.js';
|
|
76
|
+
export { desktopBackupBody, desktopBackupReply, type DesktopBackupBody, type DesktopBackupReply, } from './routes/desktop/schema.js';
|
|
77
|
+
export { desktopCapabilityRoutes, type DesktopCapabilityRoutesDeps, } from './routes/desktop-capabilities/index.js';
|
|
78
|
+
export { capabilityIdSchema, isKnownCapabilityId, KNOWN_CAPABILITY_IDS, type KnownCapabilityId, } from './capabilities/catalog.js';
|
|
79
|
+
export type { CapabilityGrant } from '@adminium/meta';
|
|
80
|
+
export { META_URL_KEY_SALT, MetaDriverMissingError, MetaUrlError, connectMetaStore, embeddedMetaWarning, metaEngineFromUrl, metaUrlCryptoFromSecret, openMetaStore, resolveMetaUrl, sqlitePathFromUrl, type ConnectMetaStoreOptions, type MetaEngine, type MetaStoreHandle, type MetaUrlCrypto, type MetaUrlSource, type ResolveMetaUrlOptions, type ResolvedMetaUrl, } from './meta/store.js';
|
|
81
|
+
export { COMMANDS, findCommand, runCli, type RunCliOptions } from './cli/run.js';
|
|
82
|
+
export { defaultCliDeps, displayUrl, loadCliEnv, openRuntime, startServer, type CliDeps, type CliRuntime, type EnvOverrides, type OpenRuntimeOptions, type StartedServer, } from './cli/runtime.js';
|
|
83
|
+
export { BUNDLED_DASHBOARD_DIR, resolveStaticRoot, staticRootCandidates } from './cli/static-root.js';
|
|
84
|
+
export { CliError, CliUsageError, EXIT_ERROR, EXIT_NOTHING_ACCEPTED, EXIT_OK, EXIT_VALIDATION_FAILED, type ExitCode, } from './cli/exit.js';
|
|
85
|
+
export { EXPORT_ZIP_MANIFEST_VERSION, exportZip, type ExportZip, type ExportZipOptions, type ExportZipResult, } from './export/zip-service.js';
|
|
86
|
+
export { ImportZipError, importZip, type ImportZip, type ImportZipOptions, type ImportZipResult, } from './export/import-service.js';
|
|
87
|
+
export { PlaintextSecretError } from './export/redaction.js';
|
|
88
|
+
export type { BundleManifest, ConfigBundle } from './export/bundle.js';
|
|
89
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @adminium/server — Fastify 5 application (08-server-api.md §1) plus the M0
|
|
3
|
+
* config layer (env, secrets, bootstrap file). `buildServer()` assembles the
|
|
4
|
+
* app; `start()` runs the boot sequence and listens (01-architecture.md §8.1 —
|
|
5
|
+
* meta connect/migration gates join in a later wave).
|
|
6
|
+
*/
|
|
7
|
+
import { ALL_MIGRATIONS } from '@adminium/meta';
|
|
8
|
+
export { buildLogger, buildServer, REDACT_PATHS, } from './app.js';
|
|
9
|
+
export { start } from './start.js';
|
|
10
|
+
export { AppError, ConflictError, errorEnvelope, ForbiddenError, NotFoundError, RateLimitedError, UnauthorizedError, ValidationFailedError, } from './errors.js';
|
|
11
|
+
export { API_PREFIX, registerRoutes } from './routes/index.js';
|
|
12
|
+
export { corePlugin } from './plugins/core.js';
|
|
13
|
+
export { staticPlugin } from './plugins/static.js';
|
|
14
|
+
export { metaDialect, systemHealthzReply, systemInfoReply, } from './routes/system/schema.js';
|
|
15
|
+
export { APP_VERSION } from './version.js';
|
|
16
|
+
export { EnvValidationError, LOG_LEVELS, envSchema, formatEnvErrorTable, loadEnv, } from './config/env.js';
|
|
17
|
+
export { ENC_TOKEN_PREFIX, SecretFormatError, SecretIntegrityError, decryptSecret, deriveKey, encryptSecret, isEncryptedSecret, } from './config/secrets.js';
|
|
18
|
+
export { BOOTSTRAP_FILENAME, BootstrapFileError, bootstrapPath, bootstrapSchema, readBootstrap, writeBootstrap, } from './config/bootstrap.js';
|
|
19
|
+
/**
|
|
20
|
+
* THE COMPOSITION ROOT (see `compose.ts`) — the complete server, not the
|
|
21
|
+
* skeleton.
|
|
22
|
+
*
|
|
23
|
+
* `buildServer` above is exported and `composeServer` was not, which made the
|
|
24
|
+
* public API of this package a trap: the only documented way in built the six
|
|
25
|
+
* `/api/v1` namespaces that need no injected services and silently omitted the
|
|
26
|
+
* other eleven the dashboard calls. That is precisely the M10 bug — a hollow API
|
|
27
|
+
* whose connect wizard 404s — and 11-electron.md §3 walks the next wrapper
|
|
28
|
+
* straight into it by describing the Electron entry as importing "the exported
|
|
29
|
+
* `buildServer()` factory". Exporting the real root is what lets that wrapper be
|
|
30
|
+
* correct: 01 §4's "only the wrapper differs" requires the thing that does not
|
|
31
|
+
* differ to be reachable from outside.
|
|
32
|
+
*/
|
|
33
|
+
export { composeServer, TELEMETRY_CRON, TELEMETRY_JITTER_MS, TELEMETRY_SCHEDULE_NAME, } from './compose.js';
|
|
34
|
+
/**
|
|
35
|
+
* The idempotent boot bootstrap (07-meta-store.md §6) — re-exported, not
|
|
36
|
+
* re-implemented.
|
|
37
|
+
*
|
|
38
|
+
* `cli/commands/start.ts` imports `firstRun` straight from `@adminium/meta`
|
|
39
|
+
* because it lives INSIDE this package. A wrapper outside it cannot: the
|
|
40
|
+
* 01-architecture.md §2.3 matrix gives `@adminium/desktop` exactly two inputs,
|
|
41
|
+
* "`@adminium/server` (spawned)" and "dashboard build output", so the Electron
|
|
42
|
+
* utilityProcess entry has no legal path to `@adminium/meta`. Without this line
|
|
43
|
+
* its only options are to grow a banned dependency edge or to call
|
|
44
|
+
* `applyMigrations` instead — and the second one is the M10 bug: migrations
|
|
45
|
+
* create `adminium_roles` but nothing in the ledger SEEDS it, so a
|
|
46
|
+
* migrate-only boot serves a first-run wizard whose `POST /setup/super-admin`
|
|
47
|
+
* dies in `createFirstSuperAdmin` ("built-in roles missing") permanently, the
|
|
48
|
+
* claim row rolling back with every retry. On desktop that wizard is the app's
|
|
49
|
+
* front door (11-electron.md §6), so the very first launch would dead-end.
|
|
50
|
+
*
|
|
51
|
+
* `firstRun` is the documented "safe to run at every boot" entry point: migrate,
|
|
52
|
+
* seed the built-in roles, seed `system.*`. Exporting it makes the correct call
|
|
53
|
+
* the reachable one for every wrapper, which is the whole point of 01 §4's "only
|
|
54
|
+
* the wrapper differs".
|
|
55
|
+
*/
|
|
56
|
+
export { firstRun } from '@adminium/meta';
|
|
57
|
+
/**
|
|
58
|
+
* The newest migration this build ships (11-electron.md §9, 11-T12).
|
|
59
|
+
*
|
|
60
|
+
* Re-exported for the same reason `firstRun` above is: the Electron
|
|
61
|
+
* utilityProcess entry has no legal path to `@adminium/meta` (01 §2.3 gives
|
|
62
|
+
* `@adminium/desktop` exactly two inputs), and it needs this string to tell the
|
|
63
|
+
* main process how new the app is — which is what lets main refuse a backup
|
|
64
|
+
* whose `metaMigrationVersion` is newer than itself BEFORE it moves any data
|
|
65
|
+
* aside. Computed here rather than restated, so it cannot fall behind the
|
|
66
|
+
* ledger it names.
|
|
67
|
+
*/
|
|
68
|
+
export const LATEST_META_MIGRATION = (() => {
|
|
69
|
+
const latest = ALL_MIGRATIONS[ALL_MIGRATIONS.length - 1]?.name;
|
|
70
|
+
if (latest === undefined) {
|
|
71
|
+
throw new Error('@adminium/meta shipped an empty migration ledger — this build is broken.');
|
|
72
|
+
}
|
|
73
|
+
return latest;
|
|
74
|
+
})();
|
|
75
|
+
// The §9 desktop backup format, frozen at formatVersion 1. Exported because it
|
|
76
|
+
// is a CONTRACT, not an implementation: the Electron main process validates an
|
|
77
|
+
// archive against these types before a restore (`import type` only — see
|
|
78
|
+
// `apps/desktop/src/main/backup-archive.ts`), and the M10 CLI's import reads the
|
|
79
|
+
// same manifest out of the same zip.
|
|
80
|
+
export { BACKUP_CONFIG_PATH, BACKUP_DATABASES_DIR, BACKUP_FILE_PATTERN, BACKUP_FORMAT_VERSION, BACKUP_MANIFEST_PATH, BACKUP_META_PATH, BACKUP_SLUG_PATTERN, PRE_RESTORE_PREFIX, backupDatabasePath, backupFileName, backupManifestSchema, compareMetaMigrationVersion, deriveDatabaseSlug, preRestoreDirName, sha256Hex, uniqueSlug, } from './backup/format.js';
|
|
81
|
+
export { BACKUPS_DIR, BACKUP_STAGING_DIR, BackupRedactionError, DEFAULT_AUTO_BACKUP_KEEP, createBackup, rotateBackups, rotateBackupsOnDisk, } from './backup/backup-service.js';
|
|
82
|
+
export { BACKUP_NOTIFICATION_KIND } from './backup/notify.js';
|
|
83
|
+
/**
|
|
84
|
+
* The session cookie's name (08-server-api.md §2.1).
|
|
85
|
+
*
|
|
86
|
+
* Exported because the Electron main process has to send it: §9's backup route
|
|
87
|
+
* is session-guarded and main calls it carrying the WINDOW'S cookie, read out of
|
|
88
|
+
* Electron's own cookie jar (`main/index.ts`'s `electronBackupTransport`). Main
|
|
89
|
+
* cannot import this at runtime — that would load Fastify into the main process
|
|
90
|
+
* to read a string — so it restates the name and pins it here with a test.
|
|
91
|
+
*/
|
|
92
|
+
export { SESSION_COOKIE } from './auth/sessions.js';
|
|
93
|
+
export { desktopRoutes } from './routes/desktop/index.js';
|
|
94
|
+
export { desktopBackupBody, desktopBackupReply, } from './routes/desktop/schema.js';
|
|
95
|
+
// §12 capability plumbing. The main process reaches the grant table over the
|
|
96
|
+
// loopback REST API (`main/capabilities/host.ts`'s grant reader), so it imports
|
|
97
|
+
// the grant SHAPE and the closed id vocabulary from here — the same "restate the
|
|
98
|
+
// name and pin it with a test" arrangement `SESSION_COOKIE` and the backup format
|
|
99
|
+
// use, and for the same reason: main must not load Fastify to read a string.
|
|
100
|
+
export { desktopCapabilityRoutes, } from './routes/desktop-capabilities/index.js';
|
|
101
|
+
export { capabilityIdSchema, isKnownCapabilityId, KNOWN_CAPABILITY_IDS, } from './capabilities/catalog.js';
|
|
102
|
+
// Meta-store resolution + connection (01 §3.1/§7.2). The wrappers — CLI today,
|
|
103
|
+
// Docker/Electron next — all answer "where does the meta store live?" here.
|
|
104
|
+
export { META_URL_KEY_SALT, MetaDriverMissingError, MetaUrlError, connectMetaStore, embeddedMetaWarning, metaEngineFromUrl, metaUrlCryptoFromSecret, openMetaStore, resolveMetaUrl, sqlitePathFromUrl, } from './meta/store.js';
|
|
105
|
+
// The `adminium` CLI (01 §4.1). `runCli` returns an exit code and never touches
|
|
106
|
+
// `process` — `src/cli/index.ts` is the only module that exits.
|
|
107
|
+
export { COMMANDS, findCommand, runCli } from './cli/run.js';
|
|
108
|
+
export { defaultCliDeps, displayUrl, loadCliEnv, openRuntime, startServer, } from './cli/runtime.js';
|
|
109
|
+
export { BUNDLED_DASHBOARD_DIR, resolveStaticRoot, staticRootCandidates } from './cli/static-root.js';
|
|
110
|
+
export { CliError, CliUsageError, EXIT_ERROR, EXIT_NOTHING_ACCEPTED, EXIT_OK, EXIT_VALIDATION_FAILED, } from './cli/exit.js';
|
|
111
|
+
// M10-T03 — the config bundle: `export-zip` / `import-zip` and, later, the
|
|
112
|
+
// Studio download/upload routes are front doors onto these two services.
|
|
113
|
+
export { EXPORT_ZIP_MANIFEST_VERSION, exportZip, } from './export/zip-service.js';
|
|
114
|
+
export { ImportZipError, importZip, } from './export/import-service.js';
|
|
115
|
+
export { PlaintextSecretError } from './export/redaction.js';
|
|
116
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `export-run` job handler (M7-T07, 09-generated-app.md §11.2): drains one
|
|
3
|
+
* adminium_exports request through the crud list pipeline and lands the
|
|
4
|
+
* artifact in file storage.
|
|
5
|
+
*
|
|
6
|
+
* Grants are captured AT REQUEST TIME: the exports route verifies
|
|
7
|
+
* `table:<conn>:<table>:export` and resolves the caller's PII capability
|
|
8
|
+
* (crud/mask.ts) before enqueueing; the payload carries `unmasked` and the
|
|
9
|
+
* job replays it through `runList`, so masked columns serialize as empty/null
|
|
10
|
+
* exactly as the caller would see them in the grid. Secret columns never
|
|
11
|
+
* appear (mask.ts rule 1).
|
|
12
|
+
*
|
|
13
|
+
* Streaming: pages come out of `runList` keyset-style (offset loop for
|
|
14
|
+
* PK-less tables) and go straight into an incremental `FileWriter` — the
|
|
15
|
+
* whole table is never in memory. CSV per data-io/csv.ts (RFC 4180 + BOM);
|
|
16
|
+
* `json` is JSON-lines (one object per line). `xlsx` is rejected at the
|
|
17
|
+
* route; a row that reaches here anyway fails cleanly.
|
|
18
|
+
*/
|
|
19
|
+
import { type MetaDb } from '@adminium/meta';
|
|
20
|
+
import { z } from 'zod';
|
|
21
|
+
import type { ConnectionManager } from '../connections/manager.js';
|
|
22
|
+
import type { FileStorage } from '../files/storage.js';
|
|
23
|
+
import { type JobRegistry } from './registry.js';
|
|
24
|
+
export declare const EXPORT_RUN_KIND = "export-run";
|
|
25
|
+
export declare const exportRunPayloadSchema: z.ZodObject<{
|
|
26
|
+
exportId: z.ZodString;
|
|
27
|
+
userId: z.ZodOptional<z.ZodString>;
|
|
28
|
+
unmasked: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type ExportRunPayload = z.infer<typeof exportRunPayloadSchema>;
|
|
31
|
+
export interface ExportRunDeps {
|
|
32
|
+
meta: MetaDb;
|
|
33
|
+
manager: ConnectionManager;
|
|
34
|
+
storage: FileStorage;
|
|
35
|
+
now?: () => number;
|
|
36
|
+
}
|
|
37
|
+
export declare function registerExportRunHandler(registry: JobRegistry, deps: ExportRunDeps): void;
|
|
38
|
+
//# sourceMappingURL=export-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-run.d.ts","sourceRoot":"","sources":["../../src/jobs/export-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAQL,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAInE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAA6C,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5F,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,eAAO,MAAM,sBAAsB;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAOD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAMzF"}
|