Skip to content

Commit a82e1b9

Browse files
committed
patch
1 parent e6da59d commit a82e1b9

4 files changed

Lines changed: 44 additions & 16 deletions

File tree

src/functions/setup/addCompletion.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import swarm from "../../lib";
33
import { GLOBAL_CONFIG } from "../../config/params";
44
import beginContext from "../../utils/beginContext";
55
import mapCompletionSchema from "../../helpers/mapCompletionSchema";
6+
import { IBaseMessage } from "../../contract/BaseMessage.contract";
7+
import { IBaseCompletionArgs } from "../../contract/BaseCompletion.contract";
68

79
const METHOD_NAME = "function.setup.addCompletion";
810

911
/**
1012
* Function implementation
11-
*/
13+
*/
1214
const addCompletionInternal = beginContext(
1315
(completionPublicSchema: ICompletionSchema) => {
1416
// Log the operation details if logging is enabled in GLOBAL_CONFIG
@@ -48,7 +50,12 @@ const addCompletionInternal = beginContext(
4850
* const completionSchema = { completionName: "OpenAI", model: "gpt-3.5-turbo" };
4951
* const completionName = addCompletion(completionSchema);
5052
* console.log(completionName); // Outputs "OpenAI"
51-
*/
52-
export function addCompletion(completionSchema: ICompletionSchema) {
53+
*/
54+
export function addCompletion<
55+
Message extends IBaseMessage<any> = IBaseMessage<string>,
56+
Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<
57+
IBaseMessage<string>
58+
>
59+
>(completionSchema: ICompletionSchema<Message, Args>) {
5360
return addCompletionInternal(completionSchema);
5461
}

src/functions/target/chat.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import {
88
import { randomString } from "functools-kit";
99
import { errorSubject } from "../../config/emitters";
1010
import { IBaseMessage } from "../../contract/BaseMessage.contract";
11-
import { ISwarmMessage } from "src/contract/SwarmMessage.contract";
12-
import { ISwarmCompletionArgs } from "src/contract/SwarmCompletion.contract";
11+
import { ISwarmMessage } from "../../contract/SwarmMessage.contract";
12+
import { ISwarmCompletionArgs } from "../../contract/SwarmCompletion.contract";
1313

1414
const METHOD_NAME = "function.target.chat";
1515

src/interfaces/Completion.interface.ts

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
11
import { IBaseMessage } from "../contract/BaseMessage.contract";
22
import { IBaseCompletionArgs } from "../contract/BaseCompletion.contract";
33

4+
/*
5+
import { addCompletion } from "../functions/setup/addCompletion";
6+
import { ISwarmMessage } from "../contract/SwarmMessage.contract";
7+
import { IOutlineCompletionArgs } from "../contract/OutlineCompletion.contract";
8+
import { ISwarmCompletionArgs } from "../contract/SwarmCompletion.contract";
9+
10+
11+
addCompletion({
12+
completionName: "test",
13+
getCompletion: async (
14+
params: ISwarmCompletionArgs
15+
): Promise<ISwarmMessage> => {
16+
params.messages[0].role === "assistant";
17+
return null as never;
18+
},
19+
callbacks: {
20+
onComplete: (args) => {}
21+
}
22+
});
23+
*/
24+
425
/**
526
* Interface representing a completion mechanism.
627
* Extends the completion schema to provide a complete API for generating model responses.
@@ -15,9 +36,9 @@ export interface ICompletion extends ICompletionSchema {}
1536
*/
1637
export interface ICompletionCallbacks<
1738
Message extends IBaseMessage<any> = IBaseMessage<string>,
18-
Args extends IBaseCompletionArgs<
39+
Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<
1940
IBaseMessage<string>
20-
> = IBaseCompletionArgs<Message>
41+
>
2142
> {
2243
/**
2344
* Optional callback triggered after a completion is successfully generated.
@@ -34,9 +55,9 @@ export interface ICompletionCallbacks<
3455
*/
3556
export interface ICompletionSchema<
3657
Message extends IBaseMessage<string> = IBaseMessage<any>,
37-
Args extends IBaseCompletionArgs<
58+
Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<
3859
IBaseMessage<string>
39-
> = IBaseCompletionArgs<Message>
60+
>
4061
> {
4162
/** The unique name of the completion mechanism within the swarm.*/
4263
completionName: CompletionName;

types.d.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2515,7 +2515,7 @@ interface ICompletion extends ICompletionSchema {
25152515
* Provides hooks for post-completion actions.
25162516
* @template Message - The type of message, extending IBaseMessage with any role type. Defaults to IBaseMessage with string role.
25172517
*/
2518-
interface ICompletionCallbacks<Message extends IBaseMessage<any> = IBaseMessage<string>, Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<Message>> {
2518+
interface ICompletionCallbacks<Message extends IBaseMessage<any> = IBaseMessage<string>, Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<IBaseMessage<string>>> {
25192519
/**
25202520
* Optional callback triggered after a completion is successfully generated.
25212521
* Useful for logging, output processing, or triggering side effects.
@@ -2528,7 +2528,7 @@ interface ICompletionCallbacks<Message extends IBaseMessage<any> = IBaseMessage<
25282528
* @template Message - The type of message, extending IBaseMessage with any role type. Defaults to IBaseMessage for maximum flexibility.
25292529
* @template Args - The type of completion arguments, defaults to any completion args type.
25302530
*/
2531-
interface ICompletionSchema<Message extends IBaseMessage<string> = IBaseMessage<any>, Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<Message>> {
2531+
interface ICompletionSchema<Message extends IBaseMessage<string> = IBaseMessage<any>, Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<IBaseMessage<string>>> {
25322532
/** The unique name of the completion mechanism within the swarm.*/
25332533
completionName: CompletionName;
25342534
/**
@@ -4824,7 +4824,7 @@ declare class CompletionSchemaService {
48244824
* Supports dynamic updates to completion schemas used by AgentSchemaService, ClientAgent, and other swarm components.
48254825
* @throws {Error} If the key does not exist in the registry (inherent to ToolRegistry.override behavior).
48264826
*/
4827-
override: (key: CompletionName, value: Partial<ICompletionSchema>) => ICompletionSchema<IBaseMessage<any>, IBaseCompletionArgs<IBaseMessage<any>>>;
4827+
override: (key: CompletionName, value: Partial<ICompletionSchema>) => ICompletionSchema<IBaseMessage<any>, IBaseCompletionArgs<IBaseMessage<string>>>;
48284828
/**
48294829
* Retrieves a completion schema from the registry by its name.
48304830
* Fetches the schema from ToolRegistry using the provided key, logging the operation via LoggerService if GLOBAL_CONFIG.CC_LOGGER_ENABLE_INFO is true.
@@ -10330,8 +10330,8 @@ declare function addAgent(agentSchema: IAgentSchema): string;
1033010330
* const completionSchema = { completionName: "OpenAI", model: "gpt-3.5-turbo" };
1033110331
* const completionName = addCompletion(completionSchema);
1033210332
* console.log(completionName); // Outputs "OpenAI"
10333-
*/
10334-
declare function addCompletion(completionSchema: ICompletionSchema): string;
10333+
*/
10334+
declare function addCompletion<Message extends IBaseMessage<any> = IBaseMessage<string>, Args extends IBaseCompletionArgs<IBaseMessage<string>> = IBaseCompletionArgs<IBaseMessage<string>>>(completionSchema: ICompletionSchema<Message, Args>): string;
1033510335

1033610336
/**
1033710337
* Adds a new swarm to the system for managing client sessions.
@@ -10540,7 +10540,7 @@ type TCompletionSchema = {
1054010540
* });
1054110541
* // Logs the operation (if enabled) and updates the completion schema in the swarm.
1054210542
*/
10543-
declare function overrideCompletion(completionSchema: TCompletionSchema): ICompletionSchema<IBaseMessage<any>, IBaseCompletionArgs<IBaseMessage<any>>>;
10543+
declare function overrideCompletion(completionSchema: TCompletionSchema): ICompletionSchema<IBaseMessage<any>, IBaseCompletionArgs<IBaseMessage<string>>>;
1054410544

1054510545
/**
1054610546
* Type representing a partial embedding schema with required embeddingName.
@@ -11853,7 +11853,7 @@ declare function getAgent(agentName: AgentName): IAgentSchemaInternal;
1185311853
* @function getCompletion
1185411854
* @param {CompletionName} completionName - The name of the completion.
1185511855
*/
11856-
declare function getCompletion(completionName: CompletionName): ICompletionSchema<IBaseMessage<any>, IBaseCompletionArgs<IBaseMessage<any>>>;
11856+
declare function getCompletion(completionName: CompletionName): ICompletionSchema<IBaseMessage<any>, IBaseCompletionArgs<IBaseMessage<string>>>;
1185711857

1185811858
/**
1185911859
* Retrieves a compute schema by its name from the swarm's compute schema service.

0 commit comments

Comments
 (0)