|
| 1 | +; SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | +; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk> |
| 3 | +; |
| 4 | +; ENSAID_CONFIG.a2ml — PanLL configuration for VeriSimDB. |
| 5 | +; VeriSimDB is a formally verified database with Idris2 ABI, Zig FFI, |
| 6 | +; V-lang API gateway, VQL query language, and a registry subsystem. |
| 7 | +; This is a key dogfooding project for the full ABI→FFI→Adapter stack. |
| 8 | + |
| 9 | +; ───────────────────────────────────────────────────────────────────── |
| 10 | +; [ensaid] — eNSAID environment identity |
| 11 | +; ───────────────────────────────────────────────────────────────────── |
| 12 | +[ensaid] |
| 13 | +version = "1.0" |
| 14 | +name = "verisimdb-dev" |
| 15 | +description = "Formally verified database development environment" |
| 16 | +humidity = "dry" |
| 17 | +; Humidity: "dry" = symbolic-heavy. VeriSimDB is a formally verified system — |
| 18 | +; proofs and type checking dominate. Neural assists with query optimisation |
| 19 | +; and test generation, but never overrides the formal guarantees. |
| 20 | + |
| 21 | +; ───────────────────────────────────────────────────────────────────── |
| 22 | +; [workspace] — file watching, language detection, build integration |
| 23 | +; ───────────────────────────────────────────────────────────────────── |
| 24 | +[workspace] |
| 25 | +root = "." |
| 26 | +watch_extensions = [".idr", ".zig", ".v", ".vql", ".gleam", ".toml"] |
| 27 | +; .idr = ABI definitions, .zig = FFI bridge, .v = API gateway, |
| 28 | +; .vql = VeriSimDB Query Language, .gleam = REPL/tooling |
| 29 | +ignore_patterns = ["build/", ".git/", "zig-cache/", "zig-out/", "_build/"] |
| 30 | +editor = "vscodium" |
| 31 | +build_command = "just build" |
| 32 | +test_command = "just test" |
| 33 | +language_id = "idris2" |
| 34 | +; Primary specification language. Implementation spans Zig + V + Gleam. |
| 35 | + |
| 36 | +; ───────────────────────────────────────────────────────────────────── |
| 37 | +; [preferences] — developer preferences and UI settings |
| 38 | +; ───────────────────────────────────────────────────────────────────── |
| 39 | +[preferences] |
| 40 | +theme = "dark" |
| 41 | +font_size = 14 |
| 42 | +show_line_numbers = true |
| 43 | +auto_save = true |
| 44 | +auto_format_on_save = true |
| 45 | +tab_size = 2 |
| 46 | +panel_layout = "three-column" |
| 47 | + |
| 48 | +; ───────────────────────────────────────────────────────────────────── |
| 49 | +; [panels] — which PanLL panels are enabled for this project |
| 50 | +; ───────────────────────────────────────────────────────────────────── |
| 51 | +[panels] |
| 52 | +enabled = [ |
| 53 | + "valence-shell", ; Terminal + command execution |
| 54 | + "editor-bridge", ; Editor integration |
| 55 | + "build-dashboard", ; Multi-language build status (Idris2 + Zig + V) |
| 56 | + "boj", ; BoJ dashboard — VeriSimDB is a BoJ consumer |
| 57 | + "database", ; Database inspection — dogfooding VeriSimDB itself |
| 58 | + "vm-inspector", ; Query engine / VQL inspection |
| 59 | + "security", ; Security scanning (Hypatia) |
| 60 | + "reposystem", ; Repository management |
| 61 | + "panic-attack", ; Error analysis |
| 62 | + "tsdm", ; Type System Design Mode — ABI type exploration |
| 63 | + "migration", ; Schema migration tracking |
| 64 | +] |
| 65 | + |
| 66 | +disabled = [ |
| 67 | + "network", ; Network handled by V-lang adapter |
| 68 | + "container", ; Container builds handled externally |
| 69 | + "fleet", ; Single-repo work |
| 70 | +] |
| 71 | + |
| 72 | +; ───────────────────────────────────────────────────────────────────── |
| 73 | +; [workflows] — project-specific workflow definitions |
| 74 | +; ───────────────────────────────────────────────────────────────────── |
| 75 | +[workflows] |
| 76 | + |
| 77 | +[workflows.zig-on-abi-change] |
| 78 | +trigger = "file_save" |
| 79 | +match = "src/abi/*.idr" |
| 80 | +action = "run_command" |
| 81 | +command = "cd ffi/zig && zig build test" |
| 82 | +description = "Rebuild and test Zig FFI when Idris2 ABI definitions change" |
| 83 | + |
| 84 | +[workflows.adapter-on-ffi-change] |
| 85 | +trigger = "file_save" |
| 86 | +match = "ffi/zig/src/*.zig" |
| 87 | +action = "run_command" |
| 88 | +command = "cd v-api-gateway && v build ." |
| 89 | +description = "Rebuild V-lang API gateway when Zig FFI changes" |
| 90 | + |
| 91 | +[workflows.vql-test-on-save] |
| 92 | +trigger = "file_save" |
| 93 | +match = "src/vql/*.idr" |
| 94 | +action = "run_command" |
| 95 | +command = "idris2 --check src/vql/Parser.idr" |
| 96 | +description = "Verify VQL parser when query language definitions change" |
| 97 | + |
| 98 | +[workflows.registry-test] |
| 99 | +trigger = "file_save" |
| 100 | +match = "src/registry/*.idr" |
| 101 | +action = "run_command" |
| 102 | +command = "idris2 --check src/registry/Registry.idr" |
| 103 | +description = "Verify registry types when registry definitions change" |
| 104 | + |
| 105 | +[workflows.debugger-rebuild] |
| 106 | +trigger = "file_save" |
| 107 | +match = "debugger/src/**" |
| 108 | +action = "run_command" |
| 109 | +command = "cd debugger && just build" |
| 110 | +description = "Rebuild debugger when debugger source changes" |
| 111 | + |
| 112 | +; ───────────────────────────────────────────────────────────────────── |
| 113 | +; [clades] — panel clade taxonomy for this project |
| 114 | +; ───────────────────────────────────────────────────────────────────── |
| 115 | +[clades] |
| 116 | +active = ["builder", "database", "terminal", "scanner", "viewer", "bridge"] |
| 117 | +; Database development uses builder (multi-lang compilation), database |
| 118 | +; (dogfooding VeriSimDB), terminal (VQL REPL), scanner (security), |
| 119 | +; viewer (query plans), bridge (editor integration). |
| 120 | + |
| 121 | +; ───────────────────────────────────────────────────────────────────── |
| 122 | +; [portfolios] — named panel/workflow presets |
| 123 | +; ───────────────────────────────────────────────────────────────────── |
| 124 | +[portfolios] |
| 125 | + |
| 126 | +[portfolios.abi-focus] |
| 127 | +description = "Formal ABI development — Idris2 type definitions" |
| 128 | +panels = ["editor-bridge", "tsdm", "build-dashboard"] |
| 129 | +layout = "three-column" |
| 130 | +focus = "tsdm" |
| 131 | + |
| 132 | +[portfolios.ffi-testing] |
| 133 | +description = "FFI bridge testing — Zig implementation" |
| 134 | +panels = ["valence-shell", "build-dashboard", "panic-attack"] |
| 135 | +layout = "three-column" |
| 136 | +focus = "build-dashboard" |
| 137 | + |
| 138 | +[portfolios.query-dev] |
| 139 | +description = "VQL query language development" |
| 140 | +panels = ["editor-bridge", "vm-inspector", "database"] |
| 141 | +layout = "three-column" |
| 142 | +focus = "vm-inspector" |
| 143 | + |
| 144 | +[portfolios.full-stack] |
| 145 | +description = "Full VeriSimDB development view" |
| 146 | +panels = ["valence-shell", "editor-bridge", "build-dashboard", "boj", "database", "tsdm"] |
| 147 | +layout = "three-column" |
| 148 | +focus = "build-dashboard" |
| 149 | + |
| 150 | +[portfolios.integration] |
| 151 | +description = "End-to-end integration testing" |
| 152 | +panels = ["valence-shell", "database", "panic-attack", "security"] |
| 153 | +layout = "two-column" |
| 154 | +focus = "valence-shell" |
0 commit comments