Skip to main content

TypeScript Agent SDK

The TypeScript agent is a Node.js client for a Tricryption key server. It speaks the 8.1 key server binary wire protocol directly — including SRP-6a/SHA-384 login over TLS 1.3 — and has no native build step and no native dependency.

It is the SDK to reach for when the integration is a Node service: a gateway, an administrative console back end, a batch job. Applications that link the native library should use the C/C++ reference; JVM applications should use the Java reference; applications that would rather speak HTTP than link anything should use the REST Gateway, which is itself built on this agent.

Read the connection model first

The wire protocol carries no request/response correlation id, so a connection carries exactly one operation at a time and a second concurrent call is rejected. A Promise-returning client that looks safe to drive concurrently is not. Code written on the natural assumption works under light load and fails under real load.

The connection model →

What this tier is, and what it is not

These pages are hand-written and deliberately small. They are not a generated reference, and the difference is not stylistic.

A generated reference publishes whatever the source comments say — including what they say wrongly. This package's comments are unusually rich, and a sweep of them found claims that were true when written and had been overtaken by a later fix landing in a different file. Until the population of such claims is measured rather than assumed, generating from those comments would publish the stale ones with the same authority as the correct ones. So this tier documents the handful of behaviors that actually mislead an integrator, each verified against the handler that implements it, and leaves the exhaustive per-symbol listing to the package's own type declarations — which your editor already reads.

Getting the package

The package ships as TypeScript sources and is compiled before use. A fresh checkout has neither dist/ nor node_modules/:

npm install
npm run build # tsc, then the one non-TypeScript asset

npm run build is a prerequisite for anything that imports from the package — the main and types entries both point into dist/, which is not committed. Skipping it produces MODULE_NOT_FOUND on the first import.

The package publishes full .d.ts declarations with declaration maps, so an editor resolves every symbol below to its source and to the notes attached to it. Those notes are the long form of these pages; treat this tier as the index to them.

The pages

PageWhat it covers
Connection modelOne operation per connection, why concurrency needs a pool, and the exact refusal you get if you ignore it.
Administering principals and rolesThe calls whose behavior contradicts their obvious reading — replace-not-add, in-place results, silently rewritten arguments.
Groups and membershipA group is a principal; the direct group list is not the membership closure. The easiest place to write a wrong authorization check.
ErrorsThe exported taxonomy, and why a refusal is detected by prose rather than by a numeric code.

Scope

This describes the package as it is built today, on the 8.1 line. It is not a complete enumeration of the surface. Measured on the 8.1 engine line at commit b7c2b90b2, the package's barrel exports 287 names — 43 values and 244 types, counted as exported symbols by the TypeScript compiler rather than as export statements, of which the barrel has 98. The four pages above discuss perhaps thirty of those names.

Absence from these pages is not a statement that a capability is missing — it is a statement that the capability behaves the way its signature suggests, which is true of most of the surface and is exactly why the exceptions are worth writing down.

Counts in these pages name what they measured and when. A count in a document measures the day it was taken.