UNPKG

@convo-lang/convo-lang

Version:
63 lines (62 loc) 3 kB
import { ReadonlySubject } from "@iyio/common"; import { Observable } from "rxjs"; import { ConversationOptions } from "./Conversation"; import { ConvoEdge, ConvoEdgePattern, ConvoGraphBeforeNextCallback, ConvoGraphMonitorEvent, ConvoGraphStore, ConvoNode, ConvoNodeExeState, ConvoTraverser, ConvoTraverserGroup, StartConvoTraversalOptions } from "./convo-graph-types"; import { ConvoTokenUsage } from "./convo-types"; export interface ConvoGraphCtrlOptions { store?: ConvoGraphStore; convoOptions?: ConversationOptions; maxConcurrentStepExe?: number; logEventsToConsole?: boolean; beforeNext?: ConvoGraphBeforeNextCallback; } export declare class ConvoGraphCtrl { readonly store: ConvoGraphStore; private readonly _tokenUsage; get tokenUsageSubject(): ReadonlySubject<ConvoTokenUsage>; get tokenUsage(): ConvoTokenUsage; private readonly _onMonitorEvent; get onMonitorEvent(): Observable<ConvoGraphMonitorEvent>; private get hasListeners(); private triggerEvent; private readonly logEventsToConsole; private readonly beforeNext?; private readonly defaultConvoOptions; private getConvoOptionsAsync; addTokenUsage(usage: ConvoTokenUsage): void; readonly maxConcurrentStepExe: number; private readonly stepLock; constructor({ store, convoOptions, maxConcurrentStepExe, logEventsToConsole, beforeNext, }: ConvoGraphCtrlOptions); private readonly disposables; private _isDisposed; get isDisposed(): boolean; dispose(): void; startRunAsync(options: StartConvoTraversalOptions): Promise<ConvoTraverserGroup>; startTraversalAsync({ createTvOptions, edge, edgePattern, payload, state, saveToStore, cancel, traversers: traversersOpt, }: StartConvoTraversalOptions): Promise<ConvoTraverserGroup>; private createTvAsync; private _createTvAsync; /** * Moves the traverser to the "to" side of the edge and updates the traversers execution state. * If the target node of the edge can not be found the traverser's execution state will be * set to failed. */ private traverseEdgeAsync; saveTraverserAsync(tv: ConvoTraverser): Promise<void>; runGroupAsync(group: ConvoTraverserGroup): Promise<void>; runAsync(tv: ConvoTraverser, group?: ConvoTraverserGroup): Promise<ConvoNodeExeState>; /** * Executes the current node the traverser in on then traverses to the next node or stops if * no matching edges are found. */ nextAsync(tv: ConvoTraverser, group?: ConvoTraverserGroup): Promise<ConvoNodeExeState>; getNodeMetadataAsync(node: ConvoNode): Promise<import("./convo-graph-types").ConvoMetadataAndTypeMap>; private _nextAsync; /** * Returns all edges that match the given pattern */ getEdgesAsync({ from, fromType, fromFn, input, workflow, }: ConvoEdgePattern): Promise<ConvoEdge[]>; private getSharedSourceAsync; private transformInputAsync; private executeStepAsync; private callTargetAsync; }