Skip to content

Rulvar API reference


Rulvar API reference / @rulvar/core / ToolDef

Interface: ToolDef<S>

Defined in: packages/core/src/l0/spi/toolsource.ts:61

A defined tool. The identity projection is the ToolContract { name, description, parameters, version }: exactly what the model sees and exactly what toolsetHash hashes; execute and every other non-contract field are excluded by construction.

Type Parameters

Type ParameterDefault type
S extends SchemaSpecSchemaSpec

Properties

PropertyModifierTypeDescriptionDefined in
descriptionreadonlystring-packages/core/src/l0/spi/toolsource.ts:64
executepublic(input, ctx) => Promise<unknown>-packages/core/src/l0/spi/toolsource.ts:82
executorreadonlyToolExecutorDefault 'inprocess'.packages/core/src/l0/spi/toolsource.ts:69
executorSpec?readonlyJsonOpaque policy data for a non-inprocess executor: what THIS tool's declared executor should run (for a subprocess adapter, the command and its argv). Never identity: excluded from toolsetHash exactly like executor and risk, and ignored for 'inprocess'. The engine passes it verbatim to the ToolExecutorProvider (RV-216). Its JCS digest enters the authority attestation (RV1802).packages/core/src/l0/spi/toolsource.ts:78
kindreadonly"tool"-packages/core/src/l0/spi/toolsource.ts:62
namereadonlystring-packages/core/src/l0/spi/toolsource.ts:63
needsApprovalreadonlybooleanDefault false; the terminal permission default asks when true.packages/core/src/l0/spi/toolsource.ts:80
parametersreadonlyS-packages/core/src/l0/spi/toolsource.ts:65
risk?readonlyToolRisk-packages/core/src/l0/spi/toolsource.ts:81
version?readonlystringOpaque contract version; part of toolsetHash.packages/core/src/l0/spi/toolsource.ts:67