@agentica/core
Version:
Agentic AI Library specialized in LLM Function Calling
36 lines (30 loc) • 1.13 kB
text/typescript
import type { ILlmSchema } from "@samchon/openapi";
import type { AgenticaContext } from "../../context/AgenticaContext";
import type { AgenticaOperationSelection } from "../../context/AgenticaOperationSelection";
import type { __IChatFunctionReference } from "../../context/internal/__IChatFunctionReference";
import type { AgenticaCancelEvent } from "../../events";
import { createCancelEvent } from "../../factory/events";
import { createOperationSelection } from "../../factory/operations";
/**
* @internal
*/
export function cancelFunctionFromContext<Model extends ILlmSchema.Model>(
ctx: AgenticaContext<Model>,
reference: __IChatFunctionReference,
): void {
const index: number = ctx.stack.findIndex(
item => item.operation.name === reference.name,
);
if (index === -1) {
return;
}
const item: AgenticaOperationSelection<Model> = ctx.stack[index]!;
ctx.stack.splice(index, 1);
const event: AgenticaCancelEvent<Model> = createCancelEvent({
selection: createOperationSelection({
operation: item.operation,
reason: reference.reason,
}),
});
ctx.dispatch(event);
}