feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: add Enso route action - #160

Merged
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso
Oct 1, 2025
Merged

feat: add Enso route action#160
CarsonRoscoe merged 14 commits into
coinbase:mainfrom
EnsoBuild:enso

Conversation

@Brenzee

Copy link
Copy Markdown
Contributor

What changed? Why?

  • Add Typescript action enso_route that utilizes Enso API

Qualified Impact

Changes to cdp-agentkit-core/typescript

@cb-heimdall

cb-heimdall commented Jan 24, 2025

Copy link
Copy Markdown

✅ Heimdall Review Status

RequirementStatusMore Info
Reviews1/1
Denominator calculation
Show calculation
1 if user is bot0
1 if user is external0
2 if repo is sensitive0
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@murrlincoln

Copy link
Copy Markdown
Contributor

Awesome, thank you for submitting this! Taking a look from our end and will respond with some recommended changes

@John-peterson-coinbase

Copy link
Copy Markdown
Contributor

@Brenzee - the 0.1.0 release refactors the package into the Action/Wallet Provider pattern. Please rebase and update and we will be happy to accept 🚀

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for your contribution! This is very useful and would be a great addition, sorry for the delay

If you are still interested in working on this, please rebase against main and bump the ensofinance/sdk version, then I will do some manual testing

A few initial comments below

Comment threadtypescript/agentkit/src/action-providers/enso/constants.ts Outdated
@phdargen

Copy link
Copy Markdown
Contributor

Note that we require signed commits. See here for instructions on setting up commit signing. Once setup, rebase against main to re-sign all commits

@phdargen

Copy link
Copy Markdown
Contributor

Please add entry in agentkit/README (https://github.com/coinbase/agentkit/blob/main/typescript/agentkit/README.md), should follow alphabetic order and add a README in action-providers/enso (see other actions as example)

@phdargen

Copy link
Copy Markdown
Contributor

Comment threadtypescript/agentkit/src/action-providers/enso/schemas.ts Outdated
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Sep 22, 2025
@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , I appreciate all your suggestions and comments!
i've made the changes you mentioned in the comments, let me know if there's anything else necessary to be done from our side.

@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks a lot for the update! Looks good, but I have a few more follow-ups after manual testing the action.

Also please add a README in action-providers/enso similar to what we have for other actions

Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
Comment threadtypescript/agentkit/src/action-providers/enso/ensoActionProvider.test.ts Outdated
@phdargen

phdargen commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

Half of the tests are failing, please have a look:

Enso Route Schema
✓ should successfully parse valid input (1 ms)
✓ should fail parsing empty input (1 ms)
Enso Route Action
✕ should successfully respond (1 ms)
✕ should fail with an error
supportsNetwork
✕ should return true for base-mainnet (1 ms)
✓ should return true for 8453 (base)
✓ should return false for base-sepolia
✕ should return true for ETH Mainnet
✓ should return true for 1 (mainnet)

@phdargen

Copy link
Copy Markdown
Contributor

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

hey @phdargen , apologies about that!
i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

@phdargen

Copy link
Copy Markdown
Contributor

hey @phdargen , apologies about that! i've applied all your requests and added the README. note that test may fail because of 429 error because the global API key is limited to 1rps.

Oh I see, sorry for not spotting this earlier.
I think the tests running on github wont pass due to the timeout.

We should not make real API calls here as tests might fail due to network issues, API rate limits or service outages.
Instead the EnsoClient methods should be mocked similar to what is done eg in the acrossActionProvider tests

@phdargen

Copy link
Copy Markdown
Contributor

Hi @Brenzee, thanks for the prompt updates! The changes look good but the tests still need some work, please let me know if you have any questions

@Brenzee

Copy link
Copy Markdown
ContributorAuthor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

@phdargen

Copy link
Copy Markdown
Contributor

i followed acrossActionProvider test and added mocks for Enso SDK, let me know if there is anything else that should be fixed on tests side!

Great, that should be all! Thanks again for your contribution

@phdargen

Copy link
Copy Markdown
Contributor

This is tested and good to go @CarsonRoscoe

@CarsonRoscoe
CarsonRoscoe merged commit 78e00a8 into coinbase:mainOct 1, 2025
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action providerNew action providerchanges requestedPR / Issue has changes requestedcherrydocumentationImprovements or additions to documentationtypescript

Development

Successfully merging this pull request may close these issues.

7 participants

@Brenzee@cb-heimdall@murrlincoln@John-peterson-coinbase@phdargen@CarsonRoscoe@0xRAG