@convo-lang/convo-lang
Version:
The language of AI
63 lines (62 loc) • 3 kB
TypeScript
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;
}