From 06a5236ce70bd07123d96a018c30905109252cb2 Mon Sep 17 00:00:00 2001 From: BlivionIaG <15323295+BlivionIaG@users.noreply.github.com> Date: Mon, 26 Oct 2026 08:53:38 +0100 Subject: [PATCH] server: capabilities --json's Engines struct moves to cli_capabilities.zig cli_capabilities.zig writes the capabilities document, but the Engines struct it reads still sat in cli.zig, which is 598 lines. The struct moves next to its writer and cli.zig re-exports it, so callers do not change. cli.zig drops to 589 lines. capabilities --json prints the same bytes as on main. --- zig/src/server/cli.zig | 13 ++----------- zig/src/server/cli_capabilities.zig | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/zig/src/server/cli.zig b/zig/src/server/cli.zig index 0e2da51172..d36a933aa7 100644 --- a/zig/src/server/cli.zig +++ b/zig/src/server/cli.zig @@ -571,17 +571,8 @@ pub fn request(a: Allocator, dir: []const u8, model_type: []const u8, args: Args }); } -/// What ``capabilities --json`` reports about the engine side: its version, chip, backends and families. -pub const Engines = struct { - version: []const u8, - chip: ?[]const u8 = null, - optional_libraries: []const @import("sys").optional_libraries.Status = &.{}, - backends: []const []const u8 = &.{}, - /// model_type to the weight formats it reads, as gate entries name them. - families: []const api.Family = &.{}, -}; - -/// The native capabilities document: the table's native flags and the honoured variables. +/// ``capabilities --json`` (cli_capabilities.zig): the engine side, then the table's native flags and variables. +pub const Engines = @import("cli_capabilities.zig").Engines; pub const capabilities = @import("cli_capabilities.zig").capabilities; const cli = @This(); diff --git a/zig/src/server/cli_capabilities.zig b/zig/src/server/cli_capabilities.zig index 7ee1fd2283..4c5d8607d1 100644 --- a/zig/src/server/cli_capabilities.zig +++ b/zig/src/server/cli_capabilities.zig @@ -1,8 +1,20 @@ -//! The native capabilities document: the table's native flags and the honoured variables. +//! ``capabilities --json``: the engine's version, chip, backends and families, then the native flags and variables. const std = @import("std"); +const api = @import("engine_api"); const cli = @import("cli.zig"); -pub fn capabilities(w: *std.Io.Writer, e: cli.Engines) !void { +/// What ``capabilities --json`` reports about the engine side: its version, chip, backends and families. +pub const Engines = struct { + version: []const u8, + chip: ?[]const u8 = null, + optional_libraries: []const @import("sys").optional_libraries.Status = &.{}, + backends: []const []const u8 = &.{}, + /// model_type to the weight formats it reads, as gate entries name them. + families: []const api.Family = &.{}, +}; + +/// The native capabilities document: the table's native flags and the honoured variables. +pub fn capabilities(w: *std.Io.Writer, e: Engines) !void { try w.print("{{\"schema\": 1, \"engine\": \"zig\", \"version\": \"{s}\", \"chip\": ", .{e.version}); if (e.chip) |c| try w.print("\"{s}\"", .{c}) else try w.writeAll("null"); try w.writeAll(", \"backends\": [");