wiro 0.1.1
wiro: ^0.1.1 copied to clipboard
Official Wiro AI SDK for Dart and Flutter with typed model discovery, execution, file uploads, task polling, WebSocket streaming, cancellation, and structured errors.
0.1.1 - 2026-10-29 #
- The typed
Wiro.sora2Pro/WiroSora2ProRequestbinding is removed becauseopenai/sora-2-prois not in the public Wiro AI catalog. - The README and example samples now use
google/veo3-1andwiroai/flux-upscaler.
0.1.0 - 2026-10-29 #
First release on pub.dev. The package was developed as wiro_client and is
published as wiro; import it with package:wiro/wiro.dart.
Removed #
- Remove the typed
Wiro.upscaler/WiroUpscalerRequestbinding. UseWiro.model('google/upscaler', parameters: ...)instead.
Development history (unpublished wiro_client 0.1.0, 2026-07-24) #
- Replace string model arguments with the validated
WiroModelIdextension type and exposeWiroModel.modelId. - Replace string task tokens and IDs with
WiroTaskTokenandWiroTaskId; split task lookup intogetTaskandgetTaskById. - Replace the nullable
WiroTaskUpdatecontainer with sealed snapshot, event, and binary update variants. - Parse ISO-8601 and Unix task/model timestamps as
DateTime; parse task exit codes and output sizes asint. - Normalize
WiroApiError.codeandWiroApiResultException.codetoString. - Replace model search sort and order strings with
WiroModelSortandWiroSortOrder. - Replace
WiroModelParameterwith sealed select, number, text, file, and forward-compatible unknown parameter variants. - Add
WiroModelSchema.validateandWiroSchemaValidationExceptionfor required, select-option, and numeric-bound validation. - Replace dynamic WebSocket messages with sealed log, progress, outputs, and unknown payload variants.
- Make
subscribereturnWiroTaskSuccessorWiroTaskFailure; removethrowOnTaskFailureandWiroTaskFailedException. - Add
subscribeStreamforawait fortask update consumption. - Add ±20% retry jitter with an injectable
Randomfor deterministic tests. - Add the mock-friendly
WiroClientBaseinterface. - Add observable diagnostics for malformed nested JSON that remains lenient.
- Add image, video, audio, and text convenience getters to task outputs.
- Make server-derived model IDs, task IDs, task tokens, and socket tokens nullable so incomplete responses remain safe to parse.
- Restore progress parsing for JSON-encoded WebSocket message strings.
- Route malformed nested JSON diagnostics through each client's logger instead of global mutable state.
- Stop polling or WebSocket tracking when a
subscribeStreamlistener cancels. - Make
WiroSchemaValidationExceptiona local SDK exception with structured validation issues. - Avoid a redundant binary-frame copy when normalizing socket task updates.
- Verify model-sort wire values against the Wiro
search_modelsschema. - Move model parameter defaults onto typed parameter variants.
- Replace
WiroTask.elapsedSecondswithDuration? elapsed. - Add typed
WiroTaskFailureReasonvalues to failed subscription results. - Parse socket message IDs as nullable, validated
WiroTaskIdvalues. - Remove redundant cancellation handling from
subscribeStream. - Add the
WiroModelRequestinterface withrunRequestandsubscribeRequestclient methods for compile-time checked model inputs. - Add typed
WiroFlux2ProRequestandWiroRunwayGen45Requestbindings generated from the live Wiro model schemas. - Add
WiroClient.proxiedfor credential-free clients that route requests through a backend proxy, with custom per-request headers. - Add the
Wironamespace so every model request is discoverable from a single IDE autocomplete entry point: typed factories such asWiro.flux2Pro, plusWiro.modelfor any model without a typed binding. - Add typed requests generated from the live Wiro schemas for GPT Image 2, Nano Banana Pro, Seedream v4, Grok Imagine Image, Google Upscaler, Seedance 2.0, Kling V3, Veo 3.1, Sora 2 Pro, Hailuo 2.3 Fast, Grok Imagine Video, and Lyria 3.
- Add an internal
tool/generate.dartcode generator that produces typed request classes from live Wiro model schemas. - Add
WiroFileInputfor file parameters:WiroFileInput.urlwraps hosted files andWiroFileInput.byteswraps device files, which the client uploads automatically before the model runs. - Add the initial Wiro API client.
- Add model discovery, execution, file upload, and task operations.
- Add API key and signature authentication.
- Add typed models, schemas, tasks, run results, and upload results.
- Add typed authentication, validation, rate-limit, network, timeout, and cancellation exceptions.
- Add request cancellation, configurable retries, backoff, timeouts, and structured logging.
- Add task progress streams.
- Add typed task WebSocket events, progress payloads, and binary frames.
- Add
subscribefor one-call model execution and task polling. - Allow
subscribeto select polling or WebSocket task tracking. - Normalize both transports through
WiroTaskUpdate. - Add explicit
callbackUrlsupport for completion webhooks. - Add Flutter, image-generation, and video-generation examples.
- Add strict analysis, 90% coverage enforcement, CI, and trusted publishing.
- Handle application-level API failures with a typed exception.
- Avoid automatic retries for model runs and file uploads.
- Add streaming uploads and stronger public input validation.