?
JewelProposal
TypeWhat `propose` returns: the method's input to submit (or `null` to abstain), plus reasoning and a `trace`.
The return of a jewel's propose. input is the method input the jewel would submit, or null to abstain, which is a correct and graded outcome rather than an error. reasoning is written to the ledger as plain audit prose, most valuable when the jewel abstains. Attach trace (the deciding runTask's traceId) so the model transcript rides with the pair; a pair without it still grades but is thin as evidence and untrainable.
JewelProposal.ts
interface JewelProposal<I> { input: I | null reasoning: string trace?: string | string[] }
Fields
input
I | null
The method input the jewel would submit. null is abstention, a first-class graded outcome, not an error.
reasoning
string
Audit-log prose naming the evidence. Most valuable on abstention. No headers, bullets, or emojis.
trace
string | string[]
The deciding runTask's traceId (an array for escalation chains). Preserves the transcript with the pair: the training row and the audit trail.