@eko-ai/eko 1.0.1
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/LICENSE +21 -0
- package/README.md +70 -0
- package/dist/core/eko.d.ts +17 -0
- package/dist/core/tool-registry.d.ts +13 -0
- package/dist/extension/content/index.d.ts +7 -0
- package/dist/extension/core.d.ts +11 -0
- package/dist/extension/index.d.ts +7 -0
- package/dist/extension/script/bing.js +25 -0
- package/dist/extension/script/build_dom_tree.js +657 -0
- package/dist/extension/script/common.js +204 -0
- package/dist/extension/script/duckduckgo.js +25 -0
- package/dist/extension/script/google.js +26 -0
- package/dist/extension/tools/browser.d.ts +21 -0
- package/dist/extension/tools/browser_use.d.ts +18 -0
- package/dist/extension/tools/element_click.d.ts +12 -0
- package/dist/extension/tools/export_file.d.ts +18 -0
- package/dist/extension/tools/extract_content.d.ts +18 -0
- package/dist/extension/tools/find_element_position.d.ts +12 -0
- package/dist/extension/tools/form_autofill.d.ts +11 -0
- package/dist/extension/tools/html_script.d.ts +21 -0
- package/dist/extension/tools/index.d.ts +11 -0
- package/dist/extension/tools/open_url.d.ts +18 -0
- package/dist/extension/tools/screenshot.d.ts +18 -0
- package/dist/extension/tools/tab_management.d.ts +19 -0
- package/dist/extension/tools/web_search.d.ts +18 -0
- package/dist/extension/utils.d.ts +30 -0
- package/dist/extension.cjs.js +1783 -0
- package/dist/extension.esm.js +1776 -0
- package/dist/extension_content_script.js +247 -0
- package/dist/fellou/computer.d.ts +20 -0
- package/dist/fellou/index.d.ts +6 -0
- package/dist/fellou/tools/computer_use.d.ts +18 -0
- package/dist/fellou/tools/index.d.ts +2 -0
- package/dist/fellou.cjs.js +238 -0
- package/dist/fellou.esm.js +235 -0
- package/dist/index.cjs.js +9350 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.esm.js +9340 -0
- package/dist/models/action.d.ts +20 -0
- package/dist/models/workflow.d.ts +15 -0
- package/dist/nodejs/index.d.ts +2 -0
- package/dist/nodejs/tools/index.d.ts +1 -0
- package/dist/nodejs.cjs.js +7 -0
- package/dist/nodejs.esm.js +5 -0
- package/dist/schemas/workflow.schema.d.ts +85 -0
- package/dist/services/llm/claude-provider.d.ts +10 -0
- package/dist/services/llm/openai-provider.d.ts +10 -0
- package/dist/services/parser/workflow-parser.d.ts +29 -0
- package/dist/services/workflow/generator.d.ts +11 -0
- package/dist/services/workflow/templates.d.ts +7 -0
- package/dist/types/action.types.d.ts +36 -0
- package/dist/types/eko.types.d.ts +21 -0
- package/dist/types/framework.types.d.ts +11 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/llm.types.d.ts +54 -0
- package/dist/types/parser.types.d.ts +9 -0
- package/dist/types/tools.types.d.ts +88 -0
- package/dist/types/workflow.types.d.ts +39 -0
- package/dist/web/index.d.ts +2 -0
- package/dist/web/tools/index.d.ts +1 -0
- package/dist/web.cjs.js +7 -0
- package/dist/web.esm.js +5 -0
- package/package.json +108 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Action, Tool, ExecutionContext } from '../types/action.types';
|
|
2
|
+
import { LLMProvider, LLMParameters } from '../types/llm.types';
|
|
3
|
+
export declare class ActionImpl implements Action {
|
|
4
|
+
type: 'prompt';
|
|
5
|
+
name: string;
|
|
6
|
+
tools: Tool<any, any>[];
|
|
7
|
+
private llmProvider;
|
|
8
|
+
private llmConfig?;
|
|
9
|
+
private readonly maxRounds;
|
|
10
|
+
private writeContextTool;
|
|
11
|
+
constructor(type: 'prompt', // Only support prompt type
|
|
12
|
+
name: string, tools: Tool<any, any>[], llmProvider: LLMProvider, llmConfig?: LLMParameters | undefined, config?: {
|
|
13
|
+
maxRounds?: number;
|
|
14
|
+
});
|
|
15
|
+
private executeSingleRound;
|
|
16
|
+
execute(input: unknown, context: ExecutionContext, outputSchema?: unknown): Promise<unknown>;
|
|
17
|
+
private formatSystemPrompt;
|
|
18
|
+
private formatUserPrompt;
|
|
19
|
+
static createPromptAction(name: string, tools: Tool<any, any>[], llmProvider: LLMProvider, llmConfig?: LLMParameters): Action;
|
|
20
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Workflow, WorkflowNode, LLMProvider, WorkflowCallback } from "../types";
|
|
2
|
+
export declare class WorkflowImpl implements Workflow {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string | undefined;
|
|
6
|
+
nodes: WorkflowNode[];
|
|
7
|
+
variables: Map<string, unknown>;
|
|
8
|
+
llmProvider?: LLMProvider | undefined;
|
|
9
|
+
constructor(id: string, name: string, description?: string | undefined, nodes?: WorkflowNode[], variables?: Map<string, unknown>, llmProvider?: LLMProvider | undefined);
|
|
10
|
+
execute(callback?: WorkflowCallback): Promise<void>;
|
|
11
|
+
addNode(node: WorkflowNode): void;
|
|
12
|
+
removeNode(nodeId: string): void;
|
|
13
|
+
getNode(nodeId: string): WorkflowNode;
|
|
14
|
+
validateDAG(): boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export declare const workflowSchema: {
|
|
2
|
+
type: string;
|
|
3
|
+
required: string[];
|
|
4
|
+
properties: {
|
|
5
|
+
id: {
|
|
6
|
+
type: string;
|
|
7
|
+
};
|
|
8
|
+
name: {
|
|
9
|
+
type: string;
|
|
10
|
+
};
|
|
11
|
+
description: {
|
|
12
|
+
type: string;
|
|
13
|
+
};
|
|
14
|
+
nodes: {
|
|
15
|
+
type: string;
|
|
16
|
+
items: {
|
|
17
|
+
type: string;
|
|
18
|
+
required: string[];
|
|
19
|
+
properties: {
|
|
20
|
+
id: {
|
|
21
|
+
type: string;
|
|
22
|
+
};
|
|
23
|
+
type: {
|
|
24
|
+
type: string;
|
|
25
|
+
enum: string[];
|
|
26
|
+
};
|
|
27
|
+
dependencies: {
|
|
28
|
+
type: string;
|
|
29
|
+
items: {
|
|
30
|
+
type: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
input: {
|
|
34
|
+
type: string;
|
|
35
|
+
properties: {
|
|
36
|
+
type: {
|
|
37
|
+
type: string;
|
|
38
|
+
};
|
|
39
|
+
schema: {
|
|
40
|
+
type: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
output: {
|
|
45
|
+
type: string;
|
|
46
|
+
properties: {
|
|
47
|
+
type: {
|
|
48
|
+
type: string;
|
|
49
|
+
};
|
|
50
|
+
schema: {
|
|
51
|
+
type: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
action: {
|
|
56
|
+
type: string;
|
|
57
|
+
required: string[];
|
|
58
|
+
properties: {
|
|
59
|
+
type: {
|
|
60
|
+
type: string;
|
|
61
|
+
enum: string[];
|
|
62
|
+
};
|
|
63
|
+
name: {
|
|
64
|
+
type: string;
|
|
65
|
+
};
|
|
66
|
+
params: {
|
|
67
|
+
type: string;
|
|
68
|
+
};
|
|
69
|
+
tools: {
|
|
70
|
+
type: string;
|
|
71
|
+
items: {
|
|
72
|
+
type: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
variables: {
|
|
81
|
+
type: string;
|
|
82
|
+
additionalProperties: boolean;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClientOptions } from '@anthropic-ai/sdk';
|
|
2
|
+
import { LLMProvider, LLMParameters, LLMResponse, Message, LLMStreamHandler } from '../../types/llm.types';
|
|
3
|
+
export declare class ClaudeProvider implements LLMProvider {
|
|
4
|
+
private client;
|
|
5
|
+
private defaultModel;
|
|
6
|
+
constructor(apiKey: string, defaultModel?: string | null, options?: ClientOptions);
|
|
7
|
+
private processResponse;
|
|
8
|
+
generateText(messages: Message[], params: LLMParameters): Promise<LLMResponse>;
|
|
9
|
+
generateStream(messages: Message[], params: LLMParameters, handler: LLMStreamHandler): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ClientOptions } from 'openai';
|
|
2
|
+
import { LLMProvider, LLMParameters, LLMResponse, Message, LLMStreamHandler } from '../../types/llm.types';
|
|
3
|
+
export declare class OpenaiProvider implements LLMProvider {
|
|
4
|
+
private client;
|
|
5
|
+
private defaultModel;
|
|
6
|
+
constructor(apiKey: string, defaultModel?: string | null, options?: ClientOptions);
|
|
7
|
+
private buildParams;
|
|
8
|
+
generateText(messages: Message[], params: LLMParameters): Promise<LLMResponse>;
|
|
9
|
+
generateStream(messages: Message[], params: LLMParameters, handler: LLMStreamHandler): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Workflow } from '../../types/workflow.types';
|
|
2
|
+
import { ValidationResult } from '../../types/parser.types';
|
|
3
|
+
export declare class WorkflowParser {
|
|
4
|
+
/**
|
|
5
|
+
* Parse JSON string into runtime Workflow object
|
|
6
|
+
* @throws {Error} if JSON is invalid or schema validation fails
|
|
7
|
+
*/
|
|
8
|
+
static parse(json: string): Workflow;
|
|
9
|
+
/**
|
|
10
|
+
* Convert runtime Workflow object to JSON string
|
|
11
|
+
*/
|
|
12
|
+
static serialize(workflow: Workflow): string;
|
|
13
|
+
/**
|
|
14
|
+
* Validate workflow JSON structure against schema
|
|
15
|
+
*/
|
|
16
|
+
static validate(json: unknown): ValidationResult;
|
|
17
|
+
/**
|
|
18
|
+
* Convert parsed JSON to runtime Workflow object
|
|
19
|
+
*/
|
|
20
|
+
private static toRuntime;
|
|
21
|
+
/**
|
|
22
|
+
* Convert runtime Workflow object to JSON structure
|
|
23
|
+
*/
|
|
24
|
+
private static fromRuntime;
|
|
25
|
+
/**
|
|
26
|
+
* Helper to convert IO definitions
|
|
27
|
+
*/
|
|
28
|
+
private static convertIO;
|
|
29
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LLMProvider } from '../../types/llm.types';
|
|
2
|
+
import { Workflow } from '../../types/workflow.types';
|
|
3
|
+
import { ToolRegistry } from '../../core/tool-registry';
|
|
4
|
+
export declare class WorkflowGenerator {
|
|
5
|
+
private llmProvider;
|
|
6
|
+
private toolRegistry;
|
|
7
|
+
constructor(llmProvider: LLMProvider, toolRegistry: ToolRegistry);
|
|
8
|
+
generateWorkflow(prompt: string): Promise<Workflow>;
|
|
9
|
+
private createWorkflowFromData;
|
|
10
|
+
modifyWorkflow(workflow: Workflow, prompt: string): Promise<Workflow>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ToolDefinition } from '../../types/llm.types';
|
|
2
|
+
import { ToolRegistry } from '../../core/tool-registry';
|
|
3
|
+
export declare function createWorkflowPrompts(tools: ToolDefinition[]): {
|
|
4
|
+
formatSystemPrompt: () => string;
|
|
5
|
+
formatUserPrompt: (requirement: string) => string;
|
|
6
|
+
};
|
|
7
|
+
export declare function createWorkflowGenerationTool(registry: ToolRegistry): ToolDefinition;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { LLMProvider } from "./llm.types";
|
|
2
|
+
import { WorkflowCallback } from "./workflow.types";
|
|
3
|
+
export interface Tool<T, R> {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
input_schema: InputSchema;
|
|
7
|
+
execute: (context: ExecutionContext, params: T) => Promise<R>;
|
|
8
|
+
destroy?: (context: ExecutionContext) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface InputSchema {
|
|
11
|
+
type: 'object';
|
|
12
|
+
properties?: Properties;
|
|
13
|
+
required?: Array<string>;
|
|
14
|
+
}
|
|
15
|
+
export interface Properties {
|
|
16
|
+
[key: string]: Property;
|
|
17
|
+
}
|
|
18
|
+
export interface Property {
|
|
19
|
+
type: 'string' | 'integer' | 'boolean' | 'array' | 'object';
|
|
20
|
+
description?: string;
|
|
21
|
+
items?: InputSchema;
|
|
22
|
+
enum?: Array<string | number>;
|
|
23
|
+
properties?: Properties;
|
|
24
|
+
}
|
|
25
|
+
export interface ExecutionContext {
|
|
26
|
+
llmProvider: LLMProvider;
|
|
27
|
+
variables: Map<string, unknown>;
|
|
28
|
+
tools?: Map<string, Tool<any, any>>;
|
|
29
|
+
callback?: WorkflowCallback;
|
|
30
|
+
}
|
|
31
|
+
export interface Action {
|
|
32
|
+
type: 'prompt' | 'script' | 'hybrid';
|
|
33
|
+
name: string;
|
|
34
|
+
execute: (input: unknown, context: ExecutionContext) => Promise<unknown>;
|
|
35
|
+
tools: Tool<any, any>[];
|
|
36
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ClientOptions as OpenAiClientOptions } from 'openai';
|
|
2
|
+
import { ClientOptions as ClaudeClientOption } from '@anthropic-ai/sdk';
|
|
3
|
+
import { LLMProvider } from './llm.types';
|
|
4
|
+
import { Tool } from './action.types';
|
|
5
|
+
export interface ClaudeConfig {
|
|
6
|
+
llm: 'claude';
|
|
7
|
+
apiKey: string;
|
|
8
|
+
modelName?: string;
|
|
9
|
+
options?: ClaudeClientOption;
|
|
10
|
+
}
|
|
11
|
+
export interface OpenaiConfig {
|
|
12
|
+
llm: 'openai';
|
|
13
|
+
apiKey: string;
|
|
14
|
+
modelName?: string;
|
|
15
|
+
options?: OpenAiClientOptions;
|
|
16
|
+
}
|
|
17
|
+
export type ClaudeApiKey = string;
|
|
18
|
+
export type EkoConfig = ClaudeApiKey | ClaudeConfig | OpenaiConfig | LLMProvider;
|
|
19
|
+
export interface EkoInvokeParam {
|
|
20
|
+
tools?: Array<string> | Array<Tool<any, any>>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LLMConfig } from './llm.types';
|
|
2
|
+
import { WorkflowNode, Workflow } from './workflow.types';
|
|
3
|
+
import { ExecutionContext } from './action.types';
|
|
4
|
+
export interface EkoFramework {
|
|
5
|
+
generateWorkflow(prompt: string, llmConfig: LLMConfig): Promise<Workflow>;
|
|
6
|
+
addNode(workflow: Workflow, node: WorkflowNode): Workflow;
|
|
7
|
+
removeNode(workflow: Workflow, nodeId: string): Workflow;
|
|
8
|
+
updateNode(workflow: Workflow, nodeId: string, updates: Partial<WorkflowNode>): Workflow;
|
|
9
|
+
modifyWorkflowWithPrompt(workflow: Workflow, prompt: string, llmConfig: LLMConfig): Promise<Workflow>;
|
|
10
|
+
executeWorkflow(workflow: Workflow, context?: ExecutionContext, llmConfig?: LLMConfig): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface Message {
|
|
2
|
+
role: 'user' | 'assistant' | 'system';
|
|
3
|
+
content: string | unknown[];
|
|
4
|
+
}
|
|
5
|
+
export interface ToolDefinition {
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
input_schema: {
|
|
9
|
+
type: "object";
|
|
10
|
+
properties: Record<string, unknown>;
|
|
11
|
+
required?: string[];
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface LLMConfig {
|
|
15
|
+
}
|
|
16
|
+
export interface ToolCall {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
input: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface ToolResult {
|
|
22
|
+
tool_use_id: string;
|
|
23
|
+
content: string | Array<{
|
|
24
|
+
type: string;
|
|
25
|
+
text: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
export interface LLMParameters {
|
|
29
|
+
model?: string;
|
|
30
|
+
temperature?: number;
|
|
31
|
+
maxTokens?: number;
|
|
32
|
+
tools?: ToolDefinition[];
|
|
33
|
+
toolChoice?: {
|
|
34
|
+
type: 'auto' | 'tool' | 'any';
|
|
35
|
+
name?: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
export interface LLMResponse {
|
|
39
|
+
textContent: string | null;
|
|
40
|
+
content: string | unknown[];
|
|
41
|
+
toolCalls: ToolCall[];
|
|
42
|
+
stop_reason: string | null;
|
|
43
|
+
}
|
|
44
|
+
export interface LLMStreamHandler {
|
|
45
|
+
onStart?: () => void;
|
|
46
|
+
onContent?: (content: string) => void;
|
|
47
|
+
onToolUse?: (toolCall: ToolCall) => void;
|
|
48
|
+
onComplete?: (response: LLMResponse) => void;
|
|
49
|
+
onError?: (error: Error) => void;
|
|
50
|
+
}
|
|
51
|
+
export interface LLMProvider {
|
|
52
|
+
generateText(messages: Message[], params: LLMParameters): Promise<LLMResponse>;
|
|
53
|
+
generateStream(messages: Message[], params: LLMParameters, handler: LLMStreamHandler): Promise<void>;
|
|
54
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export interface ComputerUseParam {
|
|
2
|
+
action: string;
|
|
3
|
+
coordinate?: [number, number];
|
|
4
|
+
text?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ComputerUseResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
image?: ScreenshotImage;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}
|
|
11
|
+
export interface BrowserUseParam {
|
|
12
|
+
action: string;
|
|
13
|
+
index?: number;
|
|
14
|
+
text?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface BrowserUseResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
image?: ScreenshotImage;
|
|
19
|
+
text?: string;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
|
22
|
+
export interface ExportFileParam {
|
|
23
|
+
content: string;
|
|
24
|
+
fileType: 'txt' | 'csv' | 'md' | 'html' | 'js' | 'xml' | 'json' | 'yml' | 'sql';
|
|
25
|
+
filename?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ExtractContentResult {
|
|
28
|
+
tabId: number;
|
|
29
|
+
result: {
|
|
30
|
+
title?: string;
|
|
31
|
+
url?: string;
|
|
32
|
+
content: string;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface OpenUrlParam {
|
|
36
|
+
url: string;
|
|
37
|
+
newWindow?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface OpenUrlResult {
|
|
40
|
+
tabId: number;
|
|
41
|
+
windowId: number;
|
|
42
|
+
title?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ScreenshotResult {
|
|
45
|
+
image: ScreenshotImage;
|
|
46
|
+
}
|
|
47
|
+
export interface ScreenshotImage {
|
|
48
|
+
type: 'base64';
|
|
49
|
+
media_type: 'image/png' | 'image/jpeg';
|
|
50
|
+
data: string;
|
|
51
|
+
}
|
|
52
|
+
export interface TabManagementParam {
|
|
53
|
+
commond: string;
|
|
54
|
+
}
|
|
55
|
+
export type TabManagementResult = TabInfo | CloseTabInfo | TabInfo[];
|
|
56
|
+
export interface TabInfo {
|
|
57
|
+
tabId?: number;
|
|
58
|
+
windowId?: number;
|
|
59
|
+
title?: string;
|
|
60
|
+
url?: string;
|
|
61
|
+
active?: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface CloseTabInfo {
|
|
64
|
+
closedTabId: number;
|
|
65
|
+
newTabId?: number;
|
|
66
|
+
newTabTitle?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface WebSearchParam {
|
|
69
|
+
url?: string;
|
|
70
|
+
query: string;
|
|
71
|
+
maxResults?: number;
|
|
72
|
+
}
|
|
73
|
+
export interface WebSearchResult {
|
|
74
|
+
title: string;
|
|
75
|
+
url: string;
|
|
76
|
+
content: string;
|
|
77
|
+
}
|
|
78
|
+
export interface TaskPrompt {
|
|
79
|
+
task_prompt: string;
|
|
80
|
+
}
|
|
81
|
+
export interface ElementRect {
|
|
82
|
+
left: number;
|
|
83
|
+
top: number;
|
|
84
|
+
right?: number;
|
|
85
|
+
bottom?: number;
|
|
86
|
+
width?: number;
|
|
87
|
+
height?: number;
|
|
88
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Action, ExecutionContext, Tool } from "./action.types";
|
|
2
|
+
import { LLMProvider } from "./llm.types";
|
|
3
|
+
export interface WorkflowNode {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
input: NodeIO;
|
|
8
|
+
output: NodeIO;
|
|
9
|
+
action: Action;
|
|
10
|
+
dependencies: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface NodeIO {
|
|
13
|
+
type: string;
|
|
14
|
+
schema: object;
|
|
15
|
+
value: unknown;
|
|
16
|
+
}
|
|
17
|
+
export interface Workflow {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
nodes: WorkflowNode[];
|
|
22
|
+
variables: Map<string, any>;
|
|
23
|
+
llmProvider?: LLMProvider;
|
|
24
|
+
execute(callback?: WorkflowCallback): Promise<void>;
|
|
25
|
+
addNode(node: WorkflowNode): void;
|
|
26
|
+
removeNode(nodeId: string): void;
|
|
27
|
+
getNode(nodeId: string): WorkflowNode;
|
|
28
|
+
validateDAG(): boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface WorkflowCallback {
|
|
31
|
+
hooks: {
|
|
32
|
+
beforeWorkflow?: (workflow: Workflow) => Promise<void>;
|
|
33
|
+
beforeSubtask?: (subtask: WorkflowNode, context: ExecutionContext) => Promise<void>;
|
|
34
|
+
beforeToolUse?: (tool: Tool<any, any>, context: ExecutionContext, input: any) => Promise<any>;
|
|
35
|
+
afterToolUse?: (tool: Tool<any, any>, context: ExecutionContext, result: any) => Promise<any>;
|
|
36
|
+
afterSubtask?: (subtask: WorkflowNode, context: ExecutionContext, result: any) => Promise<void>;
|
|
37
|
+
afterWorkflow?: (workflow: Workflow, variables: Map<string, unknown>) => Promise<void>;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/web.cjs.js
ADDED
package/dist/web.esm.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@eko-ai/eko",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Empowering language to transform human words into action.",
|
|
5
|
+
"main": "dist/index.cjs.js",
|
|
6
|
+
"module": "dist/index.esm.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist/",
|
|
11
|
+
"LICENSE",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"require": "./dist/index.cjs.js",
|
|
17
|
+
"import": "./dist/index.esm.js",
|
|
18
|
+
"types": "./dist/index.d.ts"
|
|
19
|
+
},
|
|
20
|
+
"./types": {
|
|
21
|
+
"types": "./dist/types/index.d.ts"
|
|
22
|
+
},
|
|
23
|
+
"./extension": {
|
|
24
|
+
"require": "./dist/extension.cjs.js",
|
|
25
|
+
"import": "./dist/extension.esm.js",
|
|
26
|
+
"types": "./dist/extension/index.d.ts"
|
|
27
|
+
},
|
|
28
|
+
"./web": {
|
|
29
|
+
"require": "./dist/web.cjs.js",
|
|
30
|
+
"import": "./dist/web.esm.js",
|
|
31
|
+
"types": "./dist/web/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./nodejs": {
|
|
34
|
+
"require": "./dist/nodejs.cjs.js",
|
|
35
|
+
"import": "./dist/nodejs.esm.js",
|
|
36
|
+
"types": "./dist/nodejs/index.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./fellou": {
|
|
39
|
+
"require": "./dist/fellou.cjs.js",
|
|
40
|
+
"import": "./dist/fellou.esm.js",
|
|
41
|
+
"types": "./dist/fellou/index.d.ts"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"directories": {
|
|
45
|
+
"test": "test",
|
|
46
|
+
"doc": "docs"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "rollup -c",
|
|
50
|
+
"build:dev": "npm run build && npm link",
|
|
51
|
+
"dev": "tsc --watch",
|
|
52
|
+
"clean": "rimraf dist",
|
|
53
|
+
"test": "jest",
|
|
54
|
+
"test:watch": "jest --watch",
|
|
55
|
+
"test:coverage": "jest --coverage",
|
|
56
|
+
"lint": "eslint src/**/*.ts",
|
|
57
|
+
"lint:fix": "eslint src/**/*.ts --fix",
|
|
58
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
59
|
+
"prepublishOnly": "npm run build",
|
|
60
|
+
"docs": "typedoc"
|
|
61
|
+
},
|
|
62
|
+
"author": "FellouAI",
|
|
63
|
+
"license": "MIT",
|
|
64
|
+
"keywords": [
|
|
65
|
+
"fellou",
|
|
66
|
+
"eko"
|
|
67
|
+
],
|
|
68
|
+
"publishConfig": {
|
|
69
|
+
"access": "public",
|
|
70
|
+
"registry": "https://registry.npmjs.org/"
|
|
71
|
+
},
|
|
72
|
+
"repository": {
|
|
73
|
+
"type": "git",
|
|
74
|
+
"url": "git+https://github.com/FellouAI/eko.git"
|
|
75
|
+
},
|
|
76
|
+
"dependencies": {
|
|
77
|
+
"@anthropic-ai/sdk": "^0.33.0",
|
|
78
|
+
"dotenv": "^16.0.0",
|
|
79
|
+
"openai": "^4.77.0",
|
|
80
|
+
"uuid": "^11.0.3",
|
|
81
|
+
"zod": "^3.22.4"
|
|
82
|
+
},
|
|
83
|
+
"devDependencies": {
|
|
84
|
+
"@rollup/plugin-commonjs": "^28.0.2",
|
|
85
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
86
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
87
|
+
"@types/chrome": "0.0.158",
|
|
88
|
+
"@types/jest": "^29.5.12",
|
|
89
|
+
"@types/node": "^20.11.24",
|
|
90
|
+
"@types/uuid": "^10.0.0",
|
|
91
|
+
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
|
92
|
+
"@typescript-eslint/parser": "^7.1.0",
|
|
93
|
+
"eslint": "^8.57.0",
|
|
94
|
+
"jest": "^29.7.0",
|
|
95
|
+
"prettier": "^3.2.5",
|
|
96
|
+
"rimraf": "^5.0.5",
|
|
97
|
+
"rollup": "^4.28.1",
|
|
98
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
99
|
+
"ts-jest": "^29.1.2",
|
|
100
|
+
"tslib": "^2.8.1",
|
|
101
|
+
"typedoc": "^0.27.6",
|
|
102
|
+
"typescript": "^5.3.3"
|
|
103
|
+
},
|
|
104
|
+
"engines": {
|
|
105
|
+
"node": ">=18.0.0"
|
|
106
|
+
},
|
|
107
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
108
|
+
}
|