feat: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

@CarsonRoscoe@cb-heimdall@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} 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: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

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

feat: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

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

feat: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

@CarsonRoscoe@cb-heimdall@0xRAG
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } 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: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

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

feat: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

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

feat: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

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

feat: refactor npm to pnpm - #613

Merged
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm
Mar 27, 2025
Merged

feat: refactor npm to pnpm#613
CarsonRoscoe merged 20 commits into
mainfrom
feat/pnpm

Conversation

@CarsonRoscoe

@CarsonRoscoeCarsonRoscoe commented Mar 26, 2025

Copy link
Copy Markdown
Contributor

Description

pnpm is a mostly-drop in replacement for npm, focused on performance.

Some benefits include:

  • Faster install via content-addressable storage and caching
  • Stricter dependency resolution, prevents hidden hoisting issues
  • Smaller node_modules size through symlinks
  • Better monorepo support, as it natively aligns well with Turbo's workspace model

This PR refactors our turbo monorepo to use pnpm instead of npm. This requires:

  1. Migrating the node repos package management system
  2. Updating the CI/CD workflows to use pnpm
  3. Fixing any dependency issues due to the stricter environment
  4. Updating the README's and documentation
  5. Linking dependencies between workspaces via workspace:* syntax, allowing pnpm to resolve versions for us during pnpm publish, removing bump step during releases

Checklist

A couple of things to include in your PR for completeness:

  • Added documentation to all relevant README.md files

@cb-heimdall

cb-heimdall commented Mar 26, 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
From .codeflow.yml1
Additional review requirements
Show calculation
Max0
0
From CODEOWNERS0
Global minimum0
Max 1
1
1 if commit is unverified0
Sum1

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation wallet provider New wallet provider example New example agent framework extension New framework extension typescript labels Mar 26, 2025
node --version
npm list @coinbase/agentkit
npm list @coinbase/agentkit-langchain # if using LangChain extension
pnpm -r list @coinbase/agentkit

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

npm list is recursive by default, while pnpm list is not. Hence the added -r flag to recurse

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread.github/workflows/format.yml
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/framework-extensions/langchain/README.md Outdated
packages:
- "agentkit"
- "create-onchain-agent"
- "create-onchain-agent/templates/*"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured a minor devx improvement could be made here, so contributors do not need to remember to add to this list. However, I am open to reversing this back to individually listing each package if we want to be explicit

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(For reference, this list used to live in package.json)

Comment threadtypescript/turbo.json
"outputs": [
"dist/**",
".next/**",
"!.next/cache/**",

@CarsonRoscoeCarsonRoscoeMar 26, 2025

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixes warnings from templates that get added to the workspace, but whose build process differs from AgentKit traditionally builds to /dist.

Specifically, the CLI templates for Next and Mcp Server require this to get rid of the cli warnings on build

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we even be building the templates as part of our normal build process? If/when the templates incorporate nunjucks, the builds will stop working

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(not blocking, can be a follow-up / still up for debate)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, right now we're just building the projects that don't use nunjucks. Next was not affected by that PR, I just used it for the new generate commands.

I am fine with straight up ignoring them in a follow

@CarsonRoscoe
CarsonRoscoe marked this pull request as ready for review March 26, 2025 20:52
Comment thread.github/workflows/publish_nightly.yml Outdated
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/.changeset/quick-ravens-act.md Outdated
Comment threadtypescript/agentkit/package.json Outdated
Comment threadtypescript/framework-extensions/vercel-ai-sdk/README.md Outdated
@github-actionsgithub-actionsBot removed the example New example agent label Mar 26, 2025
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
@github-actionsgithub-actionsBot added the example New example agent label Mar 26, 2025
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from 6b86cef to c0d4607CompareMarch 27, 2025 15:46
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 21:18
Comment threadtypescript/agentkit/package.json Outdated
@CarsonRoscoe
CarsonRoscoeforce-pushed the feat/pnpm branch 2 times, most recently from e403380 to c6b4464CompareMarch 27, 2025 22:06
Comment threadCONTRIBUTING-TYPESCRIPT.md Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/agentkit/src/wallet-providers/solanaKeypairWalletProvider.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/chatbot.ts Outdated
Comment threadtypescript/examples/langchain-solana-chatbot/package.json Outdated
@CarsonRoscoe
CarsonRoscoe requested a review from 0xRAGMarch 27, 2025 23:19

@0xRAG0xRAG left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@CarsonRoscoe
CarsonRoscoe merged commit 6938b5d into mainMar 27, 2025
@CarsonRoscoe
CarsonRoscoe deleted the feat/pnpm branch March 27, 2025 23:35
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationexampleNew example agentframework extensionNew framework extensiontypescriptwallet providerNew wallet provider

Development

Successfully merging this pull request may close these issues.

3 participants

@CarsonRoscoe@cb-heimdall@0xRAG