import { RaijinLabsLucidAi } from "raijin-labs-lucid-ai";
const sdk = new RaijinLabsLucidAi({
serverURL: "https://api.lucid.foundation",
});
const OWNER = "YOUR_WALLET_ADDRESS";
// Create a model passport
const model = await sdk.passports.create({
type: "model",
owner: OWNER,
name: "my-llm-7b",
description: "7B parameter language model",
version: "1.0.0",
tags: ["nlp", "inference"],
metadata: {
schema_version: "1.0",
model_passport_id: "mdl-my-llm-7b",
format: "gguf",
runtime_recommended: "vllm",
name: "my-llm-7b",
context_length: 4096,
requirements: { min_vram_gb: 24 },
},
});
console.log("Model passport:", model.passportId);
// Create a compute passport
const compute = await sdk.passports.create({
type: "compute",
owner: OWNER,
name: "gpu-node-us-east",
version: "1.0.0",
tags: ["gpu", "a100"],
metadata: {
schema_version: "1.0",
compute_passport_id: "cmp-gpu-node-us-east",
provider_type: "cloud",
regions: ["us-east-1"],
hardware: { gpu: "NVIDIA-A100-80GB", vram_gb: 80 },
runtimes: [{ name: "vllm", version: "0.4.0", image: "vllm/vllm:0.4.0" }],
endpoints: { inference_url: "http://my-node:8080/v1" },
},
});
console.log("Compute passport:", compute.passportId);
// List passports
const list = await sdk.passports.list({ owner: OWNER, perPage: 10 });
console.log("Total:", list.pagination.total);
// Update a passport
await sdk.passports.update({
passportId: model.passportId,
xOwnerAddress: OWNER,
body: { description: "Updated description", version: "1.0.1" },
});
// Delete a passport (soft delete)
await sdk.passports.delete({
passportId: model.passportId,
xOwnerAddress: OWNER,
});