Resources
Changelog
The three packages share one version. Each release is tagged genesis-vX.Y.Z and published to npm; upgrade all three together.
npm install @lifesi/genesis@0.1.12 @lifesi/genesis-cli@0.1.12 @lifesi/genesis-mcp@0.1.12Genesis 0.1.12
npm had all three packages at 0.1.11, built from 86285025 on Oct 16. The fixes merged since then reach users in this release.
All packages
- The default gateway is
https://os.one.ml/api(SDKDEFAULT_BASE_URL, the CLI's--base-urldefault, and the MCP server through the SDK).GENESIS_BASE_URLstill overrides the default. The merged OpenAPI lists both servers. - Each package ships a README (install, credentials, usage, docs links) and
homepage: https://os.one.ml/docs, and declaresengines.node >=20.19. The packages are ESM only.
CLI (@lifesi/genesis-cli)
genesis statusreads the gateway's liveGET /v1/statusinstead of printing a table built into the package.genesis login --deviceprints the server'sverification_uri, pinned to the One account issuer host, instead of the retired auth host built into 0.1.11. Terminal control sequences are stripped from server text before it is printed.- Sign-in copy reads "Sign in with One" / "One account".
--jsonerrors include the gateway'scode,required_scopeanddocs_urlfor every service, not only Minds.genesis loginworks with no configuration: it defaults to One account's registeredgenesis-cliprofile (its registered loopback callback and audience).GENESIS_AUTH_PRODUCT,GENESIS_AUTH_REDIRECT_URIandGENESIS_AUTH_AUDIENCEstill override it, and an empty value turns browser login off.genesis hives projects delete <project_id>. Projects could be created from the CLI but not deleted.- Server text in human-readable error output is sanitised, and
table()strips terminal control sequences from cells. safe()also strips bidirectional-override and zero-width characters from server text before printing.- Blinds custody commands, and Flocks help text that describes nodes rather than agents.
genesis rigs list,genesis panes list,genesis shells list, and command groupsgenesis gears …,genesis lanes …,genesis flares …: one command per admitted operation, path parameters as arguments,--body-filefor JSON bodies and--idempotency-key(required where the service requires it).
MCP (@lifesi/genesis-mcp)
- The tool and instruction text lists services and the tool count from the generated operations, so it matches the tools actually exposed. It now includes the Blinds custody operations.
- 43 curated tools for the new services (287 → 331 listed tools with
hives_delete_project); every new operation is also reachable throughgenesis_call. Gears, Lanes and Flares writes takeidempotency_key, sent as theIdempotency-Keyheader. Lanes read POSTs are annotated read-only andlanes_deleteTenantdestructive. - Taps stays out: its relay admits only the pinned Console workload service accounts, so no SDK, CLI or MCP caller can reach it.
- Error results include the gateway's
code,required_scopeanddocs_urlfor every service. hives_delete_projectis an MCP tool (destructive), so an agent that creates a project can delete it.GENESIS_MCP_LAZY=1or--lazylists onlygenesis_search_toolsandgenesis_callinstead of every tool (331 tools are about 265 KB on each connect).- Tool descriptions and
genesis_search_toolsresults no longer carry[service status: …]from the 9 Oct inventory (every Hives tool said "down"). Live state isGET /v1/status.
SDK (@lifesi/genesis)
- Error messages come from
ERROR_CATALOG. - Hives resource refusals (queues, topics, cells, volumes, marketplace and runtimes: 67 operations) keep the gateway's
code,request_idandrequired_scope. Before, they became a generichttp_403with neither. Hives' own lower-case codes (selected_context_required,queue_state_conflict, …) pass through too, andselected_context_requiredsays to select a context (genesis context select) rather than to re-read state. A plain-string error body is the message, andtypestays a stable token such asforbidden. The response body is still never retained; only catalog-shaped values are read. NewerrorCatalog(error)returns{ code, required_scope, docs_url }. - The exported
servicesregistry and eachoperationTableentry'supstreamno longer shipstatus/statusNote. Those were a 9 Oct inventory snapshot ("Hives down"), not live state. Both fields stay onServiceMetaas optional and deprecated (always undefined); live state isGET /v1/status(genesis status). http://endpoints are accepted only on loopback.- Blinds custody operations and owner enrollment, with the regenerated operations and schema; Flocks operation titles describe nodes.
- Operations for every route the gateway already admits but no devtool exposed: Rigs
rigs.list()(GET /v1/rigs), Panespanes.list()and Shellsshells.list()(the exact instance-list GETs), Gears workflows, runs, history, signals and operational records (9), Lanes context, cache, ledger, policy, promotions and receipts (24, Sandbox) and Flares v2 flares, conversations, commitments, presence, trust and choreography (34, Sandbox). New specs inopenapi/specs/{rigs,panes,shells,gears,lanes,flares}; the operation table grows from 393 to 463. - Generated operations record whether a spec declares an
Idempotency-Keyheader (idempotencyKey: 'required' | 'optional');idempotencyHeaders()refuses a missing or malformed required key before anything is sent. Lanes POSTs (including the read POSTs) and Flares mutations require one; Gears writes take one optionally. ServiceMeta.gatewayRoute: 'dedicated'marks services the registry describes for the devtools only; the gateway keeps admitting them solely through their own composition (routesFromRegistryskips them, so routing is unchanged).
Release tooling
- The publish workflow could only re-publish the sealed 0.1.9–0.1.11 archives: its dispatch guard and
releasePinsallowed no other version, and adoption refused any changed application input. It now also releases the version on main: run from agenesis-v<version>tag on a main commit (or a dispatch from main), it installs, builds and runs the full test suite, packs that checkout and publishes over npm trusted publishing (OIDC). Retained versions still go through the sealed-archive path. packexpected only@lifesi/genesisto be rewritten fromworkspace:*.@lifesi/genesis-mcpalso depends on@lifesi/genesis-cli, so it now checks every workspace sibling.- Bounded readback after an accepted publish PUT. The README and the CI install check use the scoped
@lifesi/genesis-mcpinstall command. Neither changes package contents. - New check (CI and the release job): it fails when a package version on main is already on npm with different contents.
One Superintelligence, Inc. · Built from Genesis 0.1.12 and the live gateway on 2026-10-20. Support