{"_id":"@402md/agent-tools","_rev":"2-62a022c3076860ec499e884cd7234737","name":"@402md/agent-tools","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@402md/agent-tools","version":"0.1.0","keywords":["402md","agent","tools","langchain","ai","skills"],"license":"MIT","_id":"@402md/agent-tools@0.1.0","maintainers":[{"name":"henriquebreim","email":"developers@402.md"}],"dist":{"shasum":"be9a978679071cfc1a23585c4d947d2fe44c6941","tarball":"https://registry.npmjs.org/@402md/agent-tools/-/agent-tools-0.1.0.tgz","fileCount":16,"integrity":"sha512-Rw1Zs5DlbFs33IGWj2ETjKYwZ5rF8oI4C7sarUuP4ZrJCkKjwsMY8N/bE1F+TgX10NTHV0sNIsPyIIJ5TopS8w==","signatures":[{"sig":"MEUCIBHnRBKySa4LL905FCCShBxKsMxs83kGdyXKoNI+O5aRAiEA57b/yIPlZupjXu31LQnvEGjy5ipuM0Z1bj1SxHoNp8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76872},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./langchain":{"types":"./dist/langchain/index.d.ts","import":"./dist/langchain/index.js","require":"./dist/langchain/index.cjs"}},"gitHead":"6692036f993929ee74a5f1000da8cf27f20f8b5c","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"henriquebreim","email":"developers@402.md"},"_npmVersion":"11.2.0","description":"Agent tools for 402.md — framework-agnostic + LangChain adapter","directories":{},"_nodeVersion":"22.13.1","dependencies":{"zod":"^3.23.0","@402md/cli":"^0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@langchain/core":"^0.3.0"},"peerDependencies":{"@langchain/core":">=0.3.0"},"peerDependenciesMeta":{"@langchain/core":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/agent-tools_0.1.0_1772414347766_0.08622090926096249","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@402md/agent-tools","version":"0.1.1","description":"Agent tools for 402.md — framework-agnostic + LangChain adapter","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./langchain":{"types":"./dist/langchain/index.d.ts","import":"./dist/langchain/index.js","require":"./dist/langchain/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist"},"dependencies":{"@402md/cli":"^0.1.3","zod":"^3.23.0"},"peerDependencies":{"@langchain/core":">=0.3.0"},"peerDependenciesMeta":{"@langchain/core":{"optional":true}},"devDependencies":{"@langchain/core":"^0.3.0","@types/node":"^22.0.0","tsup":"^8.0.0","typescript":"^5.7.0"},"keywords":["402md","agent","tools","langchain","ai","skills"],"license":"MIT","engines":{"node":">=18"},"_id":"@402md/agent-tools@0.1.1","gitHead":"657337757a5f1c49b81acd6bbf49ef3f4b1be2df","_nodeVersion":"22.13.1","_npmVersion":"11.2.0","dist":{"integrity":"sha512-Ivv/Ig6Fyvbw8i2eab7Tv0Ve4gR7c6vApJqkXn3svxGsQjzH3uca1bX9/QDQwKde0J0e1HNBgqfxHKKQPQys9A==","shasum":"b41cd01060c5743357c8c2970bbea1846a61a10a","tarball":"https://registry.npmjs.org/@402md/agent-tools/-/agent-tools-0.1.1.tgz","fileCount":16,"unpackedSize":79561,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCiYVRDHvWeuvKK7BmghG8t7LY7JK59ST8tv0lh8smhKQIhAIgW+roQaSL48nFUAVy81HUVSCLQSnhZtvxi+g8EAMG1"}]},"_npmUser":{"name":"henriquebreim","email":"developers@402.md"},"directories":{},"maintainers":[{"name":"henriquebreim","email":"developers@402.md"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-tools_0.1.1_1772422534165_0.7082024348072347"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-02T01:19:07.655Z","modified":"2026-03-02T03:35:34.448Z","0.1.0":"2026-03-02T01:19:07.921Z","0.1.1":"2026-03-02T03:35:34.314Z"},"license":"MIT","keywords":["402md","agent","tools","langchain","ai","skills"],"description":"Agent tools for 402.md — framework-agnostic + LangChain adapter","maintainers":[{"name":"henriquebreim","email":"developers@402.md"}],"readme":"# @402md/agent-tools\n\nReady-made tools for AI agents to discover and pay for [402.md](https://402.md) skills. Framework-agnostic core with a LangChain adapter.\n\n> **Note:** LangChain is currently the only supported framework adapter. Support for Vercel AI SDK, CrewAI, and others is planned. The framework-agnostic core (`ToolDef`) can be used to build custom adapters for any framework.\n\n## Install\n\n```bash\nnpm install @402md/agent-tools @402md/cli\n```\n\nFor LangChain:\n\n```bash\nnpm install @402md/agent-tools @402md/cli @langchain/core\n```\n\n## Quick Start\n\nInitialize your project with one of the two payment modes:\n\n**Wallet-pay** — uses a managed wallet created on the [402.md dashboard](https://402.md). The backend handles gas and signing on your behalf (recommended for getting started):\n\n```bash\nnpx @402md/cli init \\\n  --mode wallet-pay \\\n  --api-key sk_your_api_key \\\n  --wallet 0xYOUR_WALLET_ADDRESS \\\n  --network base-sepolia\n```\n\n**x402** — self-custody mode. You provide your own private key and the agent signs USDC transfers directly on-chain:\n\n```bash\nnpx @402md/cli init \\\n  --mode x402 \\\n  --key 0xYOUR_PRIVATE_KEY \\\n  --network base\n```\n\nTo point at a custom backend (e.g. local development):\n\n```bash\nnpx @402md/cli init \\\n  --mode wallet-pay \\\n  --api-key sk_your_api_key \\\n  --wallet 0xYOUR_WALLET_ADDRESS \\\n  --network base-sepolia \\\n  --api-url http://localhost:3001\n```\n\nThen install a skill:\n\n```bash\nnpx @402md/cli add <skill_name>\n```\n\n```typescript\nimport { ChatAnthropic } from '@langchain/anthropic'\nimport { createAgent } from 'langchain'\nimport { HumanMessage } from '@langchain/core/messages'\nimport { createAll402Tools } from '@402md/agent-tools/langchain'\nimport type { StructuredToolInterface } from '@langchain/core/tools'\n\nconst paymentTools = createAll402Tools() as StructuredToolInterface[]\n\nconst agent = createAgent({\n  model: new ChatAnthropic({ model: 'claude-sonnet-4-6' }),\n  tools: paymentTools,\n  systemPrompt: 'You are an AI agent with a USDC wallet on Base.',\n})\n\nconst result = await agent.invoke({\n  messages: [new HumanMessage('Check my balance and call ditto at /test')],\n})\n```\n\n## API\n\n### LangChain (`@402md/agent-tools/langchain`)\n\n```typescript\nimport {\n  create402Tools,                  // 2 core tools: balance, call\n  create402SearchTool,             // 1 tool: search (opt-in)\n  createToolsFromInstalledSkills,  // 1 tool per installed skill\n  createAll402Tools,               // all combined (core + search + skills)\n} from '@402md/agent-tools/langchain'\n```\n\nAll functions return `DynamicStructuredTool[]` and accept an optional `{ projectDir?: string }`.\n\n### Framework-Agnostic (`@402md/agent-tools`)\n\n```typescript\nimport { createCoreTools, createSearchTool, createSkillTools } from '@402md/agent-tools'\n\n// Core tools (balance + call)\nconst tools = [...createCoreTools(), ...createSkillTools()]\n\n// Add search if needed\nconst allTools = [...createSearchTool(), ...tools]\n\n// Each tool: { name, description, schema, execute }\nconst result = await tools[0].execute({ query: 'sentiment' })\n```\n\n## Tools\n\n| Tool | Source | Description |\n|------|--------|-------------|\n| `check_balance` | `create402Tools` | Check USDC wallet balance |\n| `call_skill` | `create402Tools` | Call any skill with automatic payment |\n| `search_skills` | `create402SearchTool` | Search the 402.md marketplace (opt-in) |\n| `<skill-name>` | `createToolsFromInstalledSkills` | One tool per installed skill (auto-generated) |\n\n## Error Handling\n\nTools never throw. If payment isn't configured, they return:\n\n```json\n{ \"error\": \"No payment configured. Run:\\n  npx @402md/cli init ...\" }\n```\n\n## Examples\n\nSee the [examples repo](https://github.com/402-md/examples) for complete working demos, including an interactive LangChain agent with autonomous payments.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}