Skip to main content

sunholo Packages

57 packages published by sunholo.

authv0.4.1

Pure API key validation (SHA-256 hash comparison, constant-time) and bearer token extraction

experimentalPureauthsecurityapi-key
configv0.1.2

Load and validate config from environment variables with required/optional/default patterns

experimentalEnvconfigenvenvironment
gcp_authv0.8.1

Exchange GCP ADC refresh tokens for access tokens, detect default project from gcloud config

experimentalFS, Net, Envgcpauthoauth2
http_helpersv0.1.5

Build HTTP requests with auth headers, parse JSON responses, standard error handling

experimentalNethttpapirest
loggingv0.4.0

Structured JSON logging (info/warn/err/trace/withFields) via Debug ghost effect. No IO cascade, no effect declarations needed. Zero-cost in release mode. Host filters by --log-level. Cloud Run and log aggregator friendly.

experimentalPureloggingobservabilityjson
registry_validatorv0.1.2

Validate AILANG packages: parse manifest, check exports, compute hashes, generate metadata. Written in AILANG.

experimentalIO, FSregistryvalidationdogfooding
testing_utilsv0.1.1

Pure assertion helpers for testing: assertEqual, assertContains, assertOk, assertErr

experimentalPure
billing_entitlementsv0.4.2

Pure billing policy: plan catalog lookup, entitlement resolution from subscription state, quota checks, usage delta computation. No side effects.

experimentalPurebillingentitlementsplans
firestorev0.7.3

Firestore REST API client for AILANG. CRUD operations (get, set, delete), structured queries, field value encoding/decoding. Uses GCP ADC auth. Designed for Cloud Run services.

experimentalNet, FS, Envfirestoregcpdatabase
billing_stripev0.1.6

Stripe API adapter: create checkout sessions, customer portal sessions, verify webhooks, map events to internal subscription state. Uses Stripe REST API.

experimentalNet, Envbillingstripepayments
billing_proposalsv0.3.2

Create and manage payment proposals — AI agents propose plan changes, humans approve. Pure state machine for proposal lifecycle.

experimentalPurebillingproposalsai-agent
billing_storev0.9.3

Firestore CRUD for billing records: customers, subscriptions, entitlements, usage, proposals, events. Built on sunholo/firestore package.

experimentalIO, Net, FS, Envbillingfirestorestorage
billing_service_apiv0.5.9

HTTP handlers for billing Cloud Run service. Deploy with 'ailang serve-api'. Checkout, portal, proposals, webhooks, entitlements endpoints.

experimentalNet, FS, Env, IObillingapihttp
test_pkgv0.1.3

Minimal test package — used by coordinator integration tests to verify the autonomous publish pipeline

experimentalPuretestintegration
a2uiv0.2.0

Build A2UI component trees and serialize to flat adjacency-list JSON. Apps define domain-specific mappings; this package provides the primitives and JSON renderer.

experimentalPurea2uiuiprotocol
gemini_livev0.5.1

Pure protocol helpers for Gemini voice on Vertex AI and AI Studio: Live WebSocket setup (speech with a languageCode such as en-GB, gemini-3.8-live avatars, thinking budget), audio in and audioStreamEnd, parsers for usage by modality, media parts and transcripts, and batch TTS (generateContent) with a provider-enforced maxOutputTokens and a completeness check. Measured against Vertex on 25 Sept 2026.

experimentalIOgeminilive-apiwebsocket
firebase_authv0.1.2

Firebase ID token verification via REST API or local JWT/RSA signature validation

experimentalNet, Envauthfirebasejwt
ailang_parsev0.55.5

Universal document parsing for Office, PDF, and image formats

experimentalIO, FS, AI, Env, Net, Clock, Processdocument-parsingofficepdf
gemini_filesv0.2.3

Upload large files (PDF, images) for Gemini AI calls. Auto-detects backend: GCS for Vertex AI (ADC), or AI Studio Files API (API key). Returns file URI for use in multimodal AI requests.

experimentalNet, FS, Env, Clockgeminifiles-apigcs
gcs_storagev0.1.3

