ADIL EDGE SDK · QUICK START

Install status, requirements and a first generation.

Neither the Eco V1.1 A3b model nor the SDK is publicly released: there is no download, package or installer, and nothing on this page announces one. The samples below show the shape of the candidate interfaces for planning and review.

Installation status

No SDK package is published. The Python wheel, the npm package and the native libraries exist only in restricted developer-preview candidate builds, and the package names shown are provisional. Do not look for them on public registries. Installation commands will be published here only with an authorised release.

If you are in the developer programme, follow the instructions that came with your candidate package and verify its checksums before use.

Languages and platform requirements

LanguageInterfaceRequirements
C and C++The C interface (version 2), linked directly into your program.Header, engine library and the model file. The library must be the version 2 build.
PythonStandard-library-only package; the adapter loads the engine library directly. An HTTP client for the local API also exists.Python 3.9 or later (tested on 3.9.6 and 3.15 on macOS arm64).
TypeScript / Node.jsTyped client; the engine runs in a separate host process that the client starts and talks to. No npm dependencies.Node.js 18 or later targeted; tested on Node.js 25.9.0 only. Not for browsers.

Platform: macOS on Apple silicon (M1 or later) is the only platform the candidate supports. Linux, Windows, Android and browsers are not supported. All three languages use the same engine and the same model, so behaviour should match across them; there is one documented divergence in edge-case ordering of numeric object keys.

Quick start: local generation

Each sample loads the pinned model, verifies it by SHA-256 and generates a short answer on the CPU, with no network access and no tools.

Python

from adil_edge_sdk.native import NativeEdge

model, sha = "/path/to/eco-v11-A3b-Q4_K_M.gguf", "<published sha256>"
with NativeEdge(model, sha) as edge:      # the engine verifies the SHA-256 before loading the file
    print(edge.generate("What is the capital of France? Answer in one word.", max_tokens=16).text)
Python adapter. Adapted from the accepted SDK source as of the current candidate; shortened.

TypeScript / Node.js

import { NativeHost } from "@thynkr/adil-edge-sdk";   // provisional package name; not published

const host = await NativeHost.open({ model: "/path/to/eco-v11-A3b-Q4_K_M.gguf", sha256: "<published sha256>" });
try {
  console.log((await host.generate("What is the capital of France? Answer in one word.", { settings: { maxTokens: 16 } })).text);
} finally {
  await host.close();
}
TypeScript host. Adapted from the accepted SDK source as of the current candidate; shortened. Package name provisional.

C / C++

/* Standard headers (including the one for printf), then: */
#include "adil_engine.h"

int main(int argc, char **argv) {
    char err[256];
    adil_engine_config ec; adil_engine_config_defaults(&ec);
    ec.model_path = argv[1]; ec.model_sha256 = argv[2]; ec.profile = ADIL_PROFILE_ECO_LITE;   /* 4K context */

    /* Version 2 interface: declare the caller contract. This program never uses adil_session_cancel() to stop one request. */
    adil_caller_contract cc; adil_caller_contract_defaults(&cc); cc.caller = "my-app/1.0";
    adil_engine *eng = NULL;
    adil_status st = adil_engine_open2(&ec, &cc, &eng, err, sizeof err);
    if (st != ADIL_OK) { fprintf(stderr, "open: %s (%s)\n", adil_status_name(st), err); return 1; }

    adil_session_config sc; adil_session_config_defaults(&sc);
    adil_session *ses = NULL;
    if (adil_session_new(eng, &sc, &ses) != ADIL_OK) { adil_engine_close(eng); return 1; }

    char *resp = NULL;
    st = adil_generate(ses, "{\"messages\":[{\"role\":\"user\",\"content\":\"What is the capital of France? Answer in one word.\"}],\"max_tokens\":32}", NULL, NULL, &resp);
    printf("generate: %s\n%s\n", adil_status_name(st), resp ? resp : "");
    adil_string_free(resp);

    adil_session_free(ses);          /* dispose in reverse order; the engine refuses to close while a session is alive */
    return adil_engine_close(eng) == ADIL_OK ? 0 : 1;
}
C interface version 2. Shortened from the accepted minimal example as of the current candidate; every status is checked.

SDK, engine and interface compatibility

Candidate native components are intended to be used as one set: the engine library, the host process and the SDK from the same build. The SDKs check this when they open the engine and refuse an older or mismatched component; there is no fallback to an older library.

The C interface version (currently 2) is not the same thing as the SDK package version and from the model version. Version 1 builds are not supported, and the version 1 open function remains only as a stub that always returns an error, so a program built for version 1 fails cleanly. C and C++ programs must open the engine with the version 2 function and a declared caller contract.

ComponentCandidate state
SDK (Python, TypeScript)Development candidate; version numbers will change before any release.
EngineC interface version 2.0 (macOS library)
ModelAdil Eco V1.1 A3b, frozen; the engine refuses any other file by default.

Tools, permissions and errorsIntegration examplesSDK troubleshooting