@aigne/core 0.4.201 → 0.4.203

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,6 +45,13 @@ export var OrderedRecord;
45
45
  return undefined;
46
46
  }
47
47
  OrderedRecord.find = find;
48
+ function at(record, index) {
49
+ if (!record?.$indexes.length)
50
+ return undefined;
51
+ const id = record.$indexes.at(index);
52
+ return record[id];
53
+ }
54
+ OrderedRecord.at = at;
48
55
  function push(record, ...items) {
49
56
  for (const item of items) {
50
57
  if (record[item.id])
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,46 @@
1
+ import { DataType } from './data-type';
2
+ import { OrderedRecord } from './utils';
3
+ export declare function schemaToDataType(dataType: {
4
+ [name: string]: DataTypeSchema;
5
+ }): OrderedRecord<DataType>;
6
+ export type DataTypeSchema = DataTypeSchemaString | DataTypeSchemaNumber | DataTypeSchemaBoolean | DataTypeSchemaObject | DataTypeSchemaArray;
7
+ export interface DataTypeSchemaBase {
8
+ description?: string;
9
+ required?: boolean;
10
+ }
11
+ export interface DataTypeSchemaString extends DataTypeSchemaBase {
12
+ type: 'string';
13
+ }
14
+ export interface DataTypeSchemaNumber extends DataTypeSchemaBase {
15
+ type: 'number';
16
+ }
17
+ export interface DataTypeSchemaBoolean extends DataTypeSchemaBase {
18
+ type: 'boolean';
19
+ }
20
+ export interface DataTypeSchemaObject extends DataTypeSchemaBase {
21
+ type: 'object';
22
+ properties: {
23
+ [key: string]: DataTypeSchema;
24
+ };
25
+ }
26
+ export interface DataTypeSchemaArray extends DataTypeSchemaBase {
27
+ type: 'array';
28
+ items: DataTypeSchema;
29
+ }
30
+ type SchemaTypeInner<T extends DataTypeSchema> = T extends DataTypeSchemaString ? string : T extends DataTypeSchemaNumber ? number : T extends DataTypeSchemaBoolean ? boolean : T extends DataTypeSchemaObject ? MakeNullablePropertyOptional<{
31
+ [K in keyof T['properties']]: SchemaType<T['properties'][K]>;
32
+ }> : T extends DataTypeSchemaArray ? SchemaType<T['items']>[] : never;
33
+ export type SchemaType<T extends DataTypeSchema> = T['required'] extends true ? SchemaTypeInner<T> : SchemaTypeInner<T> | undefined | null;
34
+ export type SchemaMapType<T extends Record<string, DataTypeSchema>> = SchemaType<{
35
+ type: 'object';
36
+ required: true;
37
+ properties: T;
38
+ }>;
39
+ type MakeNullablePropertyOptional<T extends {
40
+ [key: string]: any;
41
+ }> = {
42
+ [K in keyof T as Extract<T[K], null | undefined> extends never ? K : never]: T[K];
43
+ } & {
44
+ [K in keyof T as Extract<T[K], null | undefined> extends never ? never : K]?: T[K];
45
+ };
46
+ export {};
@@ -1,10 +1,14 @@
1
- import { DataType } from './data-type';
1
+ import { DataTypeSchema, SchemaMapType } from './data-type-schema';
2
2
  import { FunctionRunner } from './function-runner';
3
3
  import { RunOptions, Runnable, RunnableDefinition, RunnableResponseStream } from './runnable';
4
4
  export declare class FunctionAgent<I extends {} = {}, O extends {} = {}> extends Runnable<I, O> {
5
5
  definition: FunctionAgentDefinition;
6
6
  runner?: FunctionRunner | undefined;
7
- static create<I extends {} = {}, O extends {} = {}>(options: Parameters<typeof createFunctionAgentDefinition>[0]): FunctionAgent<I, O>;
7
+ static create<I extends {
8
+ [name: string]: DataTypeSchema;
9
+ }, O extends {
10
+ [name: string]: DataTypeSchema;
11
+ }>(options: Parameters<typeof createFunctionAgentDefinition<I, O>>[0]): FunctionAgent<SchemaMapType<I>, SchemaMapType<O>>;
8
12
  constructor(definition: FunctionAgentDefinition, runner?: FunctionRunner | undefined);
9
13
  run(input: I, options: RunOptions & {
10
14
  stream: true;
@@ -13,19 +17,15 @@ export declare class FunctionAgent<I extends {} = {}, O extends {} = {}> extends
13
17
  stream?: false;
14
18
  }): Promise<O>;
15
19
  }
16
- export declare function createFunctionAgentDefinition(options: {
20
+ export declare function createFunctionAgentDefinition<I extends {
21
+ [name: string]: DataTypeSchema;
22
+ }, O extends {
23
+ [name: string]: DataTypeSchema;
24
+ }>(options: {
17
25
  id?: string;
18
26
  name?: string;
19
- inputs?: {
20
- name: string;
21
- type: DataType['type'];
22
- required?: boolean;
23
- }[];
24
- outputs?: {
25
- name: string;
26
- type: DataType['type'];
27
- required?: boolean;
28
- }[];
27
+ inputs: I;
28
+ outputs: O;
29
29
  language: string;
30
30
  code: string;
31
31
  }): FunctionAgentDefinition;
@@ -1,6 +1,7 @@
1
1
  export * from './utils';
2
2
  export * from './constants';
3
3
  export * from './data-type';
4
+ export * from './data-type-schema';
4
5
  export * from './context';
5
6
  export * from './runnable';
6
7
  export * from './pipeline-agent';
@@ -1,12 +1,15 @@
1
- import { DataType } from './data-type';
1
+ import { DataTypeSchema, SchemaMapType } from './data-type-schema';
2
2
  import { LLMModel, LLMModelInputs, Role } from './llm-model';
3
3
  import { RunOptions, Runnable, RunnableDefinition, RunnableResponseStream } from './runnable';
4
- import { OmitPropsFromUnion } from './utils/omit';
5
4
  import { OrderedRecord } from './utils/ordered-map';
6
5
  export declare class LLMAgent<I extends {} = {}, O extends {} = {}> extends Runnable<I, O> {
7
6
  definition: LLMAgentDefinition;
8
7
  model?: LLMModel | undefined;
9
- static create<I extends {} = {}, O extends {} = {}>(options: Parameters<typeof createLLMAgentDefinition>[0]): LLMAgent<I, O>;
8
+ static create<I extends {
9
+ [name: string]: DataTypeSchema;
10
+ }, O extends {
11
+ [name: string]: DataTypeSchema;
12
+ }>(options: Parameters<typeof createLLMAgentDefinition<I, O>>[0]): LLMAgent<SchemaMapType<I>, SchemaMapType<O>>;
10
13
  constructor(definition: LLMAgentDefinition, model?: LLMModel | undefined);
11
14
  run(input: I, options: RunOptions & {
12
15
  stream: true;
@@ -15,16 +18,20 @@ export declare class LLMAgent<I extends {} = {}, O extends {} = {}> extends Runn
15
18
  stream?: false;
16
19
  }): Promise<O>;
17
20
  }
18
- export declare function createLLMAgentDefinition(options: {
21
+ export declare function createLLMAgentDefinition<I extends {
22
+ [name: string]: DataTypeSchema;
23
+ }, O extends {
24
+ [name: string]: DataTypeSchema;
25
+ }>(options: {
19
26
  id?: string;
20
27
  name?: string;
28
+ inputs: I;
29
+ outputs: O;
30
+ modelOptions?: LLMModelInputs['modelOptions'];
21
31
  messages?: {
22
32
  role: Role;
23
33
  content: string;
24
34
  }[];
25
- modelOptions?: LLMModelInputs['modelOptions'];
26
- inputs?: OmitPropsFromUnion<DataType, 'id'>[];
27
- outputs?: OmitPropsFromUnion<DataType, 'id'>[];
28
35
  }): LLMAgentDefinition;
29
36
  export interface LLMAgentDefinition extends RunnableDefinition {
30
37
  type: 'llm_agent';
@@ -1,15 +1,16 @@
1
1
  import type { Context } from './context';
2
- import { DataType } from './data-type';
3
2
  import { LLMModel, LLMModelInputMessage, LLMModelInputs, LLMModelOptions } from './llm-model';
4
3
  import { RunOptions, Runnable, RunnableDefinition, RunnableResponseStream } from './runnable';
5
4
  import { OrderedRecord } from './utils';
5
+ import { ExtractRunnableInputType, ExtractRunnableOutputType } from './utils/runnable-type';
6
+ import { ObjectUnionToIntersection } from './utils/union';
6
7
  export declare class LLMDecisionAgent<I extends {
7
8
  [key: string]: any;
8
9
  } = {}, O extends {} = {}> extends Runnable<I, O> {
9
10
  definition: LLMDecisionAgentDefinition;
10
11
  model?: LLMModel | undefined;
11
12
  context?: Context | undefined;
12
- static create<I extends {} = {}, O extends {} = {}>(options: Parameters<typeof createLLMDecisionAgentDefinition>[0]): LLMDecisionAgent<I, O>;
13
+ static create<Case extends DecisionAgentCaseParameter>(options: Parameters<typeof createLLMDecisionAgentDefinition<Case>>[0]): LLMDecisionAgent<ObjectUnionToIntersection<ExtractRunnableInputType<Case['runnable']>>, ExtractRunnableOutputType<Case['runnable']>>;
13
14
  constructor(definition: LLMDecisionAgentDefinition, model?: LLMModel | undefined, context?: Context | undefined);
14
15
  run(input: I, options: RunOptions & {
15
16
  stream: true;
@@ -18,28 +19,17 @@ export declare class LLMDecisionAgent<I extends {
18
19
  stream?: false;
19
20
  }): Promise<O>;
20
21
  }
21
- export interface DecisionAgentCaseParameter<I extends {} = {}, O extends {} = {}, R = Runnable<I, O>> {
22
+ export interface DecisionAgentCaseParameter<R extends Runnable = Runnable> {
22
23
  name?: string;
23
24
  description?: string;
24
25
  runnable: R;
25
- input?: {
26
- [key: string]: {
27
- fromVariable: string;
28
- fromVariablePropPath?: string[];
29
- } | undefined;
30
- };
31
26
  }
32
- export declare function createLLMDecisionAgentDefinition(options: {
27
+ export declare function createLLMDecisionAgentDefinition<Case extends DecisionAgentCaseParameter>(options: {
33
28
  id?: string;
34
29
  name?: string;
35
- inputs?: {
36
- name: string;
37
- type: DataType['type'];
38
- required?: boolean;
39
- }[];
40
30
  messages: string;
41
31
  modelOptions?: LLMModelOptions;
42
- cases: DecisionAgentCaseParameter[];
32
+ cases: Case[];
43
33
  }): LLMDecisionAgentDefinition;
44
34
  export interface LLMDecisionAgentDefinition extends RunnableDefinition {
45
35
  type: 'llm_decision_agent';
@@ -1,10 +1,14 @@
1
1
  import type { Context } from './context';
2
- import { DataType } from './data-type';
2
+ import { DataTypeSchema, SchemaMapType } from './data-type-schema';
3
3
  import { RunOptions, Runnable, RunnableDefinition, RunnableResponse, RunnableResponseStream } from './runnable';
4
4
  export declare class LocalFunctionAgent<I extends {} = {}, O extends {} = {}, State = {}> extends Runnable<I, O> {
5
5
  definition: LocalFunctionAgentDefinition<I, O, State>;
6
6
  context?: Context<State> | undefined;
7
- static create<I extends {} = {}, O extends {} = {}, State = {}>(options: Parameters<typeof createLocalFunctionAgentDefinition<I, O, State>>[0]): LocalFunctionAgent<I, O, State>;
7
+ static create<I extends {
8
+ [name: string]: DataTypeSchema;
9
+ }, O extends {
10
+ [name: string]: DataTypeSchema;
11
+ }, State = {}>(options: Parameters<typeof createLocalFunctionAgentDefinition<I, O, State>>[0]): LocalFunctionAgent<SchemaMapType<I>, SchemaMapType<O>, State>;
8
12
  constructor(definition: LocalFunctionAgentDefinition<I, O, State>, context?: Context<State> | undefined);
9
13
  run(input: I, options: RunOptions & {
10
14
  stream: true;
@@ -13,23 +17,19 @@ export declare class LocalFunctionAgent<I extends {} = {}, O extends {} = {}, St
13
17
  stream?: false;
14
18
  }): Promise<O>;
15
19
  }
16
- export declare function createLocalFunctionAgentDefinition<I extends {} = {}, O extends {} = {}, State = {}>(options: {
20
+ export declare function createLocalFunctionAgentDefinition<I extends {
21
+ [name: string]: DataTypeSchema;
22
+ }, O extends {
23
+ [name: string]: DataTypeSchema;
24
+ }, State = {}>(options: {
17
25
  id?: string;
18
26
  name?: string;
19
- inputs?: {
20
- name: string;
21
- type: DataType['type'];
22
- required?: boolean;
23
- }[];
24
- outputs?: {
25
- name: string;
26
- type: DataType['type'];
27
- required?: boolean;
28
- }[];
29
- function?: (input: I, options: {
27
+ inputs: I;
28
+ outputs: O;
29
+ function?: (input: SchemaMapType<I>, options: {
30
30
  context: Context<State>;
31
- }) => Promise<RunnableResponse<O>>;
32
- }): LocalFunctionAgentDefinition<I, O, State>;
31
+ }) => Promise<RunnableResponse<SchemaMapType<O>>>;
32
+ }): LocalFunctionAgentDefinition<SchemaMapType<I>, SchemaMapType<O>, State>;
33
33
  export interface LocalFunctionAgentDefinition<I extends {} = {}, O extends {} = {}, State = {}> extends RunnableDefinition {
34
34
  type: 'local_function_agent';
35
35
  function?: (input: I, options: {
@@ -1,5 +1,5 @@
1
1
  import type { Context } from './context';
2
- import { DataType } from './data-type';
2
+ import { DataTypeSchema, SchemaMapType } from './data-type-schema';
3
3
  import { RunOptions, Runnable, RunnableDefinition, RunnableOutput, RunnableResponseStream } from './runnable';
4
4
  import { OrderedRecord } from './utils/ordered-map';
5
5
  export declare class PipelineAgent<I extends {
@@ -7,7 +7,14 @@ export declare class PipelineAgent<I extends {
7
7
  } = {}, O extends {} = {}> extends Runnable<I, O> {
8
8
  definition: PipelineAgentDefinition;
9
9
  context?: Context | undefined;
10
- static create<I extends {} = {}, O extends {} = {}>(options: Parameters<typeof createPipelineAgentDefinition>[0]): PipelineAgent<I, O>;
10
+ static create<I extends {
11
+ [name: string]: DataTypeSchema;
12
+ }, O extends {
13
+ [name: string]: DataTypeSchema & {
14
+ fromVariable: string;
15
+ fromVariablePropPath?: string[];
16
+ };
17
+ }>(options: Parameters<typeof createPipelineAgentDefinition<I, O>>[0]): PipelineAgent<SchemaMapType<I>, SchemaMapType<O>>;
11
18
  constructor(definition: PipelineAgentDefinition, context?: Context | undefined);
12
19
  run(input: I, options: RunOptions & {
13
20
  stream: true;
@@ -26,21 +33,18 @@ export interface PipelineAgentProcessParameter<I extends {} = {}, O extends {} =
26
33
  } | undefined;
27
34
  };
28
35
  }
29
- export declare function createPipelineAgentDefinition(options: {
30
- id?: string;
31
- name?: string;
32
- inputs?: {
33
- name: string;
34
- type: DataType['type'];
35
- required?: boolean;
36
- }[];
37
- outputs: {
38
- name: string;
39
- type: DataType['type'];
40
- required?: boolean;
36
+ export declare function createPipelineAgentDefinition<I extends {
37
+ [name: string]: DataTypeSchema;
38
+ }, O extends {
39
+ [name: string]: DataTypeSchema & {
41
40
  fromVariable: string;
42
41
  fromVariablePropPath?: string[];
43
- }[];
42
+ };
43
+ }>(options: {
44
+ id?: string;
45
+ name?: string;
46
+ inputs: I;
47
+ outputs: O;
44
48
  processes?: PipelineAgentProcessParameter[];
45
49
  }): PipelineAgentDefinition;
46
50
  export interface PipelineAgentDefinition extends RunnableDefinition {