Function checkChainable

  • The one rule for chaining a tool as a step.

    • a tool in UNCHAINABLE_TOOLS: by no one, listed or not.
    • hasSideEffects: false: chained freely.
    • hasSideEffects: true: only when the host lists the tool's name.
    • flag unset: by no one, listed or not; the host declares it first.
    • not registered: nothing to chain.

    Parameters

    • stepTool: string
    • tool: undefined | ITool<any, any>
    • sideEffectingTools: readonly string[]

    Returns Chainability