nomos_client 0.45.0 copy "nomos_client: ^0.45.0" to clipboard
nomos_client: ^0.45.0 copied to clipboard

Nomos 2 Dart frontend types — the hand-written kernel wire types plus the code-generated per-domain aggregate + directive-payload types. (De)serializes the EXACT serde JSON the Rust kernel + projectio [...]

0.45.0 #

  • offerOutcome(...) — the one outcome-returning offer lane generated clients now call for EVERY directive: returns NomosOfferOutcome with workspace-stamped created (NomosCreated gains workspace + a NomosRef get ref view). Activity raw rows carry created + workspace. Requires nomos_types >= 0.1.3.

0.44.0 #

  • Activity-feed runtime reads on NomosBridge/NomosSession: activityLog({base, limit}) — the committed intent log as raw rows {intentId, domain, directiveId, actorSubject, occurredAt, payload} (decoded payload; the verified author; the physical HLC) — and watchActivity({base}), a stream re-deriving the feed on every sync tick. Generic (raw Maps); the generated renderActivity (from directives' declared .activity() metadata) types them into ActivityEvents. Requires nomos_types >= 0.1.2.

0.43.0 #

  • NomosBridge.foreignReader({cloud}) — a NomosForeignReader backed by the device's multi-workspace bridge plane, so a generated ForeignRef (t.foreignRef) resolves against real data: it mounts the foreign workspace on demand (connect(session: ws, allowUnborn: true), idempotent) and reads it (session(ws).queryById(id)); watch re-reads on each sync tick. A locator resolver, not a foreign key — the foreign holon is mounted only when you resolve. Requires nomos_types >= 0.1.1 (the ForeignRef types).

0.41.0 #

  • NomosTestHarness emits named phase-progress diagnostics (install → spawn runner → await ready → connect, plus per-session progress in cluster) and each connect() carries a connectTimeout (default 120s) that throws a NAMED remedy instead of hanging — so a multi-test AppSim run can tell install vs runner-wait vs session-block vs deadlock (co2 feedback).

0.40.0 #

  • connect(maxMounted: …) — the realm's mounted-workspace budget (LRU park/remount above it); useful on memory-constrained devices holding many local workspaces.
  • MULTI-WORKSPACE BY DEFAULT IN TESTS: NomosTestHarness.ephemeral now connects a DECOY session alongside the workspace under test, and harness.bridge is a NomosSession HANDLE pinned to it (existing tenant tests work unchanged). Sole-session inference therefore never silently passes under the harness — an op that forgot its session refuses in your first test with the same multiple sessions connected — pass session a real multi-workspace app raises. Opt out with decoySession: false.
  • NomosBridge.open(...) — connect + pinned NomosSession handle in one call (final home = await bridge.open(workspace: …); HomeClient(home)): the recommended plane/handle shape; the bare bridge methods remain one-workspace sugar.

0.39.0 #

  • Multi-session compat surface: watchCompatibility takes an optional session; NomosSession pins its compat watch, compat, and onLawChanged to ITS workspace (per-session lawChanged scoping — previously a multi-session plane's compat verdict was whichever session synced last, and a session's compat watch refused on a >1-session plane).

0.38.0 #

  • SPLIT: the pure data core (wire types, offer codec, NomosReads, aggregate meta, schema validation, error info) moved to the new nomos_types package; nomos_client depends on and re-exports it, so existing imports are unchanged. Frontend/UI code can now depend on nomos_types alone.

0.37.1 #

  • Doc fix: NomosBridge.attestedRead docs now match the runtime — the call answers { entry: {queryId, result, attestation: …} }; pass result['entry'] as one offerDirective attestations element.

0.32.0 #

  • SPATIAL READS: NomosBbox + NomosBridge.spatialWithin(spatialId, bbox) + watchSpatial(...) — the R*Tree probe surfaces on the bridge; generated clients (tooling ≥0.46) emit typed sitesByBounds({required NomosBbox bbox}) + watch accessors.
  • Analyzer-clean under strict lints (curly-braces rule) — the two remaining unbraced ifs in the bridge are gone.

0.31.0 #

  • NomosFieldMeta.fromBirth — the registry surfaces BIRTH-PRESENCE LAW (.fromBirth() fields, tooling ≥0.42): a gate invariant guarantees the field present on every row, and the generated read models type it non-nullable.

0.30.0 #

  • RUNTIME AGGREGATE METADATA: NomosAggregateMeta / NomosFieldMeta / mergeAggregateMeta (src/aggregate_meta.dart) — the support types for the generated per-domain const Map<String, NomosAggregateMeta> <domain>AggregateMeta registry (nomos-compile ≥0.41 tooling). Generic surfaces (history/audit UIs, op renderers, in-app agents) resolve NomosAggregateMeta.typeOfId(op.aggregate) → field kinds, enum wire values, VO/variant names, and the typed fromJson decoder — the compiler's knowledge emitted as data, derived from the law's own declarations.

0.29.0 #

  • LAW-MINTED IDS RETURN TO THE CALLER: NomosBridge.offerCreates(...)NomosOfferOutcome{head, created} — a .creates plan mints its aggregate id inside the sealed intent (payloads never carry one); the offer now hands the minted ids back, so generated create methods return the typed id with no query-after round-trip. New types NomosOfferOutcome / NomosCreated.
  • NomosBridge.mintId(typeTag) — reserve a kernel-minted typed id (<TypeTag>_<uuidv7>) via the holon's front-door mint, for app-side references. (.creates payloads still carry NO id — the law mints those.)
  • Generated Dart clients (nomos-compile ≥0.38 tooling): .creates(...) directive methods now return Future<NomosOfferOutcome> instead of Future<String>outcome.created.single.id is the new aggregate's typed id.

0.28.0 #

  • NomosTestHarness (nomos_headless.dart): ephemeral real-law fixtures — one call births a throwaway cloud workspace, deploys compiled *.deploy.json law, and hands out independent client replicas (connect(clientId:)) over the node runner. Identity defaults to the githolon login --agent session (~/.holon/credentials.json). Live-proven: birth → deploy → write on one replica → converge + typed read on another, 14s end-to-end.
  • HEADLESS TRANSPORT (package:nomos_client/nomos_headless.dart): NodeRunnerTransport — a BridgeTransport over the @githolon/client node runner (runner/node-entry.mjs) as a plain child process (NDJSON stdio). flutter test / dart test / CI drive the REAL githolon (byte-identical wasm, real ledger, real gate) through NomosBridge + the generated typed clients — no Flutter plugins, no WebView, no assets. Requires node on PATH + a resolvable @githolon/client (auto-resolved from the app's node_modules, or pass entry:). Proven end-to-end: connect → offerDirective → sync(admit) → typed query, and the same test green under both dart test and flutter test.

0.27.0 #

  • TYPED SNAPSHOT RECOVERY (corrupt local custody): NomosBridge.connect(recover: true) recovers IN-PLACE from a corrupt restoreFrom snapshot — salvages local-only authored writes (via the fallible intents_above, which stops at a missing-ancestor gap) + the DLQ, refolds FRESH from cloud, re-offers the salvaged work (deduped), re-queues the DLQ. The report rides bridge.lastRecovery = {salvagedWrites, requeuedDeadLetters, unsalvageable} — a write the current law refuses lands in unsalvageable + the DLQ (surfaced, never dropped). Also holon.salvage() / holon.absorbSalvage(). Closes the restoreFrom-leaves-read-model-empty case.

0.26.0 #

  • TIER-2 SYNC SIZE: NomosBridge.syncSize(){bytes, kind} — how many bytes this workspace would transfer to catch up, WITHOUT downloading (a HEAD on the serving pack; the host answers Content-Length, cached ~15s). Sum across open workspaces for an aggregate "X MB to sync" total before any download.

0.25.0 #

  • SYNC STATE + REAL LOADING BARS: NomosBridge gains syncStatus (Stream

0.24.0 #

  • createWorkspace / shareWith no longer require authorSecret — it defaults to the connection's signing key (the home device key NomosScope.home loaded). A frontend dev never threads a key through make-workspace or share.

0.23.0 #

  • NomosBridge.shareWith — one-call cross-custody share (sign quote + deliver recordShare to the subjects home). Closes the shared-with-me loop.

0.22.0 #

  • NomosBridge.offerIntent (canonical write verb; offerDirective kept as alias) + one-call NomosBridge.createWorkspace (sign + relay a control-plane offer).

0.21.0 #

  • NomosBridge.noteLocalSpan(...) — inject a locally-measured span (e.g. the Dart-side durable save, the "saved to disk" number) into the span stream so it appears on the flame chart AND the per-phase stats exactly like a kernel span. Additive; used by nomos_flutter's durable-save-on-write.

0.20.2 #

  • NomosBridge.connect accepts the internal allowUnborn opt-in used by NomosScope.home, so the home-birth ceremony can boot a local bridge before the home workspace has a remote main. The default remains strict for ordinary workspaces.

0.20.1 #

  • NomosBridgeError now carries structured NomosErrorInfo alongside the existing human-readable message. The envelope includes stable code/component/operation fields, workspace/domain/directive context, trace/span ids, arbitrary attributes, and toTelemetryAttributes() for future OpenTelemetry export without taking an SDK dependency.
  • Every bridge request now carries an OpenTelemetry-shaped trace context. String-only legacy runner errors still work and are upgraded locally with operation/trace metadata.

0.20.0 #

  • Authority-aware: NomosBridge.offerDirective(domain, directiveId, payload, {actor, domainHash}) — generated clients route every offer through THE ONE encoder (encodeIntentOfferBytes in @githolon/client); no per-client envelope encoding. New typed MissingOfferAuthority — a .requires(...) directive authored with no actor throws BEFORE submit (an actorless gated offer cannot be generated). Lockstep jump to 0.20.0.

0.17.0 #

  • Lockstep bump with the birth-primitive release (see @githolon/dsl 0.17.0): birth is one law primitive (birthChild), the platform-creator tier collapsed onto #creator, grantCreation takes a user or key subject. The Dart wire types track the current /v2 governance surface.

0.16.0 #

  • First pub.dev release: kernel wire types, NomosBridge protocol, typed offer/query/watch surface.
0
likes
0
points
3.27k
downloads

Publisher

unverified uploader

Weekly Downloads

Nomos 2 Dart frontend types — the hand-written kernel wire types plus the code-generated per-domain aggregate + directive-payload types. (De)serializes the EXACT serde JSON the Rust kernel + projection produce/consume.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

crypto, json_schema, nomos_types

More

Packages that depend on nomos_client