| """Declarative NoNE language-expert catalog. |
| |
| These rows are capability identities and page-training objectives, not claims |
| that a language expert has already been trained. A family becomes promotable |
| only after the normal NoNE route, gradient, held-out, retention, and cold-reload |
| proofs pass. |
| """ |
|
|
| from __future__ import annotations |
|
|
| import hashlib |
| from typing import Final |
|
|
| from resynthesis.language_catalog import ( |
| BROAD_LANGUAGE_PACK_IDS, |
| BROAD_LANGUAGE_PACK_IDS_SHA256, |
| LANGUAGE_ABILITY_AXIS_IDS, |
| LANGUAGE_ABILITY_IDS_BY_SOURCE_TYPE, |
| LINGUIST_LANGUAGE_SOURCE_PACK_RECORDS, |
| NATIVE_LANGUAGE_PACK_PREFIX_IDS, |
| ) |
|
|
|
|
| NONE_LANGUAGE_EXPERT_CATALOG_SCHEMA: Final = ( |
| "nnf.resynthesis.none_language_expert_catalog.v4" |
| ) |
|
|
| _LANGUAGE_EXPERT_SPECS: Final[ |
| tuple[tuple[str, str, str, tuple[str, ...]], ...] |
| ] = ( |
| ( |
| "language_python", |
| "Python", |
| "CPython, typing, asyncio, packaging, data, and scientific computing", |
| ("python", "py", "python_source"), |
| ), |
| ( |
| "language_go", |
| "Go", |
| "modules, interfaces, goroutines, channels, services, and tooling", |
| ("go", "golang", "go_source"), |
| ), |
| ( |
| "language_java", |
| "Java", |
| "JVM behavior, generics, concurrency, Maven, Gradle, and services", |
| ("java", "jvm_java", "java_source"), |
| ), |
| ( |
| "language_ruby", |
| "Ruby", |
| "MRI behavior, gems, metaprogramming, Rails, and services", |
| ("ruby", "ruby_source", "rails"), |
| ), |
| ( |
| "language_php", |
| "PHP", |
| "Composer, PHP runtimes, Laravel, Symfony, and web applications", |
| ("php", "php_source", "composer_php"), |
| ), |
| ( |
| "language_dotnet", |
| ".NET", |
| "CLR semantics, assemblies, NuGet, MSBuild, ASP.NET, and interop", |
| ("dotnet", "clr", "msbuild", "nuget"), |
| ), |
| ( |
| "language_native", |
| "Native systems", |
| "ABIs, linking, FFI, ownership, concurrency, and platform toolchains", |
| ("native", "native_code", "abi", "system_programming"), |
| ), |
| ( |
| "language_c", |
| "C", |
| "standards, pointers, layouts, preprocessors, compilers, and embedded code", |
| ("c", "c_source", "iso_c"), |
| ), |
| ( |
| "language_cpp", |
| "C++", |
| "templates, RAII, modern standards, CMake, ABI, and performance", |
| ("cpp", "c++", "cplusplus", "cpp_source"), |
| ), |
| ( |
| "language_rust", |
| "Rust", |
| "ownership, lifetimes, traits, Cargo, async, unsafe code, and FFI", |
| ("rust", "rust_source", "cargo"), |
| ), |
| ( |
| "language_csharp", |
| "C#", |
| "CLR types, LINQ, async, Roslyn, .NET libraries, and applications", |
| ("csharp", "c#", "c_sharp"), |
| ), |
| ( |
| "language_fsharp", |
| "F#", |
| "functional .NET, algebraic types, computation expressions, and interop", |
| ("fsharp", "f#", "f_sharp"), |
| ), |
| ( |
| "language_visual_basic", |
| "Visual Basic", |
| "VB.NET, legacy Visual Basic, COM, forms, and .NET interop", |
| ("visual_basic", "vb", "vbnet"), |
| ), |
| ( |
| "language_javascript", |
| "JavaScript", |
| "ECMAScript, browser and Node runtimes, events, modules, and services", |
| ("javascript", "js", "ecmascript", "nodejs"), |
| ), |
| ( |
| "language_typescript", |
| "TypeScript", |
| "structural typing, compiler configuration, declarations, and JS interop", |
| ("typescript", "ts", "typescript_source"), |
| ), |
| ( |
| "language_swift", |
| "Swift", |
| "value semantics, protocols, concurrency, SwiftPM, Apple, and servers", |
| ("swift", "swift_source", "swiftpm"), |
| ), |
| ( |
| "language_objective_c", |
| "Objective-C", |
| "runtime messaging, ARC, Cocoa, C interop, and mixed Apple codebases", |
| ("objective_c", "objective-c", "objc"), |
| ), |
| ( |
| "language_kotlin", |
| "Kotlin", |
| "JVM and native targets, coroutines, Gradle, Android, and multiplatform", |
| ("kotlin", "kotlin_source", "kotlin_multiplatform"), |
| ), |
| ( |
| "language_scala", |
| "Scala", |
| "JVM functional and object models, implicits, sbt, and data systems", |
| ("scala", "scala_source", "sbt"), |
| ), |
| ( |
| "language_dart", |
| "Dart", |
| "sound typing, async execution, packages, Flutter, web, and native", |
| ("dart", "dart_source", "flutter"), |
| ), |
| ( |
| "language_lua", |
| "Lua", |
| "tables, metatables, coroutines, embedding, LuaJIT, and scripting", |
| ("lua", "lua_source", "luajit"), |
| ), |
| ( |
| "language_perl", |
| "Perl", |
| "references, regex processing, CPAN, automation, and legacy services", |
| ("perl", "perl_source", "cpan"), |
| ), |
| ( |
| "language_r", |
| "R", |
| "vectors, statistical modeling, packages, data frames, and visualization", |
| ("r", "r_source", "rstats"), |
| ), |
| ( |
| "language_julia", |
| "Julia", |
| "multiple dispatch, numerical computing, environments, and performance", |
| ("julia", "julia_source", "julia_language"), |
| ), |
| ( |
| "language_matlab", |
| "MATLAB", |
| "matrix computing, toolboxes, Simulink, and numerical workflows", |
| ("matlab", "matlab_source", "simulink"), |
| ), |
| ( |
| "language_sas", |
| "SAS", |
| "DATA steps, procedures, macros, analytics, and clinical workflows", |
| ("sas", "sas_source", "sas_macro"), |
| ), |
| ( |
| "language_sql", |
| "SQL", |
| "relational schemas, queries, transactions, tuning, and dialect interop", |
| ("sql", "sql_source", "relational_query"), |
| ), |
| ( |
| "language_html", |
| "HTML", |
| "semantic markup, accessibility, forms, parsing, and templates", |
| ("html", "html_source", "web_markup"), |
| ), |
| ( |
| "language_css", |
| "CSS", |
| "cascade, layout, responsive design, animation, and browser behavior", |
| ("css", "css_source", "stylesheets"), |
| ), |
| ( |
| "language_graphql", |
| "GraphQL", |
| "schemas, queries, resolvers, federation, clients, and API evolution", |
| ("graphql", "graphql_source", "graphql_schema"), |
| ), |
| ( |
| "language_bash", |
| "Bash and POSIX shell", |
| "expansion, pipelines, process control, portability, and automation", |
| ("bash", "shell", "posix_shell", "shell_script"), |
| ), |
| ( |
| "language_powershell", |
| "PowerShell", |
| "object pipelines, modules, remoting, administration, and automation", |
| ("powershell", "pwsh", "powershell_source"), |
| ), |
| ( |
| "language_haskell", |
| "Haskell", |
| "lazy evaluation, type classes, monads, effects, Cabal, and Stack", |
| ("haskell", "haskell_source", "cabal"), |
| ), |
| ( |
| "language_ocaml", |
| "OCaml", |
| "modules, algebraic types, pattern matching, effects, and dune", |
| ("ocaml", "ocaml_source", "dune_ocaml"), |
| ), |
| ( |
| "language_clojure", |
| "Clojure", |
| "persistent data, macros, sequences, concurrency, and JVM interop", |
| ("clojure", "clojure_source", "clj"), |
| ), |
| ( |
| "language_elixir", |
| "Elixir", |
| "BEAM processes, OTP, supervision, Mix, Phoenix, and distribution", |
| ("elixir", "elixir_source", "mix_elixir"), |
| ), |
| ( |
| "language_erlang", |
| "Erlang", |
| "BEAM semantics, OTP behaviors, supervision, messaging, and resilience", |
| ("erlang", "erlang_source", "beam_erlang"), |
| ), |
| ( |
| "language_scheme", |
| "Scheme", |
| "lexical scope, continuations, macros, interpreters, and reasoning", |
| ("scheme", "scheme_source", "r7rs"), |
| ), |
| ( |
| "language_common_lisp", |
| "Common Lisp", |
| "CLOS, macros, conditions, packages, interactive work, and compilation", |
| ("common_lisp", "common-lisp", "lisp"), |
| ), |
| ( |
| "language_prolog", |
| "Prolog", |
| "unification, backtracking, constraints, logic programs, and symbols", |
| ("prolog", "prolog_source", "logic_programming"), |
| ), |
| ( |
| "language_groovy", |
| "Groovy", |
| "dynamic JVM semantics, closures, Gradle DSLs, tests, and Java interop", |
| ("groovy", "groovy_source", "gradle_groovy"), |
| ), |
| ( |
| "language_fortran", |
| "Fortran", |
| "arrays, modules, numerical kernels, interoperability, and HPC", |
| ("fortran", "fortran_source", "modern_fortran"), |
| ), |
| ( |
| "language_assembly", |
| "Assembly", |
| "instructions, calling conventions, registers, linking, and debugging", |
| ("assembly", "asm", "machine_assembly"), |
| ), |
| ( |
| "language_cuda", |
| "CUDA", |
| "kernels, memory hierarchy, synchronization, streams, and profiling", |
| ("cuda", "cuda_source", "cuda_kernel"), |
| ), |
| ( |
| "language_opencl", |
| "OpenCL", |
| "portable kernels, devices, memory spaces, synchronization, and interop", |
| ("opencl", "opencl_source", "opencl_kernel"), |
| ), |
| ( |
| "language_webassembly", |
| "WebAssembly", |
| "modules, linear memory, WASI, components, toolchains, and embedding", |
| ("webassembly", "wasm", "wasi"), |
| ), |
| ( |
| "language_zig", |
| "Zig", |
| "comptime, explicit allocation, build tooling, C interop, and systems", |
| ("zig", "zig_source", "ziglang"), |
| ), |
| ( |
| "language_nim", |
| "Nim", |
| "macros, generics, memory management, native compilation, and C interop", |
| ("nim", "nim_source", "nim_lang"), |
| ), |
| ( |
| "language_apex", |
| "Apex", |
| "Salesforce data, triggers, limits, testing, and deployment", |
| ("apex", "salesforce_apex", "apex_source"), |
| ), |
| ( |
| "language_verilog", |
| "Verilog", |
| "RTL, simulation, synthesis, testbenches, timing, and interfaces", |
| ("verilog", "verilog_source", "rtl_verilog"), |
| ), |
| ( |
| "language_systemverilog", |
| "SystemVerilog", |
| "RTL, assertions, interfaces, UVM, simulation, and synthesis", |
| ("systemverilog", "system_verilog", "uvm"), |
| ), |
| ( |
| "language_vhdl", |
| "VHDL", |
| "typed RTL, simulation, synthesis, testbenches, and hardware packages", |
| ("vhdl", "vhdl_source", "rtl_vhdl"), |
| ), |
| ( |
| "language_cobol", |
| "COBOL", |
| "divisions, records, files, transactions, mainframes, and modernization", |
| ("cobol", "cobol_source", "mainframe_cobol"), |
| ), |
| ( |
| "language_ada", |
| "Ada", |
| "typing, contracts, tasks, packages, safety-critical systems, and SPARK", |
| ("ada", "ada_source", "spark_ada"), |
| ), |
| ( |
| "language_pascal", |
| "Pascal and Object Pascal", |
| "structured programs, units, classes, Delphi, and native applications", |
| ("pascal", "object_pascal", "delphi"), |
| ), |
| ( |
| "language_tcl", |
| "Tcl", |
| "commands, substitutions, event loops, Tk, embedding, and EDA", |
| ("tcl", "tcl_source", "tcl_tk"), |
| ), |
| ( |
| "language_solidity", |
| "Solidity", |
| "EVM semantics, contracts, storage, testing, security, and upgrades", |
| ("solidity", "solidity_source", "evm"), |
| ), |
| ( |
| "language_move", |
| "Move", |
| "resources, modules, bytecode, verification, and blockchain applications", |
| ("move", "move_source", "move_language"), |
| ), |
| ( |
| "language_hcl", |
| "HashiCorp Configuration Language", |
| "infrastructure, expressions, modules, Terraform, and provider schemas", |
| ("hcl", "terraform_hcl", "terraform"), |
| ), |
| ( |
| "language_nix", |
| "Nix", |
| "pure expressions, derivations, flakes, reproducible builds, and systems", |
| ("nix", "nix_language", "nix_flakes"), |
| ), |
| ) |
|
|
|
|
| def _build_curated_language_expert_families( |
| specs: tuple[tuple[str, str, str, tuple[str, ...]], ...], |
| ) -> tuple[tuple[str, str, frozenset[str]], ...]: |
| """Validate and materialize the inherited curated prefix once.""" |
|
|
| family_ids = tuple(spec[0] for spec in specs) |
| if len(family_ids) < 60 or len(set(family_ids)) != len(family_ids): |
| raise RuntimeError("language expert catalog is incomplete or duplicated") |
| if any(not family_id.startswith("language_") for family_id in family_ids): |
| raise RuntimeError("language expert family IDs require language_ prefix") |
| return tuple( |
| ( |
| family_id, |
| ( |
| f"{display_name} syntax and semantics, idioms, build/test/debug " |
| f"workflows, interoperability, security, performance, and {focus}" |
| ), |
| frozenset((family_id, *aliases)), |
| ) |
| for family_id, display_name, focus, aliases in specs |
| ) |
|
|
|
|
| _CURATED_LANGUAGE_EXPERT_FAMILIES: Final = _build_curated_language_expert_families( |
| _LANGUAGE_EXPERT_SPECS |
| ) |
| _CURATED_LANGUAGE_EXPERT_IDS: Final = tuple( |
| family_id |
| for family_id, _description, _claims in _CURATED_LANGUAGE_EXPERT_FAMILIES |
| ) |
| NONE_LANGUAGE_EXPERT_INHERITED_CATALOG_SCHEMA: Final = ( |
| "nnf.resynthesis.none_language_expert_catalog.v1" |
| ) |
| NONE_LANGUAGE_EXPERT_INHERITED_PREFIX_COUNT: Final = len( |
| _CURATED_LANGUAGE_EXPERT_IDS |
| ) |
| NONE_LANGUAGE_EXPERT_INHERITED_PREFIX_IDS_SHA256: Final = hashlib.sha256( |
| "\n".join(_CURATED_LANGUAGE_EXPERT_IDS).encode("utf-8") |
| ).hexdigest() |
| if ( |
| _CURATED_LANGUAGE_EXPERT_IDS |
| != NATIVE_LANGUAGE_PACK_PREFIX_IDS[: len(_CURATED_LANGUAGE_EXPERT_IDS)] |
| ): |
| raise RuntimeError("curated language experts are not the native catalog prefix") |
|
|
| _LINGUIST_METADATA_BY_FAMILY_ID: Final = { |
| family_id: (source_name, source_type) |
| for family_id, source_name, source_type in reversed( |
| LINGUIST_LANGUAGE_SOURCE_PACK_RECORDS |
| ) |
| } |
| _ABILITY_IDS_BY_SOURCE_TYPE: Final = dict( |
| LANGUAGE_ABILITY_IDS_BY_SOURCE_TYPE |
| ) |
| _NATIVE_PREFIX_ORDINAL_BY_ID: Final = { |
| family_id: ordinal |
| for ordinal, family_id in enumerate(NATIVE_LANGUAGE_PACK_PREFIX_IDS) |
| } |
|
|
|
|
| def _native_domain_ability_ids(family_id: str) -> frozenset[str]: |
| """Return additive ability objectives for the frozen native graph row.""" |
|
|
| ordinal = _NATIVE_PREFIX_ORDINAL_BY_ID.get(family_id) |
| if ordinal is None: |
| return frozenset() |
| if 173 <= ordinal < 197: |
| return frozenset( |
| { |
| "serialization_exchange", |
| "numerical_stability_units", |
| "chemical_structure_reaction_validation", |
| "scientific_data_mesh_geometry", |
| "simulation_boundary_conditions", |
| } |
| ) |
| if 197 <= ordinal < 221: |
| return frozenset( |
| { |
| "serialization_exchange", |
| "systems_biology_simulation", |
| "clinical_regulatory_validation", |
| "workflow_provenance_orchestration", |
| } |
| ) |
| if 221 <= ordinal < 245: |
| return frozenset( |
| { |
| "numerical_stability_units", |
| "probabilistic_inference_optimization", |
| "scientific_data_mesh_geometry", |
| "simulation_boundary_conditions", |
| "data_visualization_reporting", |
| } |
| ) |
| if 245 <= ordinal < 269: |
| return frozenset( |
| { |
| "numerical_stability_units", |
| "probabilistic_inference_optimization", |
| "accelerator_parallel_lowering", |
| "hardware_hdl_verification", |
| "quantum_circuit_pulse_validation", |
| } |
| ) |
| if 269 <= ordinal < 279: |
| return frozenset({"formal_proof_model_check"}) |
| if 279 <= ordinal < 289: |
| return frozenset( |
| { |
| "workflow_provenance_orchestration", |
| "laboratory_robotics_control", |
| } |
| ) |
| if 289 <= ordinal: |
| return frozenset( |
| { |
| "serialization_exchange", |
| "numerical_stability_units", |
| "laboratory_robotics_control", |
| "scientific_data_mesh_geometry", |
| "simulation_boundary_conditions", |
| } |
| ) |
| return frozenset() |
|
|
|
|
| def _language_ability_ids( |
| family_id: str, |
| source_type: str, |
| ) -> tuple[str, ...]: |
| ability_ids = frozenset( |
| _ABILITY_IDS_BY_SOURCE_TYPE.get( |
| source_type, |
| _ABILITY_IDS_BY_SOURCE_TYPE["programming"], |
| ) |
| ).union(_native_domain_ability_ids(family_id)) |
| return tuple( |
| ability_id |
| for ability_id in LANGUAGE_ABILITY_AXIS_IDS |
| if ability_id in ability_ids |
| ) |
|
|
|
|
| def _recovered_language_family( |
| family_id: str, |
| ) -> tuple[str, str, frozenset[str]]: |
| metadata = _LINGUIST_METADATA_BY_FAMILY_ID.get(family_id) |
| if metadata is None: |
| source_name = family_id.removeprefix("language_").replace("_", " ") |
| source_type = "programming" |
| provenance = "the immutable native Resynthesis language graph" |
| else: |
| source_name, source_type = metadata |
| provenance = "the pinned GitHub Linguist source snapshot" |
| ability_ids = _language_ability_ids(family_id, source_type) |
| return ( |
| family_id, |
| ( |
| f"{source_name} {source_type} syntax and semantics, parsing, " |
| "verification, implementation, interoperability, migration, " |
| f"and production operation; identity recovered from {provenance}" |
| ), |
| frozenset((family_id, *ability_ids)), |
| ) |
|
|
|
|
| _CURATED_LANGUAGE_FAMILY_BY_ID: Final = { |
| family_id: (family_id, description, claims) |
| for family_id, description, claims in _CURATED_LANGUAGE_EXPERT_FAMILIES |
| } |
| NONE_LANGUAGE_EXPERT_FAMILIES: Final = tuple( |
| _CURATED_LANGUAGE_FAMILY_BY_ID.get( |
| family_id, |
| _recovered_language_family(family_id), |
| ) |
| for family_id in BROAD_LANGUAGE_PACK_IDS |
| ) |
| NONE_LANGUAGE_EXPERT_ABILITY_ASSIGNMENTS: Final = tuple( |
| ( |
| family_id, |
| _language_ability_ids( |
| family_id, |
| _LINGUIST_METADATA_BY_FAMILY_ID.get( |
| family_id, |
| ("", "programming"), |
| )[1], |
| ), |
| ) |
| for family_id in BROAD_LANGUAGE_PACK_IDS |
| ) |
| NONE_LANGUAGE_EXPERT_IDS_SHA256: Final = hashlib.sha256( |
| "\n".join( |
| family_id |
| for family_id, _description, _claims in NONE_LANGUAGE_EXPERT_FAMILIES |
| ).encode("utf-8") |
| ).hexdigest() |
| NONE_LANGUAGE_EXPERT_ABILITY_ASSIGNMENTS_SHA256: Final = hashlib.sha256( |
| "\n".join( |
| f"{family_id}:{','.join(ability_ids)}" |
| for family_id, ability_ids in NONE_LANGUAGE_EXPERT_ABILITY_ASSIGNMENTS |
| ).encode("utf-8") |
| ).hexdigest() |
|
|
| if ( |
| len(NONE_LANGUAGE_EXPERT_FAMILIES) != 936 |
| or NONE_LANGUAGE_EXPERT_IDS_SHA256 != BROAD_LANGUAGE_PACK_IDS_SHA256 |
| or len({row[0] for row in NONE_LANGUAGE_EXPERT_FAMILIES}) |
| != len(NONE_LANGUAGE_EXPERT_FAMILIES) |
| or NONE_LANGUAGE_EXPERT_FAMILIES[: len(_CURATED_LANGUAGE_EXPERT_FAMILIES)] |
| != _CURATED_LANGUAGE_EXPERT_FAMILIES |
| or tuple(row[0] for row in NONE_LANGUAGE_EXPERT_ABILITY_ASSIGNMENTS) |
| != BROAD_LANGUAGE_PACK_IDS |
| ): |
| raise RuntimeError("broad language expert catalog identity is invalid") |
|
|