Skip to content

Releases: troothllc/trooth-cli

trooth 0.16.5

Choose a tag to compare

@trooth-eng trooth-eng released this 13 Oct 07:13
v0.16.5
5e09388

The package page reads like the Network it serves

  • The README, which npm shows as the package page, opens the way the leading developer CLIs do: the mark, one line on what the CLI does, badges (version, provenance, licence, docs), a quick start of three commands, and a short section on putting your own company on the Network with the link to claim its record free.
  • Every example reads trooth.co, a company on the Trooth Network. trooth check stripe.com in the README, in trooth --help, in trooth check --help and in the usage errors named a company that has no record, so the first command a reader ran answered "no published record". The guard examples name a generic payments.create_payout tool and api.payments.example.
  • The per-release "Changed in" sections moved from the README to this file, which already held them from 0.6.0 on; 0.5.0, 0.4.4, 0.4.3 and the 0.4.0 removals are now here too.
  • The package description says what the CLI reads and where to claim a record, and the keywords name what people search for (trust profile, company profile, vendor due diligence, security questionnaire, MCP).
  • No command, flag, output or exit code changed.

trooth 0.16.4

Choose a tag to compare

@trooth-eng trooth-eng released this 13 Oct 02:53

A company's Trust Profile, section by section

  • New trooth profile <domain|slug> [--section <name>[,<name>...]] [--json | --markdown], the CLI part of serializing every category of the Trust Profile (with the API and the MCP tool). It sends one request, GET https://trooth.co/api/network/profile?q=<domain>&contract=2 (TROOTH_WEB overrides the base), with the same deadline, size limit, retry, slug resolution, NO_COLOR handling and error documents as check, and prints every section the record carries in the page's order: overview, identity, history, funding, product, pricing, stack, security, privacy, ai, hosting, infrastructure, procurement, relationships, proof, people, documents, evidence, cards and faq (twenty on trooth.co today). Each section shows its state and who said it; each fact its value, who said it and its date when Trooth recorded one. A fact the record does not date prints "date unknown", never a date taken from the record's update time, a reading or another fact. A section the company left empty prints "not published"; one shared on request only, hidden by the company or unreadable on that load says which. Notes, groups and items are kept, and a contested fact lists every account without choosing one.
  • Section names are the MCP tool's, which are the record's own profile.sections[].id. The typed facts (facts[], the only facts with dates) are joined to profile rows by section, label and value, and shown in the section their category belongs to: identity and registration in identity, hosting and recovery in hosting, pricing and pricing-add-ons in pricing, privacy and privacy-roles in privacy, ai-practices in ai, security in security. Those categories are also accepted by --section. A typed fact no row shows is added to its section, so nothing the record carries is dropped; facts that run past one page are read to the end from the same record version, or the command exits 3. The mapping is documented in the README and in bin/lib/profile.mjs.
  • The output says at the top, in text, JSON ("signed": false, verify_with) and Markdown, that the profile is the company's own declared record and is not signed: Trooth signs only the witness statement for a reading it took, which trooth verify <domain> checks.
  • --json prints {subject, query, contract, read_at, found, ..., sections: [{name, title, state, provenance, said_by, meaning, url, facts, notes}]}, described by the new schemas/profile-output.v1.schema.json; the generated TypeScript, Pydantic and Go types include ProfileOutput, ProfileRecordRef, ProfileSection, ProfileFact, ProfileAccount and ProfileNote. scripts/gen-types.mjs now writes an integer literal as int in Go (it wrote string). --markdown prints the same profile as Markdown.
  • Exit codes: 0 found and printed; 1 no published record, an honest absence, with the claim link when the API gives one; 2 usage (including an unknown section and --json with --markdown); 3 network or contract error; 6 withheld; 7 output not delivered. trooth profile --help lists them, and the README, trooth --help and the source's header say the same.
  • New tests/profile.test.mjs in npm test, against a loopback server serving a live response for trooth.co saved unedited on 2026-10-09 (tests/fixtures/profile/trooth.co-2026-10-09.json): every section in order, every typed fact exactly once with its own date and no other, "not published", --section and its aliases, --json against the schema, --markdown, a slug, an absence with and without a claim link, a withheld record, paging and a stale page, a contested fact, a body with no profile, and exits 2 and 3. tests/schemas.test.mjs validates profile --json output against the schema, and tests/cli-0163.test.mjs covers profile --help.

Install: npm install -g trooth@0.16.4 or run npx trooth@0.16.4. Published to npm with provenance from this repository.