Module: Insika::Workflow
- Defined in:
- lib/insika/workflow.rb
Overview
Workflow surface (item 22 / COMPETITIVE-ANALYSIS §4.4). A workflow is a Ruby callable orchestrating RubyLLM Agents/Workflows FROM WITHIN (RubyLLM First); its durable RUN is a Task (checkpointed, recoverable — stronger than Flue's at-most-once run record). This module adds the EXPOSED surface the consumer asked for, matching the honest Flue scope (not Temporal):
· runId — the run id (== task id; the Task IS the run record).
· event stream — :workflow_started / :workflow_completed on the task stream.
· I/O by schema — optional input_schema / output_schema validated at the edges.
A schema is any dry-schema-compatible validator: #call(value) returning a
result that responds to #success? and #errors (dry-schema's own contract).
As a batteries-included default, a plain JSON Schema Hash (the interlingua the
ToolDefinition already speaks) is accepted and validated by the zero-dependency
Schema below — "config over convention": bring dry-schema for richer contracts,
or hand a JSON Schema for the common case.
Defined Under Namespace
Classes: Definition, Schema