@aigne/core 1.28.2 → 1.29.0
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.
- package/CHANGELOG.md +7 -0
- package/lib/cjs/agents/agent.d.ts +1 -0
- package/lib/cjs/agents/agent.js +9 -5
- package/lib/cjs/agents/team-agent.d.ts +59 -2
- package/lib/cjs/agents/team-agent.js +54 -0
- package/lib/cjs/agents/transform-agent.d.ts +82 -0
- package/lib/cjs/agents/transform-agent.js +67 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/loader/agent-js.d.ts +2 -2
- package/lib/cjs/loader/agent-js.js +11 -15
- package/lib/cjs/loader/agent-yaml.d.ts +35 -44
- package/lib/cjs/loader/agent-yaml.js +58 -103
- package/lib/cjs/loader/index.js +28 -11
- package/lib/cjs/loader/schema.d.ts +2 -1
- package/lib/cjs/loader/schema.js +4 -0
- package/lib/dts/agents/agent.d.ts +1 -0
- package/lib/dts/agents/team-agent.d.ts +59 -2
- package/lib/dts/agents/transform-agent.d.ts +82 -0
- package/lib/dts/index.d.ts +1 -0
- package/lib/dts/loader/agent-js.d.ts +2 -2
- package/lib/dts/loader/agent-yaml.d.ts +35 -44
- package/lib/dts/loader/schema.d.ts +2 -1
- package/lib/esm/agents/agent.d.ts +1 -0
- package/lib/esm/agents/agent.js +8 -5
- package/lib/esm/agents/team-agent.d.ts +59 -2
- package/lib/esm/agents/team-agent.js +53 -2
- package/lib/esm/agents/transform-agent.d.ts +82 -0
- package/lib/esm/agents/transform-agent.js +60 -0
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/loader/agent-js.d.ts +2 -2
- package/lib/esm/loader/agent-js.js +9 -16
- package/lib/esm/loader/agent-yaml.d.ts +35 -44
- package/lib/esm/loader/agent-yaml.js +56 -104
- package/lib/esm/loader/index.js +28 -11
- package/lib/esm/loader/schema.d.ts +2 -1
- package/lib/esm/loader/schema.js +3 -0
- package/package.json +2 -1
- package/lib/cjs/utils/camelize.d.ts +0 -13
- package/lib/cjs/utils/camelize.js +0 -16
- package/lib/dts/utils/camelize.d.ts +0 -13
- package/lib/esm/utils/camelize.d.ts +0 -13
- package/lib/esm/utils/camelize.js +0 -10
package/lib/esm/loader/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { Agent, FunctionAgent } from "../agents/agent.js";
|
|
|
5
5
|
import { AIAgent } from "../agents/ai-agent.js";
|
|
6
6
|
import { MCPAgent } from "../agents/mcp-agent.js";
|
|
7
7
|
import { TeamAgent } from "../agents/team-agent.js";
|
|
8
|
+
import { TransformAgent } from "../agents/transform-agent.js";
|
|
8
9
|
import { tryOrThrow } from "../utils/type-utils.js";
|
|
9
10
|
import { loadAgentFromJsFile } from "./agent-js.js";
|
|
10
11
|
import { loadAgentFromYamlFile } from "./agent-yaml.js";
|
|
@@ -36,20 +37,29 @@ export async function loadAgent(path, options) {
|
|
|
36
37
|
}
|
|
37
38
|
if ([".yml", ".yaml"].includes(nodejs.path.extname(path))) {
|
|
38
39
|
const agent = await loadAgentFromYamlFile(path);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
return parseAgent(path, agent, options);
|
|
41
|
+
}
|
|
42
|
+
throw new Error(`Unsupported agent file type: ${path}`);
|
|
43
|
+
}
|
|
44
|
+
async function parseAgent(path, agent, options) {
|
|
45
|
+
const skills = "skills" in agent
|
|
46
|
+
? agent.skills &&
|
|
47
|
+
(await Promise.all(agent.skills.map((skill) => typeof skill === "string"
|
|
48
|
+
? loadAgent(nodejs.path.join(nodejs.path.dirname(path), skill), options)
|
|
49
|
+
: parseAgent(path, skill, options))))
|
|
50
|
+
: undefined;
|
|
51
|
+
const memory = "memory" in agent && options?.memories?.length
|
|
52
|
+
? await loadMemory(options.memories, typeof agent.memory === "object" ? agent.memory.provider : undefined, typeof agent.memory === "object" ? agent.memory : {})
|
|
53
|
+
: undefined;
|
|
54
|
+
switch (agent.type) {
|
|
55
|
+
case "ai": {
|
|
44
56
|
return AIAgent.from({
|
|
45
57
|
...agent,
|
|
46
|
-
memory
|
|
47
|
-
? undefined
|
|
48
|
-
: await loadMemory(options.memories, typeof agent.memory === "object" ? agent.memory.provider : undefined, typeof agent.memory === "object" ? agent.memory : {}),
|
|
58
|
+
memory,
|
|
49
59
|
skills,
|
|
50
60
|
});
|
|
51
61
|
}
|
|
52
|
-
|
|
62
|
+
case "mcp": {
|
|
53
63
|
if (agent.url) {
|
|
54
64
|
return MCPAgent.from({
|
|
55
65
|
url: agent.url,
|
|
@@ -63,14 +73,21 @@ export async function loadAgent(path, options) {
|
|
|
63
73
|
}
|
|
64
74
|
throw new Error(`Missing url or command in mcp agent: ${path}`);
|
|
65
75
|
}
|
|
66
|
-
|
|
76
|
+
case "team": {
|
|
67
77
|
return TeamAgent.from({
|
|
68
78
|
...agent,
|
|
79
|
+
memory,
|
|
80
|
+
skills,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
case "transform": {
|
|
84
|
+
return TransformAgent.from({
|
|
85
|
+
...agent,
|
|
86
|
+
memory,
|
|
69
87
|
skills,
|
|
70
88
|
});
|
|
71
89
|
}
|
|
72
90
|
}
|
|
73
|
-
throw new Error(`Unsupported agent file type: ${path}`);
|
|
74
91
|
}
|
|
75
92
|
async function loadMemory(memories, provider, options) {
|
|
76
93
|
const M = !provider
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
1
|
+
import { type ZodType, z } from "zod";
|
|
2
2
|
export declare const inputOutputSchema: z.ZodObject<{
|
|
3
3
|
type: z.ZodLiteral<"object">;
|
|
4
4
|
properties: z.ZodRecord<z.ZodString, z.ZodAny>;
|
|
@@ -15,3 +15,4 @@ export declare const inputOutputSchema: z.ZodObject<{
|
|
|
15
15
|
required?: string[] | undefined;
|
|
16
16
|
additionalProperties?: boolean | undefined;
|
|
17
17
|
}>;
|
|
18
|
+
export declare function optionalize<T>(schema: ZodType<T>): ZodType<T | undefined>;
|
package/lib/esm/loader/schema.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aigne/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.29.0",
|
|
4
4
|
"description": "AIGNE core library for building AI-powered applications",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"eventsource-parser": "^3.0.1",
|
|
72
72
|
"fast-deep-equal": "^3.1.3",
|
|
73
73
|
"immer": "^10.1.1",
|
|
74
|
+
"jsonata": "^2.0.6",
|
|
74
75
|
"mustache": "^4.2.0",
|
|
75
76
|
"nanoid": "^5.1.5",
|
|
76
77
|
"p-retry": "^6.2.1",
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare function customCamelize<T extends Record<string, unknown>, K extends KeyofUnion<T> = never>(obj: T, { shallowKeys }?: {
|
|
2
|
-
shallowKeys?: K[];
|
|
3
|
-
}): CustomCamelize<T, K>;
|
|
4
|
-
type KeyofUnion<U> = U extends Record<string, unknown> ? keyof U : never;
|
|
5
|
-
type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}` ? `${P1}${Uppercase<P2>}${CamelCase<P3>}` : S;
|
|
6
|
-
declare const _unique: unique symbol;
|
|
7
|
-
type _never = typeof _unique;
|
|
8
|
-
type ExtractTypeFromUnion<T, U> = Extract<T, U> extends never ? _never : Extract<T, U> extends Array<infer E> ? Array<E> : U;
|
|
9
|
-
type ExtractTypeWithConstFromUnion<T, U> = Exclude<T, Exclude<T, U>>;
|
|
10
|
-
export type CustomCamelize<T, ShallowKeys extends KeyofUnion<T> | undefined = undefined> = ExtractTypeFromUnion<T, never> extends never ? never : ExtractTypeFromUnion<T, Date> extends Date ? ExtractTypeWithConstFromUnion<T, Date> | CustomCamelize<Exclude<T, Date>> : ExtractTypeFromUnion<T, RegExp> extends RegExp ? ExtractTypeWithConstFromUnion<T, RegExp> | CustomCamelize<Exclude<T, RegExp>> : ExtractTypeFromUnion<T, Array<unknown>> extends Array<infer U> ? Array<CustomCamelize<U>> | CustomCamelize<Exclude<T, Array<U>>> : ExtractTypeFromUnion<T, Function> extends Function ? ExtractTypeWithConstFromUnion<T, Function> | CustomCamelize<Exclude<T, Function>> : ExtractTypeFromUnion<T, object> extends object ? {
|
|
11
|
-
[K in keyof T as Uncapitalize<CamelCase<string & K>>]: K extends Exclude<ShallowKeys, undefined> ? T[K] : CustomCamelize<T[K]>;
|
|
12
|
-
} : T;
|
|
13
|
-
export {};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.customCamelize = customCamelize;
|
|
7
|
-
const camelize_ts_1 = __importDefault(require("camelize-ts"));
|
|
8
|
-
function customCamelize(obj, { shallowKeys = [] } = {}) {
|
|
9
|
-
const shallow = Object.fromEntries(shallowKeys?.filter((key) => key in obj).map((key) => [key, obj[key]]) ?? []);
|
|
10
|
-
const deep = Object.fromEntries(Object.entries(obj).filter(([key]) => !shallowKeys?.includes(key)));
|
|
11
|
-
return {
|
|
12
|
-
...(0, camelize_ts_1.default)(shallow, true),
|
|
13
|
-
...(0, camelize_ts_1.default)(deep),
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
const _unique = Symbol();
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare function customCamelize<T extends Record<string, unknown>, K extends KeyofUnion<T> = never>(obj: T, { shallowKeys }?: {
|
|
2
|
-
shallowKeys?: K[];
|
|
3
|
-
}): CustomCamelize<T, K>;
|
|
4
|
-
type KeyofUnion<U> = U extends Record<string, unknown> ? keyof U : never;
|
|
5
|
-
type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}` ? `${P1}${Uppercase<P2>}${CamelCase<P3>}` : S;
|
|
6
|
-
declare const _unique: unique symbol;
|
|
7
|
-
type _never = typeof _unique;
|
|
8
|
-
type ExtractTypeFromUnion<T, U> = Extract<T, U> extends never ? _never : Extract<T, U> extends Array<infer E> ? Array<E> : U;
|
|
9
|
-
type ExtractTypeWithConstFromUnion<T, U> = Exclude<T, Exclude<T, U>>;
|
|
10
|
-
export type CustomCamelize<T, ShallowKeys extends KeyofUnion<T> | undefined = undefined> = ExtractTypeFromUnion<T, never> extends never ? never : ExtractTypeFromUnion<T, Date> extends Date ? ExtractTypeWithConstFromUnion<T, Date> | CustomCamelize<Exclude<T, Date>> : ExtractTypeFromUnion<T, RegExp> extends RegExp ? ExtractTypeWithConstFromUnion<T, RegExp> | CustomCamelize<Exclude<T, RegExp>> : ExtractTypeFromUnion<T, Array<unknown>> extends Array<infer U> ? Array<CustomCamelize<U>> | CustomCamelize<Exclude<T, Array<U>>> : ExtractTypeFromUnion<T, Function> extends Function ? ExtractTypeWithConstFromUnion<T, Function> | CustomCamelize<Exclude<T, Function>> : ExtractTypeFromUnion<T, object> extends object ? {
|
|
11
|
-
[K in keyof T as Uncapitalize<CamelCase<string & K>>]: K extends Exclude<ShallowKeys, undefined> ? T[K] : CustomCamelize<T[K]>;
|
|
12
|
-
} : T;
|
|
13
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare function customCamelize<T extends Record<string, unknown>, K extends KeyofUnion<T> = never>(obj: T, { shallowKeys }?: {
|
|
2
|
-
shallowKeys?: K[];
|
|
3
|
-
}): CustomCamelize<T, K>;
|
|
4
|
-
type KeyofUnion<U> = U extends Record<string, unknown> ? keyof U : never;
|
|
5
|
-
type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}` ? `${P1}${Uppercase<P2>}${CamelCase<P3>}` : S;
|
|
6
|
-
declare const _unique: unique symbol;
|
|
7
|
-
type _never = typeof _unique;
|
|
8
|
-
type ExtractTypeFromUnion<T, U> = Extract<T, U> extends never ? _never : Extract<T, U> extends Array<infer E> ? Array<E> : U;
|
|
9
|
-
type ExtractTypeWithConstFromUnion<T, U> = Exclude<T, Exclude<T, U>>;
|
|
10
|
-
export type CustomCamelize<T, ShallowKeys extends KeyofUnion<T> | undefined = undefined> = ExtractTypeFromUnion<T, never> extends never ? never : ExtractTypeFromUnion<T, Date> extends Date ? ExtractTypeWithConstFromUnion<T, Date> | CustomCamelize<Exclude<T, Date>> : ExtractTypeFromUnion<T, RegExp> extends RegExp ? ExtractTypeWithConstFromUnion<T, RegExp> | CustomCamelize<Exclude<T, RegExp>> : ExtractTypeFromUnion<T, Array<unknown>> extends Array<infer U> ? Array<CustomCamelize<U>> | CustomCamelize<Exclude<T, Array<U>>> : ExtractTypeFromUnion<T, Function> extends Function ? ExtractTypeWithConstFromUnion<T, Function> | CustomCamelize<Exclude<T, Function>> : ExtractTypeFromUnion<T, object> extends object ? {
|
|
11
|
-
[K in keyof T as Uncapitalize<CamelCase<string & K>>]: K extends Exclude<ShallowKeys, undefined> ? T[K] : CustomCamelize<T[K]>;
|
|
12
|
-
} : T;
|
|
13
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import camelize from "camelize-ts";
|
|
2
|
-
export function customCamelize(obj, { shallowKeys = [] } = {}) {
|
|
3
|
-
const shallow = Object.fromEntries(shallowKeys?.filter((key) => key in obj).map((key) => [key, obj[key]]) ?? []);
|
|
4
|
-
const deep = Object.fromEntries(Object.entries(obj).filter(([key]) => !shallowKeys?.includes(key)));
|
|
5
|
-
return {
|
|
6
|
-
...camelize(shallow, true),
|
|
7
|
-
...camelize(deep),
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
const _unique = Symbol();
|