Generic GCS operations for AILANG services. Download objects to temp files, initiate resumable uploads (returns pre-authenticated URL for direct client upload), validate and parse gs:// URIs.

experimentalNet, FS, Env, Clockgcpgcsstorage
test_pkg_consumerv0.0.2

Smoke-test dependent of sunholo/test_pkg — exists solely to be bumped by the autonomous cascade in M-PKG-AUTONOMOUS-CASCADE-SAFE smoke tests. Not for production use.

experimentalPuretestintegrationcascade-fixture
duckdbv0.2.1

Pure AILANG DuckDB client using std/process. Execute SQL queries against a local .db file, parse JSON results into Json rows (JObjects). No FFI — shells out to the duckdb CLI binary. Includes execScriptFile (ARG_MAX-safe script execution), limitsPrelude (bounded-memory settings), and tryStrptimeChain (deterministic multi-format date parsing that avoids DuckDB's stateful format-list bug).

experimentalIO, Process, FSduckdbdatabasesql
linkedinv0.6.2

LinkedIn REST API client. Publish text, image and video posts on a company page (Net @limit=1, requires text length 1..3000); videos by the multipart Videos API (4 MB parts, ETags, finalize, poll to AVAILABLE). Read threaded comments (per-post @limit=1, sweep @limit=50). Derive stable pseudonymous personas from actor URNs via SHA-256 — initials + 6-hex avatar seed, IFC-Declassify-typed so the raw URN cannot leak. Credentials live in ~/.ailang/linkedin/credentials.json with automatic OAuth2 refresh.

experimentalNet, FS, Env, Declassify, IOlinkedinsocialoauth2
external_backendv0.2.0

Generic wrapper around std/process.exec for JSON-on-stdout backends (PDF parsers, OCR, embedders, classifiers). Returns Result[Json, BackendError] with ExecFailed/NonZeroExit/InvalidJson variants carrying exit code + stderr. Pure formatError and describeProcessError helpers for logging; describeProcessError renders each std/process failure (timeout duration, output-byte limit, kill signal, PATH miss) rather than collapsing them into one string. Confines the Process effect so callers stay effect-thin.

experimentalProcess, IOsubprocessexecjson
deonticv0.3.0

Pure obligation-reasoning engine (obligations, cure windows, waivers, suspension/resume, force majeure, attributed delay, termination cascade) with Z3-provable settlement math including per-diem statutory interest; outstanding principal is reported and survives termination. Days are signed, so obligations falling due before the model epoch work correctly; an obligation priced at 0 has no payment leg, which makes the engine usable for non-financial deadlines such as decisions that must be settled by a date. It has NO permission or prohibition modality — it answers who owes what by when, not what anyone may do

experimentalIOcontractsdeonticlegal
ollama_streamv0.1.0

Stream tokens from a local Ollama server line-by-line, surfacing both the answer text and the model's reasoning (for thinking models like gemma4).

experimentalStreamollamallmstreaming
emailv0.10.0

Query layer over a locally indexed email archive (DuckDB + Ollama embeddings). Structured query expressions (from:/to:/subject:/has:attachment/dates), semantic search, thread expansion, attachment-chunk search, per-message links (url+text extracted at ingest, queryable in SQL), seven ready-made MCP tools, and the SQL-first ingest that builds the index from parsed .eml JSON. Offline, no AI effect.

experimentalIO, Process, Env, Declassifyemailsearchduckdb
ail_diagv0.1.0

Parse AILANG toolchain output (check/doctor) into structured, code-tagged diagnostics

experimentalPurediagnosticsparsingai-tooling
oauthv0.1.0

Run the OAuth2 installed-app flow end to end from AILANG: build a consent URL, exchange a loopback authorization code for a refresh token, store it in ADC authorized_user shape, and exchange refresh for access tokens against any provider

experimentalFS, Net, IOoauthoauth2auth
gmailv0.4.1

Build an RFC 5322 message with CR/LF header-injection guards, encode it base64url, and create a Gmail draft or send it. Pure composition separated from the effectful call so the security-critical half is testable without a network or a credential.

experimentalNet, IOgmailemailrfc5322
daneel_ext_abiv0.4.0

No description

experimentalIO, FS, Process, Clock, Net, Env, AI
daneel_ext_helpv0.1.0

No description

experimentalIO, FS, Process, Clock, Net, Env, AI
daneel_ext_activityv0.1.0

No description

experimentalIO, FS, Process, Clock, Net, Env, AI
daneel_ext_writerv0.2.0

No description

experimentalIO, FS, Process, Clock, Net, Env, AI
daneel_ext_designv0.1.0

No description

experimentalIO, FS, Process, Clock, Net, Env, AI
daneel_ext_calendarv0.2.4

No description

experimentalIO, FS, Process, Clock, Net, Env, AI
daneel_ext_searchv0.1.0

No description

experimentalIO, FS, Process, Clock, Net, Env, AI
aguiv0.2.1

Typed AG-UI core subset: event lifecycle, text, tools, state snapshots, CUSTOM with JSONL/SSE encoding, strict decoding and run validation; plus RunAgentInput request decoding (sunholo/agui/input). No network transport.

experimentalIOaguiprotocolagents
discordv0.5.0

Bot REST client: reads, paginated sync, sends, replies, edits, typing, threads and rich embeds with images/thumbnails by URL (Discord limit validation enforced). Pure validation/codecs plus one-HTTP-call Net operations. IDs are decimal strings; tokens supplied by caller; no storage or UI dependencies.

experimentalNet, IOdiscordagentsrest
eparsev1.11.0

No description

experimentalIO, Process, Env, FS, Clock, AI, Net, Declassifyemailclimailmate
decisionsv0.4.0

Ask a System One decision model (TypeSafe Jev, via OpenRouter POST /api/alpha/decisions or TypeSafe direct /v1/systemone) typed questions about a JSON state: Noul (P(yes)), Choice (categorical + distribution + confidence), Score (ordinal + distribution + confidence), each also in a JSON-structured variant (NoulR/ChoiceR/ScoreR — the wire accepts structure in every instruction/criteria field). Answers are a closed ADT, read with probabilityOf/best/ranked/topK/margin/entropy/renormalise (search/ranking over the distribution), gate(answer, minConfidence) for confidence routing (Act | Escalate | Ungateable), detect(answer, presentAt, absentAt) for three-way Noul gating, expectedScore/compositeScore for ordinal and composite judgments, featuresOf for ML feature extraction, noulSpread/choiceVotes for self-consistency across k banked Decisions. The package ships NO default threshold — every cut point is the caller's. Calls are ! {Net, Env}, non-deterministic (bank the distribution, never argmax alone), and outside the AI effect's budget/trace-cost accounting. retryable/retryAfterMs cover the vendor's 429/529; listModelsDirect lists the direct API's models.

experimentalNet, Env, IOaidecisionstypesafe
gemini_agentsv0.1.1

Run Google's Deep Research agent through the Vertex AI Interactions API under ADC: build the background request (with a client nonce as the request's identity), start it, poll its record, read the report and its cited sources, cancel and delete it. The agent ids are a proven closed set.

