kestrel.markets
Version:
A typed, token-efficient language + runtime for agentic trading: agents author bounded plans, the runtime fires them at the tick. CLI + typed library + MCP server.
25 lines (24 loc) • 1.18 kB
JavaScript
/**
* kestrel.markets/protocol — OfferTerms, the commercial-terms VOCABULARY carried on
* an Offer (PLAT-ADR-0028 slice A1, owner-approved protocol-first split 2026-07-15).
*
* SHAPES ONLY. This module states the closed set of ways an Offer may be priced —
* one-shot, recurring, minimum-commitment, included-credits, committed-use-discount —
* as pure nouns/enums. It carries NO semantics: no billing, proration, renewal-clock,
* or credit-burn logic lives here. Recurring-Envelope SEMANTICS are explicitly OUT of
* scope (platform M2). Like the rest of `src/protocol/**` this file imports NOTHING and
* pulls in no runtime (asserted by tests/protocol.boundary.test.ts).
*/
/**
* Runtime tuple of every {@link OfferTermsKind}. Same both-ways closed-vocabulary guard
* as {@link import("./index.ts").SCOPES}: a `.kind` added to (or removed from) the union
* without editing this tuple fails the `satisfies`/exhaustiveness check below at compile
* time. The platform's OpenAPI conformance check reads these contents.
*/
export const OFFER_TERMS_KINDS = [
"one_shot",
"recurring",
"min_commit",
"included_credits",
"committed_use_discount",
];