invoke

operator fun invoke(vararg prerequisites: Tool): PlaybookTool

Kotlin currying operator - unlock after specified prerequisite tool(s). When multiple tools are specified, ALL must be called (AND logic).

Example:

.withTool(analyzeTool)(searchTool)              // single prerequisite
.withTool(reportTool)(searchTool, analyzeTool) // ALL must be called

operator fun invoke(artifactType: KClass<*>): PlaybookTool

Kotlin currying operator - unlock when artifact type is produced.

Example:

.withTool(summarizeTool)(Document::class)