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.
43 lines • 3.19 kB
TypeScript
/**
* # frame/brief — the BRIEF content-hash + constructor (ADR-0026)
*
* The OSS side of the {@link ./types.ts Brief} (the soft, directional English channel): it RENDERS a
* brief supplied by the cell/config and binds its CONTENT HASH into provenance (`brief_hash`, sibling
* to `promptHash`), so "this performance came from this thesis" is attributable. It does NOT build
* the platform Brief/Journal/Thesis lifecycle (that is a kestrel.markets artifact).
*
* **HARD GUARD (ADR-0026):** a Brief is unvalidated free text that can NEVER enter admission /
* narrowing / bounded-risk — only the {@link ./types.ts Mandate}/envelope do. This module only
* HASHES + CONSTRUCTS a Brief; nothing here touches the narrowing algebra.
*
* **HONESTY, BY CONSTRUCTION + AT THE HASH-COMMIT SEAM (kestrel-voy9).** {@link makeBrief} is the
* honest constructor — it computes the hash from the text, so a Brief it builds can NEVER carry an
* attribution that lies about which thesis ran. The complementary half — a Brief that a cell/config
* supplied as a raw `{ text, hash }` literal (bypassing this constructor) — is verified by
* {@link assertBriefHashHonest} at the seams where a Brief's hash actually COMMITS to provenance:
* - the plan-fixture FREEZE ({@link ../session/harness/plan-fixture.ts capturePlanFixture} /
* {@link ../session/harness/plan-fixture.ts readPlanFixture}), where a lying `brief.hash` would
* otherwise mint a stable `plan_fixture_sha` that binds the wrong thesis into grade provenance
* (ADR-0032 §7) — the grade driver never renders, so this is the load-bearing check; and
* - the render seam ({@link ./render.ts buildKernelCellLines}), as defense-in-depth before it
* emits the `brief=<hash>` line.
* The guard is EXPORTED and WIRED at those real drivers (not an inert export nothing calls).
*/
import type { Brief } from "./types.ts";
/** The canonical content hash of a brief's text: `sha256:<64-hex>`. Deterministic + pure — the same
* text hashes identically, so a rebrief is detectable and a grade can bind exactly which thesis ran. */
export declare function briefHashOf(text: string): string;
/** Construct a {@link Brief} from its directional text (+ optional version), computing its content
* hash — the HONEST constructor: a Brief built here can never carry a hash that disagrees with its
* text (dishonest-by-construction is impossible). The cell/config supplies the text; provenance binds
* {@link Brief.hash}. Pure. */
export declare function makeBrief(text: string, version?: string): Brief;
/**
* Fail-closed verification that a supplied Brief's `hash` matches its `text` (kestrel-voy9). A cell or
* an on-disk fixture may carry a raw `{ text, hash }` that bypassed {@link makeBrief}; a mismatch means
* the attribution would LIE about which thesis ran, so it must never enter a content-address or a
* rendered provenance line. Throws {@link KernelHonestyError} on mismatch. Pure. WIRED at the
* plan-fixture freeze/read and the render seam — never a standalone export nothing calls.
*/
export declare function assertBriefHashHonest(brief: Brief): void;
//# sourceMappingURL=brief.d.ts.map