experimentalNet, FS, Env, IOgeminiinteractions-apideep-research
relativityv0.14.0

Pure relativity maths in rapidity form: exact constant-acceleration motion, ship-vs-home trip times (flip-and-burn, burn-coast-burn), trip phase boundaries, boost–cruise–brake plans (optionally ending in a gentler final approach; legs solved for a boost and cruise duration) and Higgs-bubble energetics (photon drive, ISM drag, glow, its angular profile and its blackbody spectrum (temperature, radiance, luminous efficacy, luminance), forward CMB, hover power against gravity), aberration and Doppler for a moving observer, the apparent centre and radius of a nearby sphere, blackbody colour and relativistic brightness of stars, absolute blackbody luminance in cd/m^2 and the CMB temperature seen in any direction, main-sequence dwarf temperature from Gaia BP-RP or Johnson B-V, the V bolometric correction against Teff and a star's luminosity and radius from V, distance and Teff, surface brightness in cd/m^2 and the naked-eye point-source threshold (Crumey 2014), blackbody white-dwarf temperature and V from Gaia colour, closed-form Schwarzschild black-hole values (shadow size, deflection, gravitational shift, clocks and circular orbits, the ISCO, tides across a length and their inversions, hover acceleration and power), and exact Schwarzschild null geodesics for a static observer at r >= 2 r_s (a Binet RK4 integrator, valid for r > 1.5, and Darwin's elliptic form via Carlson R_F, which with everything built on it requires r >= 2, the lens map with a finite regular part, image positions, Einstein angle, magnification, and a monotone inverse row for lens tables). From 0.12.0: the mass-equivalent density n_H (mu_H + delta), drag energy by column, the trip ledger by column, the drive-hold limit asinh sqrt(m_eff a / (n m_p c^2 pi R^2)), and module dust: grain kinetic energy 2 sinh^2(phi/2) m c^2, swept counts and rates per ship second, and the wall afterglow G-AG (a labelled game approximation: temperature, emittance and luminance of a decaying greybody spot, and the smallest visible grain against a background). From 0.13.0: float64 domain bounds documented in the requires (rapidities within +-700, expm1 u <= 700, sinhc |u| <= 700, the optics Doppler/CMB family 0 <= phi <= 700 with unit directions, dot within [-1, 1]); hyper.sinh no longer saturates at |u| = 355 (e^|u|/2 above 350, finite to the float edge, +Inf past it); Motion derives Eq. From 0.14.0: Kerr scalar forms, infinity critical curves, equatorial finite-observer Carter rays, ZAMO/ship frame and frequency transport, full equatorial Weyl tides and exact legacy zero-spin scalar/readout dispatch. Ray tests include ordinary and near-critical probes through a 1e-8 cutoff; bake offline, never ray trace per frame. No Kerr disks, jets, ergosphere interiors or star inverse maps. Units c = 1, light-years, years; r_s for scalar black-hole radii; Kerr coordinate u, impact constants and shadow alpha/beta use GM/c^2, frequencies c^3/GM.

