Interfaces

InstructionLease

Interface: InstructionLease

Defined in: src/core/agent/toolEffects.ts:300

One granted require-instruction lease. Validity is COMPUTED, never mutated: 'next-call' serves exactly the Evaluate pass of iteration + 1; 'until-skill-exit' serves every pass while the tenant that granted it (skillId) still holds the tenure.

Death is PERMANENT, and the Evaluate tenure sweep is what makes it so: skillId === tenant alone cannot tell "still holding the tenure" from "re-entered the skill later" (a cyclic graph makes both real), so the Evaluate stage prunes dead leases on EVERY pass — the same pass a tenure ends, the leases it granted leave the record, and a cursor that comes back finds nothing to resurrect. The tool-calls stage also prunes when it appends a new grant (keeps mid-batch arrays tight), but the sweep is the law's owner: it runs whether or not anything new was granted.

Properties

deliveryLease

readonly deliveryLease: InstructionDeliveryLease

Defined in: src/core/agent/toolEffects.ts:302


instructionId

readonly instructionId: string

Defined in: src/core/agent/toolEffects.ts:301


iteration

readonly iteration: number

Defined in: src/core/agent/toolEffects.ts:311

The ReAct iteration whose batch granted it.


skillId?

readonly optional skillId?: string

Defined in: src/core/agent/toolEffects.ts:306

The tenure that granted it (advanced cursor, else the activation tail); absent when no tenant existed at grant. 'until-skill-exit' compares the CURRENT tenant against this — both-undefined still matches.


toolCallId?

readonly optional toolCallId?: string

Defined in: src/core/agent/toolEffects.ts:309


toolName

readonly toolName: string

Defined in: src/core/agent/toolEffects.ts:308

The granting tool — provenance for the record.

On this page