Something went wrong. Try again.
fork of Kludex/zigai, ported to zig 0.17
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263//! Provider-neutral building blocks for tool-using LLM agents.
pub const model = @import("model.zig");pub const model_catalog = @import("model_catalog.zig");pub const model_catalog_snapshot = @import("model_catalog_snapshot.zig");pub const settings = @import("settings.zig");pub const output = @import("output.zig");pub const tool = @import("tool.zig");pub const capability = @import("capability.zig");pub const messages = @import("messages.zig");pub const usage = @import("usage.zig");pub const pricing = @import("pricing.zig");pub const security = @import("security.zig");pub const agent = @import("agent.zig");pub const agent_spec = @import("agent_spec.zig");pub const testing = @import("testing.zig");pub const transport = @import("transport.zig");pub const provider = @import("provider.zig");pub const json_schema = @import("json_schema.zig");pub const json = @import("json.zig");pub const reflect = @import("reflect.zig");pub const history = @import("history.zig");pub const context_budget = @import("context_budget.zig");pub const evals = @import("evals.zig");pub const providers = @import("providers.zig");pub const models = @import("models.zig");pub const telemetry = @import("telemetry.zig");pub const mcp = @import("mcp.zig");pub const codecs = @import("codecs/root.zig");// Compatibility aliases for the original top-level provider imports.pub const openai = providers.openai;pub const openai_compatible = providers.openai_compatible;pub const anthropic = providers.anthropic;pub const google = providers.google;
pub const Agent = agent.Agent;pub const AgentError = agent.Agent.Error;pub const CancellationToken = agent.CancellationToken;pub const RunControl = model.RunControl;pub const AgentStreamEvent = agent.AgentStreamEvent;pub const AgentStreamSink = agent.AgentStreamSink;pub const FunctionToolCallEvent = agent.FunctionToolCallEvent;pub const FunctionToolResultEvent = agent.FunctionToolResultEvent;pub const DeferredToolRequestsEvent = agent.DeferredToolRequestsEvent;pub const DeferredToolResultsEvent = agent.DeferredToolResultsEvent;pub const EnqueuedMessagesEvent = agent.EnqueuedMessagesEvent;pub const ToolAvailabilityDeltaEvent = agent.ToolAvailabilityDeltaEvent;pub const FinalResultEvent = agent.FinalResultEvent;pub const PartialOutputEvent = agent.PartialOutputEvent;pub const RetryEvent = agent.RetryEvent;pub const RetryHook = agent.RetryHook;pub const Instruction = agent.Instruction;pub const InstructionContext = agent.InstructionContext;pub const RunOptions = agent.RunOptions;pub const PendingMessageQueue = agent.PendingMessageQueue;pub const TypedResult = agent.TypedResult;pub const Capability = agent.Capability;pub const CapabilityContext = agent.CapabilityContext;pub const CapabilityLayer = agent.CapabilityLayer;pub const CapabilityDescriptor = capability.Descriptor;pub const CapabilityDiagnostic = capability.Diagnostic;pub const CapabilityDiagnosticKind = capability.DiagnosticKind;pub const CapabilityEntry = capability.Entry;pub const CapabilityLoading = capability.Loading;pub const CapabilityLimits = capability.Limits;pub const CapabilityLoadResolution = capability.LoadResolution;pub const CapabilityRegistry = capability.Registry;pub const CapabilityScope = capability.Scope;pub const CapabilitySnapshot = capability.Snapshot;pub const CapabilityUnloadPolicy = capability.UnloadPolicy;pub const LifecycleEvent = agent.LifecycleEvent;pub const LifecycleHook = agent.LifecycleHook;pub const ToolPolicy = tool.Policy;pub const ToolPolicyEvent = tool.Event;pub const ToolPolicyRunContext = tool.RunContext;pub const ToolPolicyCallContext = tool.CallContext;pub const HistoryProcessor = history.Processor;pub const HistoryContext = history.Context;pub const OwnedHistory = history.Owned;pub const OpenTelemetry = telemetry.OpenTelemetry;pub const TelemetryExporter = telemetry.Exporter;pub const TelemetrySpan = telemetry.Span;pub const TelemetryMetric = telemetry.Metric;pub const Toolset = agent.Toolset;pub const ToolsetContext = agent.ToolsetContext;pub const ToolsetEntry = agent.ToolsetEntry;pub const DeferredToolCall = agent.DeferredToolCall;pub const ResumeAction = agent.ResumeAction;pub const ResumeDecision = agent.ResumeDecision;pub const OwnedResumeDecisions = agent.OwnedResumeDecisions;pub const stringifyResumeDecisions = agent.stringifyResumeDecisions;pub const parseResumeDecisions = agent.parseResumeDecisions;pub const PausedRun = agent.PausedRun;pub const RunOutcome = agent.Agent.RunOutcome;pub const Model = model.Model;pub const ModelCatalog = model_catalog.Catalog;pub const ModelCatalogEntry = model_catalog.Entry;pub const ModelCatalogLimits = model_catalog.Limits;pub const ModelDeprecation = model_catalog.Deprecation;pub const ResolvedModel = model_catalog.ResolvedModel;pub const DiscoveredCatalogModel = model_catalog.DiscoveryItem;pub const OwnedDiscoveredCatalog = model_catalog.OwnedDiscovery;pub const mergeModelDiscovery = model_catalog.mergeDiscovery;pub const builtin_model_catalog = model_catalog_snapshot.value;pub const builtin_model_catalog_version = model_catalog_snapshot.version;pub const builtin_model_catalog_updated_at = model_catalog_snapshot.updated_at;pub const Provider = provider.Provider;pub const ProviderRequestPolicy = provider.RequestPolicy;pub const ProviderModelDescriptor = provider.ModelDescriptor;pub const OwnedProviderModels = provider.OwnedModels;pub const ProviderFileInput = provider.FileInput;pub const ProviderFileLimits = provider.FileLimits;pub const ProviderFileDescriptor = provider.FileDescriptor;pub const OwnedProviderFile = provider.OwnedFile;pub const ProviderFileDownload = provider.FileDownload;pub const OwnedProviderFileDownload = provider.OwnedFileDownload;pub const ModelProfile = model.ModelProfile;pub const ModelRequest = model.ModelRequest;pub const ModelResponse = model.ModelResponse;pub const OutputFormat = model.OutputFormat;pub const Message = messages.Message;pub const InstructionPart = messages.InstructionPart;pub const NativeToolCall = messages.NativeToolCall;pub const NativeToolResult = messages.NativeToolResult;pub const RequestMessage = messages.RequestMessage;pub const ResponseMessage = messages.ResponseMessage;pub const RequestPart = messages.RequestPart;pub const RequestState = messages.RequestState;pub const ResponsePart = messages.ResponsePart;pub const ResponseState = messages.ResponseState;pub const RetryPromptPart = messages.RetryPromptPart;pub const SpeechPart = messages.SpeechPart;pub const SystemPromptPart = messages.SystemPromptPart;pub const TextContent = messages.TextContent;pub const TextPart = messages.TextPart;pub const UserContent = messages.UserContent;pub const PromptPart = messages.PromptPart;pub const Part = messages.Part;pub const ModelSettings = model.ModelSettings;pub const ReasoningEffort = model.ReasoningEffort;pub const ServiceTier = model.ServiceTier;pub const Truncation = model.Truncation;pub const Logprobs = model.Logprobs;pub const ToolChoice = model.ToolChoice;pub const RequestHeader = model.RequestHeader;pub const ExtraBodyKind = model.ExtraBodyKind;pub const ProviderExtraBody = model.ProviderExtraBody;pub const OutputSpec = output.Spec;pub const OutputChoice = output.Choice;pub const StructuredOutput = output.Structured;pub const PromptedOutput = output.Prompted;pub const ToolOutputSpec = output.Tool;pub const OutputFunction = output.Function;pub const OutputFunctionResult = output.FunctionResult;pub const OutputRunContext = output.RunContext;pub const OutputValidator = output.Validator;pub const OutputValidatorResult = output.ValidatorResult;pub const OutputEndStrategy = output.EndStrategy;pub const FinishReason = messages.FinishReason;pub const Usage = messages.Usage;pub const RequestUsage = usage.RequestUsage;pub const RunUsage = usage.RunUsage;pub const UsageDetail = usage.Detail;pub const UsageCost = usage.Cost;pub const UsageCostSource = usage.CostSource;pub const PriceTable = pricing.Table;pub const PriceEstimate = pricing.Estimate;pub const Tool = model.Tool;pub const ToolCall = messages.ToolCall;pub const ToolOutcome = messages.ToolOutcome;pub const ToolPartKind = messages.ToolPartKind;pub const ToolCallDelta = model.ToolCallDelta;pub const TextPartDelta = model.TextPartDelta;pub const ThinkingPartDelta = model.ThinkingPartDelta;pub const ToolCallPartDelta = model.ToolCallPartDelta;pub const NativeToolCallPartDelta = model.NativeToolCallPartDelta;pub const NativeToolReturnPartDelta = model.NativeToolReturnPartDelta;pub const MediaKind = model.MediaKind;pub const MediaPartDelta = model.MediaPartDelta;pub const SpeechPartDelta = model.SpeechPartDelta;pub const CompactionPartDelta = model.CompactionPartDelta;pub const ResponsePartDelta = model.ResponsePartDelta;pub const PartStartEvent = model.PartStartEvent;pub const PartDeltaEvent = model.PartDeltaEvent;pub const PartEndEvent = model.PartEndEvent;pub const ToolDefinition = model.ToolDefinition;pub const ToolResult = messages.ToolResult;pub const ToolSearchCall = messages.ToolSearchCall;pub const ToolSearchMatch = messages.ToolSearchMatch;pub const ToolSearchResult = messages.ToolSearchResult;pub const ToolAvailabilityDeltaPart = messages.ToolAvailabilityDeltaPart;pub const ToolExecution = model.ToolExecution;pub const ToolOutput = model.ToolOutput;pub const ToolLimits = model.ToolLimits;pub const ToolReturn = model.ToolReturn;pub const ToolReturnSchemaVisibility = model.ToolReturnSchemaVisibility;pub const BuiltinTool = model.BuiltinTool;pub const BuiltinToolKind = model.BuiltinToolKind;pub const Content = messages.Content;pub const ContentSource = messages.ContentSource;pub const CachePoint = messages.CachePoint;pub const CapabilityLoadCall = messages.CapabilityLoadCall;pub const CapabilityLoadResult = messages.CapabilityLoadResult;pub const CompactionPart = messages.CompactionPart;pub const ContentType = model.ContentType;pub const Metadata = messages.Metadata;pub const ProviderFile = messages.ProviderFile;pub const ProviderDetails = messages.ProviderDetails;pub const ProviderPart = messages.ProviderPart;pub const UploadedFile = messages.UploadedFile;pub const Thinking = messages.Thinking;pub const ToolMetadata = model.ToolMetadata;pub const ToolRunContext = model.ToolRunContext;pub const ModelStreamEvent = model.ModelStreamEvent;pub const ModelStreamSink = model.ModelStreamSink;pub const ProviderRequestError = model.ProviderRequestError;pub const ProviderError = model.ProviderError;pub const ProviderErrorObserver = model.ProviderErrorObserver;pub const ProviderErrorPolicy = model.ProviderErrorPolicy;pub const UrlPolicy = security.UrlPolicy;pub const ContextBudget = context_budget.Budget;pub const ContextSnapshot = context_budget.Snapshot;pub const ContextOverflow = context_budget.Overflow;pub const ContextOverflowEvent = context_budget.OverflowEvent;pub const ContextOverflowHook = context_budget.OverflowHook;pub const TokenEstimator = context_budget.TokenEstimator;
test "messages namespace is the canonical conversation type" { const value = messages.Message{ .response = .{ .parts = &.{.{ .text = "hello" }}, } }; const root_alias: Message = value; const model_alias: model.Message = root_alias;
const std = @import("std"); try std.testing.expectEqualStrings("hello", model_alias.response.parts[0].text);}
test { _ = @import("agent.zig"); _ = @import("model.zig"); _ = @import("model_catalog.zig"); _ = @import("model_catalog_snapshot.zig"); _ = @import("testing.zig"); _ = @import("transport.zig"); _ = @import("provider.zig"); _ = @import("json_schema.zig"); _ = @import("output.zig"); _ = @import("tool.zig"); _ = @import("capability.zig"); _ = @import("agent_spec.zig"); _ = @import("json.zig"); _ = @import("reflect.zig"); _ = @import("history.zig"); _ = @import("context_budget.zig"); _ = @import("evals.zig"); _ = @import("providers.zig"); _ = @import("models.zig"); _ = @import("telemetry.zig"); _ = @import("mcp.zig"); _ = @import("codecs/root.zig");}