experimentalIOphysicsrelativitysimulation
economicv0.1.1

Read a Visma e-conomic agreement over REST: booked, paid, unpaid and overdue invoices, customers, chart of accounts, accounting years and the entries on any account (e.g. the bank account). Amounts are decoded once into integer minor units; base-currency conversion, invoice totals and paid/remainder partitioning are Z3-proved. Filters are escaped per e-conomic's rules so values cannot change a query's meaning. Read-only by design; works against e-conomic's public demo agreement with no credentials

experimentalNet, IO, FSe-conomiceconomicvisma
mcp_oauthv0.1.2

OAuth 2.1 authorization server for MCP services (Claude/ChatGPT directory listings): PKCE S256 only, CIMD client documents, exact redirect matching, single-use digest-stored codes with replay revocation, rotating refresh families. Service plugs in authenticate/mint/store/revoke.

experimentalNet, Clock, Rand, IO, FS, Env, Declassify, SharedMemoauthmcpsecurity
celestialv0.6.1

Pure celestial mechanics in float64: Kepler's equation (fixed 8-step Newton, residual < 1e-14 for e <= 0.97), position and velocity from Keplerian elements, Kepler's third law both ways (period, and the semi-major axis of a period, e.g. a synchronous orbit), the JPL Standish approximate planetary elements (Table 2a/2b, 3000 BC-3000 AD; outside it the secular terms freeze at the window edge and a mean-orbit flag is set), JPL satellite mean elements referred to a Laplace plane with apse and node precession, the Earth and Moon split out of the Earth-Moon barycentre with the DE440 mass ratio (Earth = EMB - mu r_geo, Moon = EMB + (1 - mu) r_geo), ecliptic J2000 to ICRS (obliquity 84381.406 arcsec) to galactic (Hipparcos 1997 matrix) rotations, and IAU WGCCRE 2015 pole and prime-meridian models. Light-travel (retarded) time by a fixed 4-step iteration, checked against JPL Horizons. Newtonian point-mass gravity in m/s^2 with IAU 2015 nominal GM, refusing inside a body, also relative to a body's centre for station-keeping. Lambert and Minnaert radiance and phase functions with rho tied to geometric albedo (rho = p(2k+1)/2) and Bond albedo (4 rho/(k+1)^2), and a body's illuminance at the observer from the star's illuminance at 1 AU passed as a parameter. Classical single-scattering ring layer (lit face, unlit face with its finite mu -> mu0 limit, transmission), ring bands and ring-shadow ray geometry. The ism module (0.4.0): real spherical harmonics l <= 2 and a star-shaped surface (the Local Interstellar Cloud of Linsky et al. 2019, refit to their Table 2 edge distances, median 0.378 pc), segment crossings by a 64-step bracket and 60 bisections, closed-form parameter intervals of a segment inside a cone shell, an ellipsoid or a slab, n_H from an A_V gradient (Bohlin 1978), HEALPix RING pixel centres (Gorski 2005; healpy-checked), an MRN plus big-grain-tail size distribution normalised to a dust mass density (Krueger et al. 2015 Ulysses data) with exact counts above a radius and an inverse-CDF sampler, and a Poisson draw from two uniforms. The stellar module (0.5.0): Claret & Bloemen 2011 V-band quadratic limb darkening (508 ATLAS and PHOENIX rows, bilinear, clamped and reported), log g from mass and radius, convection cell size and lifetime scaled from the Sun by the pressure scale height, granulation contrast as a temperature fluctuation, spot and facula temperatures, Howard et al. 1990 differential rotation, the solar cycle phase and Spoerer band, the Baumbach 1937 corona, and a line's observed wavelength under a Doppler factor. The habitability module (0.6.0): Kopparapu 2014 one-Earth-mass HZ fluxes and AU distances, inverse-square insolation, full-redistribution equilibrium temperature, RV semi-amplitude, circular transit probability and mutual Hill spacing. Units AU, days (TDB), km, radians, lux, cd/m^2 (ism: any one length unit, SI for grains; habitability: K, solar luminosity/radius/mass, Earth planet masses, m/s RV). No dependency on any other package.

