Client Construction Class Model

Client Construction Class Model An architecture diagram generated by Archify. ClientConfig · five owner groups · public construction values · frozen public spec ClientConfig five owner groups frozen public spec Normalized Options · config · preference · Architecture component · private frozen record Normalized Options config · preference private frozen record _assemble_client · composition root · Architecture component · selected import _assemble_client composition root selected import BackendAssembly · Web | Android · Architecture component · discriminated union BackendAssembly Web | Android discriminated union NotebookLMClient · installed object · Architecture component · stable identities NotebookLMClient installed object stable identities SharedRuntime · metrics · supervisor · root-owned neutral graph · neutral handoff SharedRuntime metrics · supervisor neutral handoff ClientLifecycle · supervisor · participants · root-owned neutral graph · separate root owner ClientLifecycle supervisor · participants separate root owner FeatureNamespaces · eleven required APIs · Architecture component · complete graph FeatureNamespaces eleven required APIs complete graph WebRuntime · HTTP · executor · typed backend variants · WebAssembly.runtime WebRuntime HTTP · executor WebAssembly.runtime AndroidRuntime · gRPC · transfers · typed backend variants · AndroidAssembly.runtime AndroidRuntime gRPC · transfers AndroidAssembly.runtime LazyWebSidecar · compatibility proxy · Architecture component · Android only · inert LazyWebSidecar compatibility proxy Android only · inert normalizes typed options returns installs constructs contains Web runtime Android runtime compatibility public construction values root-owned neutral graph typed backend variants Legend Frontend Backend Database Cloud External

Complete handoff

  • • Backend assemblers receive typed config, credentials, and private dependencies, then return complete graphs without assigning client fields
  • • _install_client alone mutates the client; SharedRuntime and ClientLifecycle remain separate attributes

One selected branch

  • • Web and Android assembly records carry exact raw and runtime types
  • • LazyWebSidecar is a lifecycle proxy, not a second selected backend