@eko-ai/eko 3.0.0-alpha.7 → 3.0.0-alpha.8
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/README.md +8 -7
- package/dist/agent/browser/browser_labels.d.ts.map +1 -1
- package/dist/agent/browser/build_dom_tree.d.ts.map +1 -1
- package/dist/core/eko.d.ts.map +1 -1
- package/dist/index.cjs.js +25 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +25 -5
- package/dist/index.esm.js.map +1 -1
- package/dist/prompt/plan.d.ts.map +1 -1
- package/dist/types/core.types.d.ts +1 -0
- package/dist/types/core.types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,8 +21,9 @@ Eko (pronounced like 'echo') is a production-ready JavaScript framework that ena
|
|
|
21
21
|
|--------------------------------------|-------|------------|--------------|----------|--------|
|
|
22
22
|
| **Supported Platform** | **All platform** | Server side | Browser | Web | Web |
|
|
23
23
|
| **One sentence to multi-step workflow** | ✅ | ❌ | ✅ | ❌ | ❌ |
|
|
24
|
-
| **Intervenability** | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
25
|
-
| **
|
|
24
|
+
| **Intervenability** | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
25
|
+
| **Task Parallel** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
26
|
+
| **Development Efficiency** | **High** | Low | Middle | Middle | Low |
|
|
26
27
|
| **Task Complexity** | **High** | High | Low | Middle | Middle | Middle |
|
|
27
28
|
| **Open-source** | ✅ | ✅ | ✅ | ✅ | ❌ |
|
|
28
29
|
| **Access to private web resources** | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
@@ -61,6 +62,11 @@ const llms: LLMs = {
|
|
|
61
62
|
model: "claude-sonnet-4-20250514",
|
|
62
63
|
apiKey: "your-api-key"
|
|
63
64
|
},
|
|
65
|
+
gemini: {
|
|
66
|
+
provider: "google",
|
|
67
|
+
model: "gemini-2.5-pro",
|
|
68
|
+
apiKey: "your-api-key"
|
|
69
|
+
},
|
|
64
70
|
openai: {
|
|
65
71
|
provider: "openai",
|
|
66
72
|
model: "gpt-5",
|
|
@@ -107,11 +113,6 @@ Eko can be used in multiple environments:
|
|
|
107
113
|
## Community and Support
|
|
108
114
|
|
|
109
115
|
- Report issues on [GitHub Issues](https://github.com/FellouAI/eko/issues)
|
|
110
|
-
- Join our [slack community discussions](https://join.slack.com/t/eko-ai/shared_invite/zt-2xhvkudv9-nHvD1g8Smp227sM51x_Meg)
|
|
111
|
-
- Join our [Discard](https://discord.gg/XpFfk2e5):
|
|
112
|
-

|
|
113
|
-
- Contribute tools and improvements
|
|
114
|
-
- Share your use cases and feedback
|
|
115
116
|
|
|
116
117
|
[](https://star-history.com/#FellouAI/eko&Date)
|
|
117
118
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser_labels.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/browser_labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAEL,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,sBAAuB,SAAQ,gBAAgB;gBAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"browser_labels.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/browser_labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAEL,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3D,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,sBAAuB,SAAQ,gBAAgB;gBAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,UAAU;cA0CvD,UAAU,CACxB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,GAAG,CAAC;cAOC,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAClC,OAAO,CAAC,GAAG,CAAC;cAMC,iBAAiB,CAC/B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cAaA,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,OAAO,GAC5B,OAAO,CAAC,GAAG,CAAC;cAkCC,gBAAgB,CAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cAIA,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC;cAMC,aAAa,CAC3B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC;cAMC,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC;QACvE,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,YAAY,GAAG,WAAW,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAwCF,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInD,OAAO,CAAC,cAAc;cAuUN,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,OAAO,CAAC;cAIH,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,qBAAqB,EAC/B,KAAK,EAAE,IAAI,EAAE,GACZ,OAAO,CAAC,IAAI,CAAC;IA2ChB,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,oBAAoB;CA0B7B;AA4SD,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_dom_tree.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/build_dom_tree.ts"],"names":[],"mappings":"AACA,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"build_dom_tree.d.ts","sourceRoot":"","sources":["../../../src/agent/browser/build_dom_tree.ts"],"names":[],"mappings":"AACA,wBAAgB,kBAAkB,SAqqBjC"}
|
package/dist/core/eko.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eko.d.ts","sourceRoot":"","sources":["../../src/core/eko.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,GAAG;IACd,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE5B,MAAM,EAAE,SAAS;IAKhB,QAAQ,CACnB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAiB,EACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,QAAQ,CAAC;IAwBP,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,QAAQ,CAAC;IAcP,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA0B3C,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAiB,EACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,SAAS,CAAC;IAKR,WAAW,CACtB,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,OAAO,CAAC;YAoBL,aAAa;
|
|
1
|
+
{"version":3,"file":"eko.d.ts","sourceRoot":"","sources":["../../src/core/eko.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjC,OAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,GAAG;IACd,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE5B,MAAM,EAAE,SAAS;IAKhB,QAAQ,CACnB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAiB,EACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,QAAQ,CAAC;IAwBP,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,QAAQ,CAAC;IAcP,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA0B3C,GAAG,CACd,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAiB,EACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,SAAS,CAAC;IAKR,WAAW,CACtB,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,OAAO,CAAC;YAoBL,aAAa;cAoGX,QAAQ,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC;IA4CX,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,YAAY,IAAI,MAAM,EAAE;IAIxB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASnC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAYnD,SAAS,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,gBAAgB,CAAC,EAAE,OAAO,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO;IAWH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAQlE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;YAKrB,YAAY;CAa3B"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -32082,6 +32082,9 @@ async function getPlanSystemPrompt(context) {
|
|
|
32082
32082
|
for (let i = 0; i < agents.length; i++) {
|
|
32083
32083
|
let agent = agents[i];
|
|
32084
32084
|
let tools = await agent.loadTools(context);
|
|
32085
|
+
if (agent.ignorePlan) {
|
|
32086
|
+
continue;
|
|
32087
|
+
}
|
|
32085
32088
|
agents_prompt +=
|
|
32086
32089
|
`<agent name="${agent.Name}">\n` +
|
|
32087
32090
|
`Description: ${agent.PlanDescription || agent.Description}\n` +
|
|
@@ -32831,6 +32834,11 @@ class Eko {
|
|
|
32831
32834
|
results.push(agent_results.join("\n\n"));
|
|
32832
32835
|
}
|
|
32833
32836
|
context.conversation.splice(0, context.conversation.length);
|
|
32837
|
+
if (workflow.modified) {
|
|
32838
|
+
workflow.modified = false;
|
|
32839
|
+
agentTree = buildAgentTree(workflow.agents.filter((agent) => agent.status == "init"));
|
|
32840
|
+
continue;
|
|
32841
|
+
}
|
|
32834
32842
|
if (!agentTree.nextAgent) {
|
|
32835
32843
|
break;
|
|
32836
32844
|
}
|
|
@@ -36343,8 +36351,11 @@ function run_build_dom_tree() {
|
|
|
36343
36351
|
nodeData.isInteractive = isInteractive;
|
|
36344
36352
|
nodeData.isVisible = isVisible;
|
|
36345
36353
|
nodeData.isTopElement = isTop;
|
|
36354
|
+
// For Shadow DOM elements, use more lenient criteria
|
|
36355
|
+
const isInShadowDOM = node.getRootNode() instanceof ShadowRoot;
|
|
36356
|
+
const shouldHighlight = isInteractive && isVisible && (isTop || isInShadowDOM);
|
|
36346
36357
|
// Highlight if element meets all criteria and highlighting is enabled
|
|
36347
|
-
if (
|
|
36358
|
+
if (shouldHighlight) {
|
|
36348
36359
|
nodeData.highlightIndex = highlightIndex++;
|
|
36349
36360
|
window.clickable_elements[nodeData.highlightIndex] = node;
|
|
36350
36361
|
if (doHighlightElements) {
|
|
@@ -36404,8 +36415,8 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
|
|
|
36404
36415
|
- If the webpage content hasn't loaded, please use the \`wait\` tool to allow time for the content to load.
|
|
36405
36416
|
* ELEMENT INTERACTION:
|
|
36406
36417
|
- Only use indexes that exist in the provided element list
|
|
36407
|
-
- Each element has a unique index number (e.g., "[33]:<button>")
|
|
36408
|
-
- Elements marked with "[]:" are non-interactive (for context only)
|
|
36418
|
+
- Each element has a unique index number (e.g., "[33]:<button>Submit</button>")
|
|
36419
|
+
- Elements marked with "[]:" are non-interactive (for context only, e.g., "[]: Google")
|
|
36409
36420
|
- Use the latest element index, do not rely on historical outdated element indexes
|
|
36410
36421
|
* ERROR HANDLING:
|
|
36411
36422
|
- If no suitable elements exist, use other functions to complete the task
|
|
@@ -36414,6 +36425,7 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
|
|
|
36414
36425
|
- When encountering scenarios that require user assistance such as login, verification codes, QR code scanning, Payment, etc, you can request user help.
|
|
36415
36426
|
* BROWSER OPERATION:
|
|
36416
36427
|
- Use scroll to find elements you are looking for, When extracting content, prioritize using extract_page_content, only scroll when you need to load more content
|
|
36428
|
+
- Please follow user instructions and don't be lazy until the task is completed. For example, if a user asks you to find 30 people, don't just find 10 - keep searching until you find all 30
|
|
36417
36429
|
* During execution, please output user-friendly step information. Do not output HTML-related element and index information to users, as this would cause user confusion.
|
|
36418
36430
|
`;
|
|
36419
36431
|
const _tools_ = [];
|
|
@@ -36939,13 +36951,21 @@ function do_click(params) {
|
|
|
36939
36951
|
}
|
|
36940
36952
|
for (let n = 0; n < num_clicks; n++) {
|
|
36941
36953
|
for (let i = 0; i < eventTypes.length; i++) {
|
|
36942
|
-
const
|
|
36954
|
+
const eventType = eventTypes[i];
|
|
36955
|
+
const event = new MouseEvent(eventType, {
|
|
36943
36956
|
view: window,
|
|
36944
36957
|
bubbles: true,
|
|
36945
36958
|
cancelable: true,
|
|
36946
36959
|
button, // 0 left; 1 middle; 2 right
|
|
36947
36960
|
});
|
|
36948
|
-
element.
|
|
36961
|
+
if (eventType === 'click' && element.click) {
|
|
36962
|
+
// support shadow dom element
|
|
36963
|
+
element.click();
|
|
36964
|
+
}
|
|
36965
|
+
else {
|
|
36966
|
+
element.dispatchEvent(event);
|
|
36967
|
+
}
|
|
36968
|
+
element.focus?.();
|
|
36949
36969
|
}
|
|
36950
36970
|
}
|
|
36951
36971
|
return true;
|