experimentalIOphysicsastronomyorbits
mcp_filesv0.1.4

Moves a user's file to a remote AILANG MCP service with code, never through model output: single-use, account-bound, size-capped upload tokens stored as digests (Z3-proved admission rule), a SEP-2631-shaped upload descriptor, mcp-file:// fileRefs resolved once for their owner, a Net[scope=public] fetch for ChatGPT openai/fileParams, and a self-contained MCP Apps upload widget (direct POST, via-host fallback, an optional app-initiated tools/call after the upload, ui/update-model-context). Service plugs in byte/metadata storage hooks.

experimentalNet, Clock, Rand, IO, FS, Env, Declassify, SharedMemmcpfilesupload
terminal_uiv0.3.0

Pure safe rendering, selection/confirmation/paging, versioned bounded event transcripts and deterministic replay; IO native/line/plain/auto adapters, IO+Env standalone demo

experimentalIO, Env
content_libraryv0.1.0

Pure validated content selection with bounded bundles, full-signature keys, explicit weighted draws and seeded iteration; no persistence or authority

experimentalPurecontentsamplingsimulation
social_dynamicsv0.4.0

Pure configurable social dynamics with explicit knowledge, atomic proposals, conserved project resources and deterministic single-clock scheduling. No universal score.

experimentalIOsimulationsocialsandbox
crew_corev0.6.0

Pure crew host with scenario data decoded from JSON (crew_scenario/1); deterministic, no file or AI effects in the public API.

experimentalIOsimulationsocialnarrative
audiov0.6.1

Generic pure audio processing; no provider/device/session dependency. sound (0.6.0): richer recipes in the same JSON schema: kinds pink, brown, saw (polyBLEP, seeded jitter), fm (2-op, decaying index), pluck (Karplus-Strong, allpass-tuned), events (one-shot voices at fixed or seeded-scatter times that wrap at a loop point); stages bands/vowel (state-variable band-pass banks, Peterson-Barney formants) and space (Schroeder/Moorer reverb); every 0.5.0 recipe renders byte for byte (Classic delegation, frozen compat pins). delay: bounded integer-frame mono/stereo feedback echo, independent ring histories and explicit tail/reset. automation: partition-independent linked linear-gain ramps and retargeting. block: checked per-channel stateful mono/stereo low-pass/high-pass/bypass, reset, per-block/cumulative frame budgets. levels: full and active-window RMS, peak/count reports, bounded Off/PeakSafe/MatchRms plans and checked preparation. clip/edit: validated planar finite-headroom clips and checked edits. clip_pcm: channel-preserving PCM16/WAV with explicit Reject/Saturate and legacy quantization. recipe: bounded deterministic procedural rendering; model-proposed recipes are data. Headless examples process recipe and speech/model PCM fixtures without inference. Legacy analysis and byte pins preserved. Contracts, runtime guards, tests and mathematical proofs are distinct. No resampling or general streaming engine. IO only for smoke.

experimentalIOaudiosynthesisdsp
maintenance_benchv0.1.0

Offline deterministic maintenance cohorts and descriptive cross-language deltas; explicit gh/Git collection and reviewed labels. No LLM dependency.

experimentalFS, IO, Env, Process, Clockresearchbenchmarksdata-science
explainerv0.1.1

The narration half of an explainer-film pipeline (the picture stays in Manim): voice a whole script in ONE std/ai.callSpeech call so the voice does not drift between lines, align speech-to-text word timings to the script (difflib matching blocks, re-implemented), cut the take at the longest pause between lines, then trim and RMS-level each line into mono PCM16 WAV. Word timings come from the caller (e.g. faster-whisper); per-sample work is meant for the bytecode VM.

experimentalAI, IOaudiottsgemini
observev0.1.0

Pure observation geometry in c = 1 units (light-years, years, galaxy frame, home at the origin). lightcone: seenAt(t, obs, src) = t - |obs - src| for a static source; catchUp(delta, oneMinusBeta) = delta / (1 - beta), when a signal sent delta after departure reaches a ship on a straight outbound cruise (pass 1 - beta from sunholo/relativity kinematics.oneMinusBeta); triangleExcess(a, b) = |a| + |b| - |b - a|, >= 0, zero only with b on the far side of home; onBeamLine(port, p, angTol), p on the ray from home through port by an atan2 angle that resolves 1e-8 rad (home and the far side excluded); linkWindow(a, b, legT, covered) = 0 if covered else max(0, |a| + |b| - legT), the wait at b for home's reply to a plan sent from a; earthRate(pos, heading, phi), home-seconds received per ship-second, gamma (1 + beta cos theta) for home's direction via relativity optics.gammaOnePlusBetaCos, -heading at home so leaving reads e^-phi. Check values are stapledons-design relativity-spec RS-26..RS-37. Static sources only: for moving Solar System bodies use sunholo/celestial lighttime.

experimentalIOphysicsrelativitylight-cone
specstorev0.2.0

Tagging specifications (events, parameters, a variable dictionary, a version history and QA rounds) kept as YAML files and checked against a standard that is itself YAML: each rule has a status (decided, proposed, open), a source, and optionally a check key that switches a built-in check on. Projects may record deviations approved by the standard's owner. Generates the readable standard (Markdown) and an .xlsx view (spec, wide matrix, dictionary, history, QA rounds) that opens in Google Sheets. Version, QA-round, pass-by-person and retest rules are Z3-proved

experimentalIO, FS, Env, Declassifyanalyticstaggingga4
worldsv0.1.0

Pure baseline-2026.11 uncertainty priors (Sandberg rate model for life), effective anthropic luck after probability saturation, local exponential-disc Drake counts, SAG13 occurrence and stateAt histories. No RNG or I/O in public modules; years, light-years and Earth units. Distinguishes adopted assumptions from measured values.

experimentalIOastronomyastrobiologydrake