├── typescript ├── .nvmrc ├── .prettierignore ├── .gitignore ├── .mocharc.json ├── community │ ├── mcp-tools │ │ ├── coingecko-mcp-server │ │ │ ├── .npmrc │ │ │ ├── .gitignore │ │ │ ├── src │ │ │ │ └── stdio-server.ts │ │ │ ├── tsconfig.json │ │ │ └── Dockerfile │ │ ├── allora-mcp-server │ │ │ ├── .dockerignore │ │ │ ├── .env.example │ │ │ ├── tsconfig.json │ │ │ ├── Dockerfile │ │ │ ├── docker-compose.yml │ │ │ ├── bin │ │ │ │ └── allora-mcp-server.js │ │ │ ├── .gitignore │ │ │ └── LICENSE │ │ ├── centrifuge-mcp-server │ │ │ ├── mcp-inspector-config.json │ │ │ ├── run-server-simple.sh │ │ │ ├── run-server-stdio.sh │ │ │ ├── .mcprc │ │ │ ├── tsconfig.json │ │ │ ├── run-server.sh │ │ │ └── package.json │ │ ├── defisafety-implementation │ │ │ ├── src │ │ │ │ ├── scraper │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── embeddings │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ └── tools.ts │ │ │ ├── tsconfig.json │ │ │ ├── launch-mcp-inspector.bat │ │ │ └── package.json │ │ └── tatum-mcp-server │ │ │ ├── tsconfig.json │ │ │ └── package.json │ └── agents │ │ ├── swapping-agent │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── tsconfig.json │ │ └── .env.example │ │ ├── swapping-agent-no-wallet │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── tsconfig.json │ │ ├── test │ │ │ └── setup-env.ts │ │ ├── samples │ │ │ └── agentResponse.json │ │ └── .env.example │ │ ├── trendmoon-agent │ │ ├── .env.example │ │ ├── src │ │ │ ├── .gitignore │ │ │ └── agentToolHandlers.ts │ │ ├── scripts │ │ │ ├── test_ema_command.sh │ │ │ └── test_social_ma_command.sh │ │ ├── tsconfig.json │ │ └── package.json │ │ ├── allora-price-prediction-agent │ │ ├── .prettierrc │ │ ├── vitest.config.ts │ │ ├── tsconfig.json │ │ ├── .gitignore │ │ └── .env.example │ │ ├── pendle-agent │ │ ├── .prettierrc │ │ ├── .gitignore │ │ ├── tsconfig.json │ │ ├── tsconfig.test.json │ │ ├── src │ │ │ └── utils.ts │ │ └── .env.example │ │ ├── lending-agent-no-wallet │ │ ├── .prettierrc │ │ ├── .gitignore │ │ ├── tsconfig.json │ │ └── tsconfig.test.json │ │ ├── liquidity-agent-no-wallet │ │ ├── .prettierrc │ │ ├── .gitignore │ │ ├── tsconfig.json │ │ ├── tsconfig.test.json │ │ ├── samples │ │ │ └── agentResponse.json │ │ └── .env.example │ │ ├── rwa-investment-agent │ │ ├── src │ │ │ └── skills │ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── Dockerfile │ │ └── defisafety-agent │ │ ├── tsconfig.json │ │ ├── vitest.config.ts │ │ ├── .env.example │ │ ├── package.json │ │ └── Dockerfile ├── commitlint.config.js ├── lib │ ├── ember-api │ │ ├── src │ │ │ ├── index.ts │ │ │ └── schemas │ │ │ │ ├── index.ts │ │ │ │ ├── capabilities.ts │ │ │ │ └── requests.ts │ │ ├── tsconfig.json │ │ └── package.json │ ├── agent-node │ │ ├── src │ │ │ ├── cli │ │ │ │ ├── templates │ │ │ │ │ ├── config-workspace │ │ │ │ │ │ ├── workflows │ │ │ │ │ │ │ └── sample-package │ │ │ │ │ │ │ │ ├── .prettierignore │ │ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ │ │ ├── .env.example │ │ │ │ │ │ │ │ ├── .env.test.example │ │ │ │ │ │ │ │ ├── .editorconfig │ │ │ │ │ │ │ │ ├── .prettierrc │ │ │ │ │ │ │ │ ├── tsconfig.vitest.json │ │ │ │ │ │ │ │ ├── tsconfig.eslint.json │ │ │ │ │ │ │ │ ├── tests │ │ │ │ │ │ │ │ ├── example.e2e.test.ts │ │ │ │ │ │ │ │ ├── example.int.test.ts │ │ │ │ │ │ │ │ └── setup │ │ │ │ │ │ │ │ │ └── vitest.setup.ts │ │ │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ │ ├── workflow-logger.ts │ │ │ │ │ │ │ │ └── example.unit.test.ts │ │ │ │ │ │ │ │ ├── vitest.config.int.ts │ │ │ │ │ │ │ │ ├── vitest.config.e2e.ts │ │ │ │ │ │ │ │ ├── vitest.config.unit.ts │ │ │ │ │ │ │ │ └── tsconfig.json │ │ │ │ │ │ ├── workflow.json │ │ │ │ │ │ ├── agent.manifest.json │ │ │ │ │ │ └── mcp.json │ │ │ │ │ ├── tsconfig.json │ │ │ │ │ └── .lint │ │ │ │ │ │ └── workflow-module.d.ts │ │ │ │ ├── loader.ts │ │ │ │ └── commands │ │ │ │ │ └── index.ts │ │ │ ├── config │ │ │ │ ├── composers │ │ │ │ │ └── index.ts │ │ │ │ ├── validators │ │ │ │ │ └── index.ts │ │ │ │ ├── runtime │ │ │ │ │ └── index.ts │ │ │ │ ├── schemas │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── workflow.schema.ts │ │ │ │ │ └── manifest.schema.ts │ │ │ │ ├── loaders │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── manifest-loader.ts │ │ │ │ │ └── agent-loader.ts │ │ │ │ └── index.ts │ │ │ ├── cli.ts │ │ │ ├── ai │ │ │ │ ├── providers │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── workflow │ │ │ │ ├── public.ts │ │ │ │ └── tasks │ │ │ │ │ ├── types.ts │ │ │ │ │ └── stateMachine.ts │ │ │ └── server-loader.ts │ │ ├── tests │ │ │ ├── setup │ │ │ │ ├── vitest.e2e.setup.ts │ │ │ │ ├── vitest.unit.setup.ts │ │ │ │ ├── vitest.int.setup.ts │ │ │ │ └── msw.setup.ts │ │ │ ├── utils │ │ │ │ ├── mocks │ │ │ │ │ └── index.ts │ │ │ │ └── factories │ │ │ │ │ └── index.ts │ │ │ ├── fixtures │ │ │ │ └── workflows │ │ │ │ │ └── utils │ │ │ │ │ ├── transaction.ts │ │ │ │ │ └── clients.ts │ │ │ └── mocks │ │ │ │ ├── data │ │ │ │ ├── viem │ │ │ │ │ ├── eth_call.json │ │ │ │ │ ├── eth_sendUserOperation.json │ │ │ │ │ ├── eth_gasPrice.json │ │ │ │ │ └── pimlico_getUserOperationGasPrice.json │ │ │ │ ├── x402-facilitator │ │ │ │ │ └── verify-invalid-requirements.json │ │ │ │ └── openrouter │ │ │ │ │ └── server-error.json │ │ │ │ └── handlers │ │ │ │ └── index.ts │ │ ├── vitest.config.unit.ts │ │ ├── docker-compose.yaml │ │ ├── vitest.config.int.ts │ │ ├── vitest.config.e2e.ts │ │ ├── .dockerignore │ │ ├── tsconfig.build.json │ │ ├── Caddyfile │ │ ├── release.config.mjs │ │ ├── tsconfig.json │ │ ├── docker-compose.prod.yaml │ │ ├── Dockerfile │ │ ├── .env.example │ │ ├── scripts │ │ │ └── remove-local-pnpm-shim.mjs │ │ └── tsdown.config.ts │ └── test-utils │ │ ├── .prettierrc │ │ ├── src │ │ ├── .prettierrc │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── package.json ├── clients │ ├── web-legacy │ │ ├── app │ │ │ ├── (auth) │ │ │ │ ├── api │ │ │ │ │ └── auth │ │ │ │ │ │ └── [...nextauth] │ │ │ │ │ │ └── route.ts │ │ │ │ └── auth.config.ts │ │ │ └── (chat) │ │ │ │ ├── favicon.ico │ │ │ │ ├── api │ │ │ │ ├── history │ │ │ │ │ └── route.ts │ │ │ │ └── suggestions │ │ │ │ │ └── route.ts │ │ │ │ └── layout.tsx │ │ ├── lib │ │ │ ├── db │ │ │ │ ├── migrations │ │ │ │ │ ├── 0004_odd_slayback.sql │ │ │ │ │ ├── 0003_cloudy_glorian.sql │ │ │ │ │ ├── 0006_loose_iron_lad.sql │ │ │ │ │ ├── 0000_keen_devos.sql │ │ │ │ │ └── meta │ │ │ │ │ │ └── _journal.json │ │ │ │ └── migrate.ts │ │ │ ├── constants.ts │ │ │ ├── editor │ │ │ │ └── react-renderer.tsx │ │ │ └── ai │ │ │ │ ├── models.ts │ │ │ │ ├── types.ts │ │ │ │ └── tools │ │ │ │ └── get-weather.ts │ │ ├── public │ │ │ ├── favicon.ico │ │ │ └── images │ │ │ │ └── Vibekit_Dark.png │ │ ├── .dockerignore │ │ ├── postcss.config.mjs │ │ ├── next-env.d.ts │ │ ├── next.config.ts │ │ ├── artifacts │ │ │ ├── actions.ts │ │ │ └── image │ │ │ │ └── server.ts │ │ ├── components │ │ │ ├── theme-provider.tsx │ │ │ ├── ui │ │ │ │ ├── skeleton.tsx │ │ │ │ ├── textarea.tsx │ │ │ │ ├── label.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── separator.tsx │ │ │ │ └── tooltip.tsx │ │ │ ├── sign-out-form.tsx │ │ │ ├── ShortAddress.tsx │ │ │ ├── overview.tsx │ │ │ ├── use-scroll-to-bottom.ts │ │ │ ├── artifact-close-button.tsx │ │ │ ├── sidebar-toggle.tsx │ │ │ ├── submit-button.tsx │ │ │ ├── code-block.tsx │ │ │ └── image-editor.tsx │ │ ├── Dockerfile │ │ ├── drizzle.config.ts │ │ ├── middleware.ts │ │ ├── components.json │ │ ├── LICENSE │ │ ├── hooks │ │ │ └── use-mobile.tsx │ │ ├── .eslintrc.json │ │ ├── tests │ │ │ ├── reasoning.setup.ts │ │ │ └── auth.setup.ts │ │ └── tsconfig.json │ └── web │ │ ├── postcss.config.mjs │ │ ├── src │ │ ├── components │ │ │ ├── ui │ │ │ │ ├── skeleton.tsx │ │ │ │ ├── textarea.tsx │ │ │ │ └── input.tsx │ │ │ ├── tools │ │ │ │ └── ShortAddress.tsx │ │ │ └── PrivyClientProvider.tsx │ │ └── lib │ │ │ ├── types │ │ │ └── mcp.ts │ │ │ └── utils.ts │ │ ├── next.config.ts │ │ ├── components.json │ │ ├── tsconfig.json │ │ ├── .env.example │ │ ├── public │ │ └── usdai.svg │ │ └── Dockerfile ├── templates │ ├── quickstart-agent │ │ ├── .prettierrc │ │ ├── tsconfig.json │ │ ├── .gitignore │ │ ├── src │ │ │ └── context │ │ │ │ └── types.ts │ │ └── .env.example │ ├── lending-agent │ │ ├── .prettierrc │ │ ├── .gitignore │ │ ├── src │ │ │ └── tools │ │ │ │ ├── lendingTools.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── langgraph-workflow-agent │ │ ├── vitest.setup.ts │ │ ├── vitest.config.ts │ │ ├── tsconfig.json │ │ ├── src │ │ │ └── skills │ │ │ │ └── greeting-optimizer.ts │ │ ├── .env.example │ │ └── package.json │ └── ember-agent │ │ ├── tsconfig.json │ │ ├── vitest.config.ts │ │ ├── test │ │ └── setup.vitest.ts │ │ ├── Dockerfile │ │ ├── src │ │ └── config.ts │ │ └── .env.example ├── test │ ├── start-anvil.ts │ ├── start-mainnet.ts │ ├── .gitignore │ └── helpers │ │ └── vitest-global-setup.ts ├── onchain-actions-plugins │ └── registry │ │ ├── src │ │ ├── core │ │ │ ├── queries │ │ │ │ ├── index.ts │ │ │ │ ├── lending.ts │ │ │ │ ├── tokenizedYield.ts │ │ │ │ └── perpetuals.ts │ │ │ ├── schemas │ │ │ │ ├── index.ts │ │ │ │ ├── enums.ts │ │ │ │ └── swap.ts │ │ │ ├── actions │ │ │ │ ├── index.ts │ │ │ │ ├── swap.ts │ │ │ │ ├── liquidity.ts │ │ │ │ ├── perpetuals.ts │ │ │ │ └── lending.ts │ │ │ ├── pluginType.ts │ │ │ └── index.ts │ │ ├── chainConfig.ts │ │ └── index.ts │ │ ├── tsconfig.json │ │ ├── tsdown.config.ts │ │ └── release.config.mjs ├── tsconfig.json ├── .prettierrc ├── .npmrc ├── scripts │ ├── require-submodule.sh │ └── copy-schemas.sh ├── .multi-releaserc.cjs ├── .editorconfig ├── .dockerignore ├── vitest.config.ts ├── tsconfig.base.json └── pnpm-workspace.yaml ├── .github └── ISSUE_TEMPLATE │ └── config.yml ├── .husky └── commit-msg ├── img ├── mcp.png ├── Banner.png ├── cursor.png ├── frontend.png ├── wallet.png ├── Flow Chart.png ├── run_tasks1.png ├── run_tasks2.png ├── Ember Black.png ├── Ember White.png ├── Plugin System.png ├── Ember_Inspector_1.png ├── Ember_Inspector_2.png └── quickstart-agent.png ├── .cursor └── rules │ └── additional-conventions.mdc ├── rulesync.jsonc ├── .gitignore ├── .claude └── hooks │ ├── subagent-stop-hook.sh │ └── pre-task-hook.sh ├── CHANGELOG.md ├── .vscode └── settings.json └── LICENSE /typescript/.nvmrc: -------------------------------------------------------------------------------- 1 | 22 2 | -------------------------------------------------------------------------------- /typescript/.prettierignore: -------------------------------------------------------------------------------- 1 | lib/agent-node/config/ 2 | -------------------------------------------------------------------------------- /typescript/.gitignore: -------------------------------------------------------------------------------- 1 | /onchain-actions/ 2 | /.artifacts/ 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | pnpm --prefix typescript commitlint --edit "$1" -------------------------------------------------------------------------------- /img/mcp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/mcp.png -------------------------------------------------------------------------------- /typescript/.mocharc.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": ["tsx", "mocha-suppress-logs"] 3 | } 4 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/coingecko-mcp-server/.npmrc: -------------------------------------------------------------------------------- 1 | inject-workspace-packages=true -------------------------------------------------------------------------------- /img/Banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/Banner.png -------------------------------------------------------------------------------- /img/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/cursor.png -------------------------------------------------------------------------------- /img/frontend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/frontend.png -------------------------------------------------------------------------------- /img/wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/wallet.png -------------------------------------------------------------------------------- /img/Flow Chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/Flow Chart.png -------------------------------------------------------------------------------- /img/run_tasks1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/run_tasks1.png -------------------------------------------------------------------------------- /img/run_tasks2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/run_tasks2.png -------------------------------------------------------------------------------- /img/Ember Black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/Ember Black.png -------------------------------------------------------------------------------- /img/Ember White.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/Ember White.png -------------------------------------------------------------------------------- /img/Plugin System.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/Plugin System.png -------------------------------------------------------------------------------- /typescript/commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ["@commitlint/config-conventional"], 3 | }; -------------------------------------------------------------------------------- /typescript/community/agents/swapping-agent/.gitignore: -------------------------------------------------------------------------------- 1 | # Local dependencies copied for build 2 | mcp-tools/ -------------------------------------------------------------------------------- /img/Ember_Inspector_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/Ember_Inspector_1.png -------------------------------------------------------------------------------- /img/Ember_Inspector_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/Ember_Inspector_2.png -------------------------------------------------------------------------------- /img/quickstart-agent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/img/quickstart-agent.png -------------------------------------------------------------------------------- /typescript/lib/ember-api/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './schemas/index.js'; 2 | export * from './client.js'; 3 | -------------------------------------------------------------------------------- /typescript/community/agents/swapping-agent-no-wallet/.gitignore: -------------------------------------------------------------------------------- 1 | # Local dependencies copied for build 2 | mcp-tools/ -------------------------------------------------------------------------------- /typescript/clients/web-legacy/app/(auth)/api/auth/[...nextauth]/route.ts: -------------------------------------------------------------------------------- 1 | export { GET, POST } from '@/app/(auth)/auth'; 2 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/coingecko-mcp-server/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | .env 4 | *.log 5 | .DS_Store 6 | *.tsbuildinfo -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/db/migrations/0004_odd_slayback.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "Document" ADD COLUMN "text" varchar DEFAULT 'text' NOT NULL; -------------------------------------------------------------------------------- /typescript/clients/web/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: ['@tailwindcss/postcss'], 3 | }; 4 | 5 | export default config; 6 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | coverage 3 | node_modules 4 | -------------------------------------------------------------------------------- /typescript/community/agents/trendmoon-agent/.env.example: -------------------------------------------------------------------------------- 1 | TRENDMOON_API_KEY= 2 | OPENAI_API_KEY= 3 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/db/migrations/0003_cloudy_glorian.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "Chat" ADD COLUMN "visibility" varchar DEFAULT 'private' NOT NULL; -------------------------------------------------------------------------------- /typescript/clients/web-legacy/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/typescript/clients/web-legacy/public/favicon.ico -------------------------------------------------------------------------------- /typescript/clients/web-legacy/app/(chat)/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/typescript/clients/web-legacy/app/(chat)/favicon.ico -------------------------------------------------------------------------------- /typescript/community/mcp-tools/allora-mcp-server/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | .env 4 | .git 5 | .github 6 | .vscode 7 | dist 8 | *.md 9 | !README.md -------------------------------------------------------------------------------- /typescript/community/agents/trendmoon-agent/src/.gitignore: -------------------------------------------------------------------------------- 1 | # Environment variables 2 | .env 3 | .env.local 4 | .env.development 5 | .env.test 6 | .env.productionimage.png -------------------------------------------------------------------------------- /typescript/clients/web-legacy/public/images/Vibekit_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmberAGI/arbitrum-vibekit/HEAD/typescript/clients/web-legacy/public/images/Vibekit_Dark.png -------------------------------------------------------------------------------- /typescript/templates/quickstart-agent/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2 7 | } 8 | -------------------------------------------------------------------------------- /typescript/test/start-anvil.ts: -------------------------------------------------------------------------------- 1 | import { startEnv } from "./helpers/start-env"; 2 | 3 | try { 4 | await startEnv(true); 5 | } catch (e) { 6 | console.error(e); 7 | process.exit(1); 8 | } 9 | -------------------------------------------------------------------------------- /typescript/community/agents/allora-price-prediction-agent/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2 7 | } 8 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/setup/vitest.e2e.setup.ts: -------------------------------------------------------------------------------- 1 | // E2E test setup - NO MSW (uses real services) 2 | // E2E tests should use real API keys from .env.test 3 | import './vitest.base.setup.js'; 4 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/setup/vitest.unit.setup.ts: -------------------------------------------------------------------------------- 1 | // Unit test setup - NO MSW, NO dummy API keys 2 | // Unit tests should use vi.mock() for all mocking 3 | import './vitest.base.setup.js'; 4 | -------------------------------------------------------------------------------- /typescript/test/start-mainnet.ts: -------------------------------------------------------------------------------- 1 | import { startEnv } from "./helpers/start-env"; 2 | 3 | try { 4 | await startEnv(false); 5 | } catch (e) { 6 | console.error(e); 7 | process.exit(1); 8 | } 9 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/.dockerignore: -------------------------------------------------------------------------------- 1 | Containerfile 2 | Dockerfile 3 | .containerignore 4 | .dockerignore 5 | node_modules 6 | README.md 7 | .next 8 | .git 9 | .gitignore 10 | *.md 11 | dist -------------------------------------------------------------------------------- /typescript/templates/lending-agent/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "es5", 4 | "printWidth": 100, 5 | "tabWidth": 2, 6 | "semi": true, 7 | "arrowParens": "avoid" 8 | } -------------------------------------------------------------------------------- /typescript/test/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore TypeScript generated files 2 | *.js 3 | *.js.map 4 | *.d.ts 5 | *.d.ts.map 6 | *.tsbuildinfo 7 | 8 | # Allow specific JS files that might be needed 9 | !jest.config.js -------------------------------------------------------------------------------- /typescript/community/agents/pendle-agent/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "trailingComma": "es5", 6 | "printWidth": 100, 7 | "arrowParens": "avoid" 8 | } -------------------------------------------------------------------------------- /typescript/community/mcp-tools/allora-mcp-server/.env.example: -------------------------------------------------------------------------------- 1 | # Server configuration 2 | PORT=3001 3 | 4 | # Allora API key 5 | # Get your API key from https://alloralabs.com 6 | ALLORA_API_KEY=your_api_key_here -------------------------------------------------------------------------------- /typescript/community/agents/swapping-agent/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "trailingComma": "es5", 6 | "printWidth": 100, 7 | "arrowParens": "avoid" 8 | } -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/src/core/queries/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lending.js'; 2 | export * from './liquidity.js'; 3 | export * from './perpetuals.js'; 4 | export * from './tokenizedYield.js'; 5 | -------------------------------------------------------------------------------- /typescript/lib/test-utils/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "endOfLine": "lf", 3 | "semi": true, 4 | "trailingComma": "es5", 5 | "singleQuote": true, 6 | "printWidth": 100, 7 | "tabWidth": 2, 8 | "arrowParens": "avoid" 9 | } -------------------------------------------------------------------------------- /typescript/templates/langgraph-workflow-agent/vitest.setup.ts: -------------------------------------------------------------------------------- 1 | import { config } from 'dotenv'; 2 | import { resolve } from 'path'; 3 | 4 | // Load .env file for tests 5 | config({ path: resolve(__dirname, '.env') }); 6 | -------------------------------------------------------------------------------- /typescript/community/agents/swapping-agent-no-wallet/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "trailingComma": "es5", 6 | "printWidth": 100, 7 | "arrowParens": "avoid" 8 | } -------------------------------------------------------------------------------- /typescript/lib/test-utils/src/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "endOfLine": "lf", 3 | "semi": true, 4 | "trailingComma": "es5", 5 | "singleQuote": true, 6 | "printWidth": 100, 7 | "tabWidth": 2, 8 | "arrowParens": "avoid" 9 | } -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | coverage 4 | .vitest 5 | *.tsbuildinfo 6 | .env 7 | .env.local 8 | .env.test 9 | !.env.test.example 10 | -------------------------------------------------------------------------------- /typescript/community/agents/lending-agent-no-wallet/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "endOfLine": "lf", 3 | "semi": true, 4 | "trailingComma": "es5", 5 | "singleQuote": true, 6 | "printWidth": 100, 7 | "tabWidth": 2, 8 | "arrowParens": "avoid" 9 | } -------------------------------------------------------------------------------- /typescript/community/mcp-tools/centrifuge-mcp-server/mcp-inspector-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "centrifuge-mcp-server": { 4 | "url": "http://localhost:3001/mcp", 5 | "transportType": "sse" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /typescript/community/agents/liquidity-agent-no-wallet/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "endOfLine": "lf", 3 | "semi": true, 4 | "trailingComma": "es5", 5 | "singleQuote": true, 6 | "printWidth": 100, 7 | "tabWidth": 2, 8 | "arrowParens": "avoid" 9 | } -------------------------------------------------------------------------------- /typescript/clients/web-legacy/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | 'tailwindcss/nesting': {}, 6 | }, 7 | }; 8 | 9 | export default config; 10 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/.env.example: -------------------------------------------------------------------------------- 1 | # Copy to .env for local development. 2 | # Populate provider keys for any integrations this workflow needs. 3 | API_KEY= 4 | CUSTOM_RPC_URL= 5 | LOG_LEVEL= 6 | -------------------------------------------------------------------------------- /typescript/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["vitest/globals", "node"] 5 | }, 6 | "include": ["vitest.config.ts", "src/**/*", "tests/**/*"], 7 | "exclude": ["node_modules", "dist"] 8 | } -------------------------------------------------------------------------------- /typescript/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 100, 6 | "tabWidth": 2, 7 | "useTabs": false, 8 | "bracketSpacing": true, 9 | "arrowParens": "always", 10 | "endOfLine": "lf" 11 | } -------------------------------------------------------------------------------- /typescript/community/agents/trendmoon-agent/scripts/test_ema_command.sh: -------------------------------------------------------------------------------- 1 | curl -X POST http://localhost:3001/ask \\n -H "Content-Type: application/json" \\n -d '{\n "query": "Is Bitcoin trading above its 20 and 50 day EMAs? What does this mean for the trend?"\n }' 2 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/.env.test.example: -------------------------------------------------------------------------------- 1 | # Values loaded automatically via `tsx --env-file=.env.test vitest ...` 2 | API_KEY=example-test-key 3 | CUSTOM_RPC_URL=https://example.invalid 4 | LOG_LEVEL=info 5 | -------------------------------------------------------------------------------- /.cursor/rules/additional-conventions.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | alwaysApply: true 3 | --- 4 | 5 | # Additional Conventions Beyond the Built-in Functions 6 | 7 | As this project's AI coding tool, you must follow the additional conventions below, in addition to the built-in functions. 8 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /typescript/community/agents/rwa-investment-agent/src/skills/index.ts: -------------------------------------------------------------------------------- 1 | export { rwaAnalysisSkill } from './assetDiscovery.js'; 2 | export { contractVerificationSkill } from './contractVerification.js'; 3 | export { portfolioManagementSkill } from './portfolioManagement.js'; 4 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/src/chainConfig.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Configuration for a blockchain network. 3 | */ 4 | export type ChainConfig = { 5 | chainId: number; 6 | name: string; 7 | rpcUrl: string; 8 | wrappedNativeToken?: string; 9 | }; 10 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/config/composers/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Config v2 Composers 3 | * Composition logic for agent configuration 4 | */ 5 | 6 | export * from './prompt-composer.js'; 7 | export * from './card-composer.js'; 8 | export * from './effective-set-composer.js'; 9 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/config/validators/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Config v2 Validators 3 | * Configuration validation and conflict detection 4 | */ 5 | 6 | export * from './tool-validator.js'; 7 | export * from './conflict-validator.js'; 8 | export * from './a2a-validator.js'; 9 | -------------------------------------------------------------------------------- /typescript/.npmrc: -------------------------------------------------------------------------------- 1 | # Workspace configuration 2 | inject-workspace-packages=true 3 | 4 | # Peer dependencies handling 5 | auto-install-peers=true 6 | strict-peer-dependencies=false 7 | 8 | # Performance 9 | prefer-frozen-lockfile=false 10 | 11 | # Logging 12 | loglevel=warn 13 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | /** 3 | * CLI Binary Entry Point 4 | * This file is the entry point for the `agent` CLI command 5 | */ 6 | 7 | // Import the CLI loader which handles environment loading and CLI execution 8 | await import('./cli/loader.js'); 9 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_style = space 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/centrifuge-mcp-server/run-server-simple.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Simple wrapper script using absolute paths 4 | cd /Users/griffinsoduol/Desktop/OtherProjects/arbitrum-vibekit/typescript/lib/mcp-tools/centrifuge-mcp-server 5 | /tmp/node-executable dist/index.js 6 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/constants.ts: -------------------------------------------------------------------------------- 1 | export const isProductionEnvironment = process.env.NODE_ENV === 'production'; 2 | 3 | export const isTestEnvironment = Boolean( 4 | process.env.PLAYWRIGHT_TEST_BASE_URL || 5 | process.env.PLAYWRIGHT || 6 | process.env.CI_PLAYWRIGHT, 7 | ); 8 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/config/runtime/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Config v2 Runtime 3 | * Runtime integration for config workspace 4 | */ 5 | 6 | export * from './mcp-instantiator.js'; 7 | export * from './workflow-loader.js'; 8 | export * from './watcher.js'; 9 | export * from './init.js'; 10 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/vitest.config.unit.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | export default defineConfig({ 4 | test: { 5 | globals: true, 6 | setupFiles: ['./tests/setup/vitest.unit.setup.ts'], 7 | include: ['src/**/*.unit.test.ts'], 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/ai/providers/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Provider Selector Exports 3 | */ 4 | 5 | export { 6 | createProviderSelector, 7 | getAvailableProviders, 8 | DEFAULT_MODELS, 9 | type ProviderSelector, 10 | type ProviderSelectorConfig, 11 | } from './provider-selector.js'; 12 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/src/core/schemas/index.ts: -------------------------------------------------------------------------------- 1 | export * from './core.js'; 2 | export * from './enums.js'; 3 | export * from './lending.js'; 4 | export * from './liquidity.js'; 5 | export * from './perpetuals.js'; 6 | export * from './swap.js'; 7 | export * from './tokenizedYield.js'; 8 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from 'next'; 2 | 3 | const nextConfig: NextConfig = { 4 | images: { 5 | remotePatterns: [ 6 | { 7 | hostname: 'avatar.vercel.sh', 8 | }, 9 | ], 10 | }, 11 | }; 12 | 13 | export default nextConfig; 14 | -------------------------------------------------------------------------------- /typescript/clients/web/src/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from '@/lib/utils'; 2 | 3 | function Skeleton({ className, ...props }: React.HTMLAttributes) { 4 | return
; 5 | } 6 | 7 | export { Skeleton }; 8 | -------------------------------------------------------------------------------- /typescript/community/agents/trendmoon-agent/scripts/test_social_ma_command.sh: -------------------------------------------------------------------------------- 1 | curl -X POST http://localhost:3001/ask \\n -H "Content-Type: application/json" \\n -d '{\n "query": "Analyze Bitcoin social trends with moving averages. What does the social dominance MA suggest about its current popularity?"\n }' 2 | -------------------------------------------------------------------------------- /typescript/lib/ember-api/src/schemas/index.ts: -------------------------------------------------------------------------------- 1 | export * from './core.js'; 2 | export * from './enums.js'; 3 | export * from './swap.js'; 4 | export * from './lending.js'; 5 | export * from './liquidity.js'; 6 | export * from './wallet.js'; 7 | export * from './requests.js'; 8 | export * from './capabilities.js'; 9 | -------------------------------------------------------------------------------- /typescript/community/agents/swapping-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "src", 5 | "outDir": "dist", 6 | "verbatimModuleSyntax": false 7 | }, 8 | "include": ["src/**/*"], 9 | "exclude": ["node_modules", "dist"] 10 | } 11 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/utils/mocks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Barrel export for all test mocks 3 | */ 4 | 5 | export { RecordingEventBus, createMockEventBus } from './event-bus.mock.js'; 6 | export { StubWorkflowRuntime } from './workflow-runtime.mock.js'; 7 | export { StubAIService } from './ai-service.mock.js'; 8 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/centrifuge-mcp-server/run-server-stdio.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Simple wrapper script for stdio-only server (no HTTP port conflicts) 4 | cd /Users/griffinsoduol/Desktop/OtherProjects/arbitrum-vibekit/typescript/lib/mcp-tools/centrifuge-mcp-server 5 | /tmp/node-executable dist/stdio-server.js 6 | -------------------------------------------------------------------------------- /typescript/lib/ember-api/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "dist", 5 | "composite": true, 6 | "baseUrl": ".", 7 | "verbatimModuleSyntax": false 8 | }, 9 | "include": ["src/**/*.ts"], 10 | "exclude": ["node_modules", "dist"] 11 | } -------------------------------------------------------------------------------- /typescript/community/agents/liquidity-agent-no-wallet/.gitignore: -------------------------------------------------------------------------------- 1 | # Node.js 2 | node_modules/ 3 | dist/ 4 | dist-test/ 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | 9 | # Build artifacts 10 | mcp-tools/ 11 | *.tsbuildinfo 12 | tsconfig.tsbuildinfo 13 | 14 | # Environment variables 15 | .env* 16 | !.env.example -------------------------------------------------------------------------------- /typescript/community/mcp-tools/allora-mcp-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "moduleResolution": "NodeNext", 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "include": ["src/**/*"], 9 | "exclude": ["node_modules", "dist"] 10 | } 11 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/defisafety-implementation/src/scraper/index.ts: -------------------------------------------------------------------------------- 1 | export { DocumentationScraper } from './scraper.js'; 2 | export { DocumentationCrawler } from './crawler.js'; 3 | export type { 4 | PageContent, 5 | Heading, 6 | ScraperOptions, 7 | ScrapingProgress, 8 | ScrapingError 9 | } from './types.js'; -------------------------------------------------------------------------------- /typescript/clients/web-legacy/artifacts/actions.ts: -------------------------------------------------------------------------------- 1 | 'use server'; 2 | 3 | import { getSuggestionsByDocumentId } from '@/lib/db/queries'; 4 | 5 | export async function getSuggestions({ documentId }: { documentId: string }) { 6 | const suggestions = await getSuggestionsByDocumentId({ documentId }); 7 | return suggestions ?? []; 8 | } 9 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflow.json: -------------------------------------------------------------------------------- 1 | { 2 | "workflows": [ 3 | { 4 | "id": "sample-package-workflow", 5 | "from": "./workflows/sample-package/src/index.ts", 6 | "enabled": true, 7 | "config": { 8 | "mode": "default" 9 | } 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/clients/web/next.config.ts: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | turbopack: { 4 | rules: { 5 | '*.svg': { 6 | loaders: ['@svgr/webpack'], 7 | as: '*.js', 8 | }, 9 | }, 10 | }, 11 | devIndicators: false, 12 | }; 13 | 14 | export default nextConfig; 15 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/centrifuge-mcp-server/.mcprc: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "centrifuge-mcp-server": { 4 | "command": "node", 5 | "args": ["dist/index.js"], 6 | "cwd": "/Users/griffinsoduol/Desktop/OtherProjects/arbitrum-vibekit/typescript/lib/mcp-tools/centrifuge-mcp-server" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/tatum-mcp-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "moduleResolution": "NodeNext", 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "include": ["src/**/*"], 9 | "exclude": ["node_modules", "dist"] 10 | } 11 | 12 | 13 | -------------------------------------------------------------------------------- /typescript/community/agents/lending-agent-no-wallet/.gitignore: -------------------------------------------------------------------------------- 1 | # Node.js 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Environment variables 9 | .env* 10 | !.env.example 11 | 12 | # Build artifacts 13 | mcp-tools/ 14 | 15 | # OS / Editor specific 16 | .DS_Store 17 | .vscode/ 18 | .idea/ -------------------------------------------------------------------------------- /typescript/lib/agent-node/docker-compose.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | app: 3 | build: 4 | context: ../.. 5 | dockerfile: lib/agent-node/Dockerfile 6 | ports: 7 | - '3000:3000' 8 | env_file: 9 | - .env 10 | environment: 11 | - NODE_ENV=production 12 | volumes: 13 | - ./config:/app/config:ro 14 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 100, 6 | "tabWidth": 2, 7 | "useTabs": false, 8 | "bracketSpacing": true, 9 | "arrowParens": "always", 10 | "endOfLine": "lf" 11 | } 12 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/config/schemas/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Config v2 Schemas 3 | * Zod schemas for agent configuration workspace 4 | */ 5 | 6 | export * from './agent.schema.js'; 7 | export * from './manifest.schema.js'; 8 | export * from './skill.schema.js'; 9 | export * from './mcp.schema.js'; 10 | export * from './workflow.schema.js'; 11 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "declaration": true, 6 | "declarationMap": true, 7 | "rootDir": "./src", 8 | "composite": false, 9 | "incremental": false 10 | }, 11 | "include": ["src"] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/community/agents/pendle-agent/.gitignore: -------------------------------------------------------------------------------- 1 | # Node.js 2 | node_modules/ 3 | dist/ 4 | dist-test/ 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | 9 | # Environment variables 10 | .env* 11 | !.env.example 12 | 13 | # Build artifacts 14 | mcp-tools/ 15 | *.tsbuildinfo 16 | 17 | # OS / Editor specific 18 | .DS_Store 19 | .vscode/ 20 | .idea/ -------------------------------------------------------------------------------- /typescript/community/agents/pendle-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "src", 5 | "outDir": "dist", 6 | "composite": true, 7 | "baseUrl": ".", 8 | "verbatimModuleSyntax": false 9 | }, 10 | "include": ["src/**/*"], 11 | "exclude": ["node_modules", "dist"] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/defisafety-implementation/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "moduleResolution": "NodeNext", 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "lib": ["ES2022", "DOM"] 8 | }, 9 | "include": ["src/**/*"], 10 | "exclude": ["node_modules", "dist"] 11 | } -------------------------------------------------------------------------------- /typescript/templates/lending-agent/.gitignore: -------------------------------------------------------------------------------- 1 | # Node.js 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Environment variables 9 | .env* 10 | !.env.example 11 | 12 | # Build artifacts 13 | mcp-tools/ 14 | 15 | # OS / Editor specific 16 | .DS_Store 17 | .vscode/ 18 | .idea/ 19 | 20 | # Cache directory 21 | .cache/ -------------------------------------------------------------------------------- /typescript/templates/lending-agent/src/tools/lendingTools.ts: -------------------------------------------------------------------------------- 1 | export { borrowBase } from './borrow.js'; 2 | export { repayBase } from './repay.js'; 3 | export { supplyBase } from './supply.js'; 4 | export { withdrawBase } from './withdraw.js'; 5 | export { getUserPositionsBase } from './getUserPositions.js'; 6 | export { askEncyclopediaBase } from './askEncyclopedia.js'; 7 | -------------------------------------------------------------------------------- /typescript/community/agents/trendmoon-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "src", 5 | "outDir": "dist", 6 | "composite": true, 7 | "moduleResolution": "NodeNext", 8 | "types": ["node"] 9 | }, 10 | "include": ["src/**/*"], 11 | "exclude": ["node_modules", "dist"] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/vitest.config.int.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | export default defineConfig({ 4 | test: { 5 | globals: true, 6 | setupFiles: ['./tests/setup/vitest.int.setup.ts'], 7 | include: ['tests/**/*.int.test.ts'], 8 | testTimeout: 10000, // AI streaming responses can take 6-8 seconds 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /typescript/community/agents/allora-price-prediction-agent/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | export default defineConfig({ 4 | test: { 5 | globals: true, 6 | environment: 'node', 7 | testTimeout: 60000, // 60 seconds for integration tests 8 | hookTimeout: 30000, // 30 seconds for beforeAll/afterAll 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /rulesync.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "targets": [ 3 | "cursor", 4 | "claudecode", 5 | "codexcli" 6 | ], 7 | "features": [ 8 | "rules", 9 | "commands", 10 | "subagents" 11 | ], 12 | "baseDirs": [ 13 | "." 14 | ], 15 | "delete": true, 16 | "verbose": false, 17 | "global": true, 18 | "simulatedCommands": true, 19 | "simulatedSubagents": false 20 | } -------------------------------------------------------------------------------- /typescript/clients/web-legacy/components/theme-provider.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { ThemeProvider as NextThemesProvider } from 'next-themes'; 4 | import type { ThemeProviderProps } from 'next-themes/dist/types'; 5 | 6 | export function ThemeProvider({ children, ...props }: ThemeProviderProps) { 7 | return {children}; 8 | } 9 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/editor/react-renderer.tsx: -------------------------------------------------------------------------------- 1 | import { createRoot } from 'react-dom/client'; 2 | 3 | export class ReactRenderer { 4 | static render(component: React.ReactElement, dom: HTMLElement) { 5 | const root = createRoot(dom); 6 | root.render(component); 7 | 8 | return { 9 | destroy: () => root.unmount(), 10 | }; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/vitest.config.e2e.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | export default defineConfig({ 4 | test: { 5 | globals: true, 6 | setupFiles: ['./tests/setup/vitest.e2e.setup.ts'], 7 | include: ['tests/**/*.e2e.test.ts'], 8 | poolOptions: { threads: { singleThread: true } }, 9 | maxConcurrency: 1, 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /typescript/lib/test-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Arbitrum Vibekit Test Utilities 3 | */ 4 | 5 | // Re-export all utilities 6 | export * from './transactions.js'; 7 | export * from './multi-chain-signer.js'; 8 | export * from './lending.js'; 9 | export * from './chains.js'; 10 | export * from './response.js'; 11 | export * from './weth.js'; 12 | export * from './tokens.js'; 13 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/components/ui/skeleton.tsx: -------------------------------------------------------------------------------- 1 | import { cn } from '@/lib/utils'; 2 | 3 | function Skeleton({ 4 | className, 5 | ...props 6 | }: React.HTMLAttributes) { 7 | return ( 8 |
12 | ); 13 | } 14 | 15 | export { Skeleton }; 16 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/db/migrations/0006_loose_iron_lad.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE "User" ADD COLUMN "address" varchar(42) NOT NULL;--> statement-breakpoint 2 | ALTER TABLE "User" DROP COLUMN IF EXISTS "email";--> statement-breakpoint 3 | ALTER TABLE "User" DROP COLUMN IF EXISTS "password";--> statement-breakpoint 4 | ALTER TABLE "User" ADD CONSTRAINT "User_address_unique" UNIQUE("address"); -------------------------------------------------------------------------------- /typescript/lib/test-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src", 6 | "composite": true, 7 | "verbatimModuleSyntax": false, 8 | "noPropertyAccessFromIndexSignature": false 9 | }, 10 | "include": ["src/**/*"], 11 | "exclude": ["./dist", "node_modules"] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/scripts/require-submodule.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | submodule_dir=onchain-actions 6 | 7 | if [ ! -d "$submodule_dir/.git" ]; then 8 | echo "onchain-actions should be cloned to typescript/$submodule_dir" 9 | exit 1; 10 | fi; 11 | 12 | pushd "$submodule_dir" 13 | 14 | pnpm install --ignore-workspace --no-frozen-lockfile 15 | 16 | popd 17 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/allora-mcp-server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:20-slim 2 | 3 | WORKDIR /app 4 | 5 | # Install pnpm globally 6 | RUN npm install -g pnpm@10.7.0 7 | 8 | COPY package.json pnpm-lock.yaml* ./ 9 | RUN pnpm install --frozen-lockfile 10 | COPY src/ ./src/ 11 | COPY tsconfig.json ./ 12 | RUN pnpm run build 13 | 14 | EXPOSE 3001 15 | 16 | CMD ["node", "dist/index.js"] 17 | -------------------------------------------------------------------------------- /typescript/community/agents/allora-price-prediction-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "types": ["node"], 5 | "rootDir": "src", 6 | "outDir": "dist", 7 | "verbatimModuleSyntax": false, 8 | "moduleResolution": "NodeNext" 9 | }, 10 | "include": ["src/**/*"], 11 | "exclude": ["node_modules", "dist"] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/community/agents/defisafety-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "moduleResolution": "NodeNext", 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "lib": ["ES2022"], 8 | "verbatimModuleSyntax": false 9 | }, 10 | "include": ["src/**/*"], 11 | "exclude": ["node_modules", "dist", "**/*.test.ts"] 12 | } -------------------------------------------------------------------------------- /typescript/templates/lending-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "src", 5 | "outDir": "dist", 6 | "verbatimModuleSyntax": false, 7 | "moduleResolution": "NodeNext", 8 | "noPropertyAccessFromIndexSignature": false 9 | }, 10 | "include": ["src/**/*"], 11 | "exclude": ["node_modules", "dist"] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/scripts/copy-schemas.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # This script can be used to update the API schemas for the Ember API. It assumes that the onchain-actions repo is available 4 | # in the ember-sdk-typescript folder, located alongside the arbitrum-vibekit repo. 5 | 6 | mkdir -p ./lib/ember-api/src/schemas/ 7 | cp -r ../../ember-sdk-typescript/onchain-actions/src/types/* ./lib/ember-api/src/schemas/ -------------------------------------------------------------------------------- /typescript/lib/agent-node/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .env 4 | .env.* 5 | !.env.example 6 | *.log 7 | .git 8 | .gitignore 9 | .dockerignore 10 | Dockerfile 11 | docker-compose*.yaml 12 | coverage 13 | .nyc_output 14 | .tsbuildinfo 15 | .DS_Store 16 | .idea 17 | .vscode 18 | *.swp 19 | *.swo 20 | .eslintcache 21 | .pnpm-store 22 | pnpm-store 23 | README.md 24 | tests 25 | vitest.config.ts 26 | .vitest 27 | .turbo -------------------------------------------------------------------------------- /typescript/lib/agent-node/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist", 7 | "declaration": true, 8 | "declarationMap": true, 9 | "sourceMap": true 10 | }, 11 | "include": ["src/**/*.ts"], 12 | "exclude": ["tests", "node_modules", "dist", "**/*.test.ts", "src/cli/templates/**"] 13 | } 14 | -------------------------------------------------------------------------------- /typescript/community/agents/lending-agent-no-wallet/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src", 6 | "composite": true, 7 | "verbatimModuleSyntax": false 8 | }, 9 | "include": ["src/**/*"], 10 | "exclude": ["./dist", "node_modules"], 11 | "references": [ 12 | { "path": "../../lib/test-utils" } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/Caddyfile: -------------------------------------------------------------------------------- 1 | dev.emberai.xyz { 2 | # Automatic HTTPS with Let's Encrypt 3 | reverse_proxy app:3000 4 | 5 | # Security headers 6 | header { 7 | X-Content-Type-Options nosniff 8 | X-Frame-Options DENY 9 | X-XSS-Protection "1; mode=block" 10 | Referrer-Policy strict-origin-when-cross-origin 11 | } 12 | 13 | # Enable compression 14 | encode gzip 15 | } -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/utils/factories/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Barrel export for all test factories 3 | */ 4 | 5 | export { 6 | createUserMessage, 7 | createAgentMessage, 8 | createMultipartMessage, 9 | createTaskMessage, 10 | } from './message.factory.js'; 11 | 12 | export { 13 | createRequestContext, 14 | createSimpleRequestContext, 15 | createWorkflowExecutionStub, 16 | } from './context.factory.js'; 17 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/src/core/actions/index.ts: -------------------------------------------------------------------------------- 1 | export type { Action, ActionDefinition, TokenSet } from './types.js'; 2 | export type { LendingActions } from './lending.js'; 3 | export type { LiquidityActions } from './liquidity.js'; 4 | export type { SwapActions } from './swap.js'; 5 | export type { PerpetualsActions } from './perpetuals.js'; 6 | export type { TokenizedYieldActions } from './tokenizedYield.js'; 7 | -------------------------------------------------------------------------------- /typescript/community/agents/pendle-agent/tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": ".", 5 | "outDir": "./dist-test", 6 | "composite": true, 7 | "baseUrl": ".", 8 | "paths": { 9 | "test-utils": ["../../lib/test-utils/src"] 10 | } 11 | }, 12 | "include": ["test/**/*", "src/**/*"], 13 | "references": [{ "path": "../../lib/test-utils" }] 14 | } -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/config/loaders/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Config v2 Loaders 3 | * File loaders for agent configuration workspace 4 | */ 5 | 6 | export * from './env-resolver.js'; 7 | export * from './agent-loader.js'; 8 | export * from './manifest-loader.js'; 9 | export * from './skill-loader.js'; 10 | export * from './mcp-loader.js'; 11 | export * from './workflow-loader.js'; 12 | export * from './workflow-discovery.js'; 13 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/src/core/actions/swap.ts: -------------------------------------------------------------------------------- 1 | import type { SwapTokensRequest, SwapTokensResponse } from '../schemas/swap.js'; 2 | 3 | /** 4 | * Callback function type for the swap action. 5 | */ 6 | export type SwapActionCallback = (request: SwapTokensRequest) => Promise; 7 | 8 | /** 9 | * The possible actions related to swapping tokens. 10 | */ 11 | export type SwapActions = 'swap'; 12 | -------------------------------------------------------------------------------- /typescript/templates/langgraph-workflow-agent/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | export default defineConfig({ 4 | test: { 5 | globals: true, 6 | environment: 'node', 7 | setupFiles: ['./vitest.setup.ts'], 8 | coverage: { 9 | provider: 'v8', 10 | reporter: ['text', 'json', 'html'], 11 | exclude: ['node_modules/', 'test/', 'dist/'], 12 | }, 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /typescript/templates/quickstart-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": ".", 5 | "outDir": "dist", 6 | "verbatimModuleSyntax": false, 7 | "moduleResolution": "NodeNext", 8 | "noPropertyAccessFromIndexSignature": false 9 | }, 10 | "include": ["src/**/*", "test/**/*", "mock-mcp-servers/**/*"], 11 | "exclude": ["node_modules", "dist"] 12 | } 13 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/defisafety-implementation/src/embeddings/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Embeddings module exports 3 | */ 4 | 5 | export { DocumentChunker } from './chunker.js'; 6 | export { EmbeddingsGenerator } from './embeddings.js'; 7 | export { VectorStore } from './vectorStore.js'; 8 | export type { 9 | DocumentChunk, 10 | VectorDocument, 11 | SearchResult, 12 | ChunkingOptions, 13 | EmbeddingOptions, 14 | } from './types.js'; -------------------------------------------------------------------------------- /typescript/clients/web-legacy/app/(auth)/auth.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextAuthConfig } from 'next-auth'; 2 | 3 | export const authConfig = { 4 | pages: { 5 | signIn: '/', 6 | newUser: '/', 7 | }, 8 | providers: [ 9 | // added later in auth.ts since it requires bcrypt which is only compatible with Node.js 10 | // while this file is also used in non-Node.js environments 11 | ], 12 | callbacks: {}, 13 | } satisfies NextAuthConfig; 14 | -------------------------------------------------------------------------------- /typescript/community/agents/lending-agent-no-wallet/tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": ".", 5 | "outDir": "./dist-test", 6 | "composite": true, 7 | "baseUrl": ".", 8 | "paths": { 9 | "test-utils": ["../../lib/test-utils/src"] 10 | } 11 | }, 12 | "include": ["test/**/*", "src/**/*"], 13 | "references": [{ "path": "../../lib/test-utils" }] 14 | } 15 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:23-alpine 2 | 3 | WORKDIR /app 4 | 5 | # Install dependencies for node-gyp support for installing bufferutil 6 | RUN apk add --no-cache python3 make g++ 7 | 8 | ENV PNPM_HOME="/pnpm" 9 | ENV PATH="$PNPM_HOME:$PATH" 10 | RUN corepack enable 11 | ENV NEXT_TELEMETRY_DISABLED=1 12 | COPY package.json pnpm-lock.yaml ./ 13 | RUN pnpm i --frozen-lockfile 14 | COPY . . 15 | EXPOSE 3000 16 | ENTRYPOINT ["pnpm", "dev"] -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/agent.manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "skills": ["./skills/general-assistant.md", "./skills/ember-onchain-actions.md"], 4 | "registries": { 5 | "mcp": "./mcp.json", 6 | "workflows": "./workflow.json" 7 | }, 8 | "merge": { 9 | "card": { 10 | "capabilities": "union", 11 | "toolPolicies": "intersect", 12 | "guardrails": "tightest" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.json", 3 | "compilerOptions": { 4 | "composite": false, 5 | "tsBuildInfoFile": "./.tsbuildinfo", 6 | "outDir": "./dist", 7 | "baseUrl": ".", 8 | "paths": { 9 | "@emberai/agent-node/workflow": ["./.lint/workflow-module.d.ts"] 10 | } 11 | }, 12 | "include": ["./**/*.ts", "./.lint/**/*.ts"], 13 | "exclude": ["node_modules"] 14 | } 15 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/drizzle.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from 'dotenv'; 2 | import { defineConfig } from 'drizzle-kit'; 3 | 4 | config({ 5 | path: '.env.local', 6 | }); 7 | 8 | export default defineConfig({ 9 | schema: './lib/db/schema.ts', 10 | out: './lib/db/migrations', 11 | dialect: 'postgresql', 12 | dbCredentials: { 13 | // biome-ignore lint: Forbidden non-null assertion. 14 | url: process.env['POSTGRES_URL']!, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/tsconfig.vitest.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "noEmit": true, 6 | "rootDir": ".", 7 | "types": ["vitest/globals", "node"], 8 | "sourceMap": true 9 | }, 10 | "include": [ 11 | "src/**/*.ts", 12 | "tests/**/*.ts", 13 | "vitest.config.*.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /typescript/community/agents/liquidity-agent-no-wallet/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src", 6 | "composite": true, 7 | "verbatimModuleSyntax": false 8 | }, 9 | "include": ["src/**/*"], 10 | "exclude": ["./dist", "node_modules"], 11 | "references": [ 12 | { "path": "../../lib/test-utils" }, 13 | { "path": "../../lib/ember-api" } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/release.config.mjs: -------------------------------------------------------------------------------- 1 | import { createReleaseConfig } from '../../release/base.config.mjs'; 2 | 3 | const SHOULD_PUBLISH = process.env.RELEASE_DRY_RUN !== 'true'; 4 | 5 | export default createReleaseConfig({ 6 | tagFormat: '@emberai/agent-node@${version}', 7 | packagePlugins: [ 8 | [ 9 | '@semantic-release/npm', 10 | { 11 | npmPublish: SHOULD_PUBLISH, 12 | provenance: true, 13 | }, 14 | ], 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /typescript/templates/ember-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": ".", 5 | "outDir": "dist", 6 | "verbatimModuleSyntax": false, 7 | "moduleResolution": "NodeNext", 8 | "noPropertyAccessFromIndexSignature": false 9 | }, 10 | "include": ["src/**/*", "test/**/*"], 11 | "exclude": ["node_modules", "dist"], 12 | "references": [ 13 | { "path": "../../lib/ember-api" } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/middleware.ts: -------------------------------------------------------------------------------- 1 | import NextAuth from 'next-auth'; 2 | 3 | import { authConfig } from '@/app/(auth)/auth.config'; 4 | 5 | // Wrap the generated middleware in a constant and cast to `any` to prevent 6 | // the compiler from trying to reference private `next-auth` types. 7 | const authMiddleware: any = NextAuth(authConfig).auth; 8 | 9 | export default authMiddleware; 10 | 11 | export const config = { 12 | matcher: ['/', '/:id', '/api/:path*'], 13 | }; 14 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/centrifuge-mcp-server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "./dist", 5 | "rootDir": "./src", 6 | "moduleResolution": "NodeNext", 7 | "target": "ES2022", 8 | "module": "NodeNext", 9 | "declaration": true, 10 | "declarationMap": true, 11 | "sourceMap": true 12 | }, 13 | "include": ["src/**/*"], 14 | "exclude": ["node_modules", "dist", "**/*.test.ts"] 15 | } 16 | -------------------------------------------------------------------------------- /typescript/community/agents/liquidity-agent-no-wallet/tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": ".", 5 | "outDir": "./dist-test", 6 | "composite": true, 7 | "baseUrl": ".", 8 | "verbatimModuleSyntax": false, 9 | "paths": { 10 | "test-utils": ["../../lib/test-utils/src"] 11 | } 12 | }, 13 | "include": ["test/**/*", "src/**/*"], 14 | "references": [{ "path": "../../lib/test-utils" }] 15 | } 16 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/mcp.json: -------------------------------------------------------------------------------- 1 | { 2 | "mcpServers": { 3 | "fetch": { 4 | "type": "stdio", 5 | "command": "npx", 6 | "args": ["mcp-fetch-server"], 7 | "env": { 8 | "DEFAULT_LIMIT": "50000" 9 | } 10 | }, 11 | "ember_onchain_actions": { 12 | "type": "http", 13 | "url": "https://api.emberai.xyz/mcp", 14 | "headers": { 15 | "X-Ember-Api-Version": "current" 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /typescript/.multi-releaserc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | deps: { 3 | bump: "inherit", 4 | prefix: "", 5 | release: "inherit", 6 | }, 7 | ignorePackages: [ 8 | "clients/**", 9 | "community/**", 10 | "examples/**", 11 | "templates/**", 12 | "lib/community-mcp-tools/**", 13 | "lib/ember-api/**", 14 | "lib/mcp-tools/**", 15 | "lib/test-utils/**", 16 | ], 17 | // eslint-disable-next-line no-template-curly-in-string 18 | tagFormat: "${name}@${version}", 19 | }; 20 | -------------------------------------------------------------------------------- /typescript/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps maintain consistent coding styles across editors and IDEs 2 | # https://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | end_of_line = lf 9 | indent_style = space 10 | indent_size = 2 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false 16 | 17 | [*.{json,yaml,yml}] 18 | indent_size = 2 19 | 20 | [*.ts] 21 | indent_size = 2 22 | 23 | [Makefile] 24 | indent_style = tab 25 | -------------------------------------------------------------------------------- /typescript/templates/quickstart-agent/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | 4 | # Build output 5 | dist/ 6 | *.tsbuildinfo 7 | 8 | # Environment variables 9 | .env 10 | .env.local 11 | .env.*.local 12 | 13 | # Logs 14 | *.log 15 | npm-debug.log* 16 | yarn-debug.log* 17 | yarn-error.log* 18 | pnpm-debug.log* 19 | 20 | # IDE 21 | .idea/ 22 | .vscode/ 23 | *.swp 24 | *.swo 25 | *~ 26 | 27 | # OS 28 | .DS_Store 29 | Thumbs.db 30 | 31 | # Cache 32 | .cache/ 33 | 34 | # Testing 35 | coverage/ 36 | .nyc_output/ -------------------------------------------------------------------------------- /typescript/clients/web-legacy/app/(chat)/api/history/route.ts: -------------------------------------------------------------------------------- 1 | import { auth } from '@/app/(auth)/auth'; 2 | import { getChatsByUserId } from '@/lib/db/queries'; 3 | 4 | export async function GET() { 5 | const session = await auth(); 6 | 7 | if (!session || !session.user) { 8 | return Response.json('Unauthorized!', { status: 401 }); 9 | } 10 | 11 | // biome-ignore lint: Forbidden non-null assertion. 12 | const chats = await getChatsByUserId({ id: session.user.id! }); 13 | return Response.json(chats); 14 | } 15 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/tsconfig.eslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "./tsconfig.json", 4 | "compilerOptions": { 5 | "noEmit": true, 6 | "rootDir": ".", 7 | "moduleResolution": "NodeNext" 8 | }, 9 | "include": [ 10 | "src/**/*.ts", 11 | "tests/**/*.ts", 12 | "vitest.config.*.ts" 13 | ], 14 | "exclude": [ 15 | "dist", 16 | "coverage", 17 | "node_modules" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "tsBuildInfoFile": ".tsbuildinfo", 5 | "outDir": "dist", 6 | "composite": true, 7 | "baseUrl": ".", 8 | "verbatimModuleSyntax": false, 9 | "paths": { 10 | "@emberai/agent-node/workflow": ["src/workflow/public.ts"] 11 | } 12 | }, 13 | "include": ["src/**/*.ts", "src/**/*.d.ts", "tests/**/*.ts"], 14 | "exclude": ["node_modules", "dist", "src/cli/templates/**/*.ts"] 15 | } 16 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/tsdown.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsdown'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | format: ['cjs', 'esm'], 6 | dts: true, 7 | clean: true, 8 | outDir: 'dist', 9 | target: 'es2022', 10 | tsconfig: './tsconfig.json', 11 | skipNodeModulesBundle: true, 12 | external: [ 13 | '@aave/contract-helpers', 14 | '@aave/math-utils', 15 | '@bgd-labs/aave-address-book', 16 | 'ethers', 17 | 'zod', 18 | ], 19 | }); 20 | -------------------------------------------------------------------------------- /typescript/community/agents/defisafety-agent/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | import { fileURLToPath } from 'url'; 3 | import path from 'path'; 4 | 5 | const __filename = fileURLToPath(import.meta.url); 6 | const __dirname = path.dirname(__filename); 7 | 8 | export default defineConfig({ 9 | test: { 10 | environment: 'node', 11 | globals: true, 12 | timeout: 30000, 13 | }, 14 | resolve: { 15 | alias: { 16 | '@': path.resolve(__dirname, './src'), 17 | }, 18 | }, 19 | }); -------------------------------------------------------------------------------- /typescript/community/agents/allora-price-prediction-agent/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | 4 | # Build output 5 | dist/ 6 | *.tsbuildinfo 7 | 8 | # Environment variables 9 | .env 10 | .env.local 11 | .env.*.local 12 | 13 | # Logs 14 | *.log 15 | npm-debug.log* 16 | yarn-debug.log* 17 | yarn-error.log* 18 | pnpm-debug.log* 19 | 20 | # IDE 21 | .idea/ 22 | .vscode/ 23 | *.swp 24 | *.swo 25 | *~ 26 | 27 | # OS 28 | .DS_Store 29 | Thumbs.db 30 | 31 | # Cache 32 | .cache/ 33 | 34 | # Testing 35 | coverage/ 36 | .nyc_output/ -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/tests/example.e2e.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest'; 2 | 3 | // Given: End-to-end specs may involve long-running actions or network calls 4 | // When: The template e2e suite runs 5 | // Then: It executes serially so developers can plug in real infrastructure later 6 | 7 | describe('workflow end-to-end placeholder', () => { 8 | it('reserves a slot for future live tests', () => { 9 | expect(true).toBe(true); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/workflow/public.ts: -------------------------------------------------------------------------------- 1 | export { z } from 'zod'; 2 | 3 | export type { Artifact, Message } from '@a2a-js/sdk'; 4 | 5 | export { WorkflowRuntime } from './runtime.js'; 6 | 7 | export { 8 | WorkflowStateSchema, 9 | type PauseInfo, 10 | type ResumeResult, 11 | type ToolExecutionResult, 12 | type ToolMetadata, 13 | type WorkflowContext, 14 | type WorkflowExecution, 15 | type WorkflowPlugin, 16 | type WorkflowState, 17 | type WorkflowTool, 18 | type WorkflowReturn, 19 | } from './types.js'; 20 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "app/globals.css", 9 | "baseColor": "zinc", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils", 16 | "ui": "@/components/ui", 17 | "lib": "@/lib", 18 | "hooks": "@/hooks" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /typescript/community/agents/swapping-agent-no-wallet/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "compilerOptions": { 4 | "rootDir": "./src", 5 | "outDir": "./dist", 6 | "composite": true, 7 | "moduleResolution": "NodeNext", 8 | "types": ["node", "mocha"], 9 | "verbatimModuleSyntax": false 10 | }, 11 | "include": ["src/**/*"], 12 | "exclude": ["node_modules", "dist"], 13 | "references": [ 14 | { "path": "../../lib/ember-api" }, 15 | { "path": "../../lib/test-utils" } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/release.config.mjs: -------------------------------------------------------------------------------- 1 | import { createReleaseConfig } from "../../release/base.config.mjs"; 2 | 3 | const SHOULD_PUBLISH = process.env.RELEASE_DRY_RUN !== "true"; 4 | 5 | export default createReleaseConfig({ 6 | tagFormat: "@emberai/onchain-actions-registry@${version}", 7 | packagePlugins: [ 8 | [ 9 | "@semantic-release/npm", 10 | { 11 | npmPublish: SHOULD_PUBLISH, 12 | pkgRoot: ".npm-publish", 13 | provenance: true, 14 | }, 15 | ], 16 | ], 17 | }); 18 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/src/workflow-logger.ts: -------------------------------------------------------------------------------- 1 | export type WorkflowLogLevel = 'info' | 'warn' | 'error'; 2 | 3 | export const logWorkflowEvent = (message: string, level: WorkflowLogLevel = 'info'): void => { 4 | const prefix = `[workflow:${level}]`; 5 | if (level === 'error') { 6 | console.error(prefix, message); 7 | return; 8 | } 9 | 10 | if (level === 'warn') { 11 | console.warn(prefix, message); 12 | return; 13 | } 14 | 15 | console.info(prefix, message); 16 | }; 17 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/src/core/queries/lending.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | GetWalletLendingPositionsRequest, 3 | GetWalletLendingPositionsResponse, 4 | } from '../schemas/lending.js'; 5 | 6 | /** 7 | * Get lending positions for a wallet. 8 | */ 9 | export type LendingGetPositions = ( 10 | request: GetWalletLendingPositionsRequest 11 | ) => Promise; 12 | 13 | /** 14 | * All the queries related to lending. 15 | */ 16 | export type LendingQueries = { 17 | getPositions: LendingGetPositions; 18 | }; 19 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/ai/models.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_CHAT_MODEL: string = 'chat-model'; 2 | 3 | interface ChatModel { 4 | id: string; 5 | name: string; 6 | description: string; 7 | } 8 | 9 | export const chatModels: Array = [ 10 | { 11 | id: 'chat-model', 12 | name: 'Chat model', 13 | description: 'Primary model for all-purpose requests', 14 | }, 15 | { 16 | id: 'chat-model-medium', 17 | name: 'Medium reasoning', 18 | description: 'Uses medium level reasoning for more complex requests', 19 | }, 20 | ]; 21 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/vitest.config.int.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | const setupFiles = ['./tests/setup/vitest.setup.ts']; 4 | 5 | export default defineConfig({ 6 | test: { 7 | name: 'integration', 8 | globals: true, 9 | environment: 'node', 10 | setupFiles, 11 | include: ['tests/**/*.int.test.ts'], 12 | testTimeout: 30_000, 13 | hookTimeout: 30_000, 14 | typecheck: { 15 | tsconfig: './tsconfig.vitest.json', 16 | }, 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /typescript/community/agents/rwa-investment-agent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist", 4 | "rootDir": "./src", 5 | "module": "NodeNext", 6 | "target": "ES2022", 7 | "moduleResolution": "NodeNext", 8 | "esModuleInterop": true, 9 | "allowSyntheticDefaultImports": true, 10 | "declaration": true, 11 | "declarationMap": true, 12 | "sourceMap": true, 13 | "skipLibCheck": true 14 | }, 15 | "include": [ 16 | "src/**/*" 17 | ], 18 | "exclude": [ 19 | "node_modules", 20 | "dist", 21 | "test" 22 | ] 23 | } -------------------------------------------------------------------------------- /typescript/community/mcp-tools/allora-mcp-server/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | allora-mcp: 5 | build: . 6 | ports: 7 | - "3001:3001" 8 | environment: 9 | - PORT=3001 10 | # - ALLORA_API_KEY=your_api_key # Use .env file instead for security 11 | env_file: 12 | - .env 13 | restart: unless-stopped 14 | volumes: 15 | - ./logs:/app/logs 16 | healthcheck: 17 | test: ["CMD", "curl", "-f", "http://localhost:3001"] 18 | interval: 30s 19 | timeout: 10s 20 | retries: 3 21 | start_period: 5s -------------------------------------------------------------------------------- /typescript/clients/web/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "src/app/globals.css", 9 | "baseColor": "zinc", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "iconLibrary": "lucide", 14 | "aliases": { 15 | "components": "@/components", 16 | "utils": "@/lib/utils", 17 | "ui": "@/components/ui", 18 | "lib": "@/lib", 19 | "hooks": "@/hooks" 20 | }, 21 | "registries": {} 22 | } 23 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/tests/example.int.test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest'; 2 | 3 | // Given: Integration tests load secrets from `.env.test` via the CLI command 4 | // When: The suite boots 5 | // Then: The workflow can read provider keys without importing dotenv 6 | 7 | describe('environment wiring', () => { 8 | it('exposes provider keys from the Node --env-file flag', () => { 9 | expect(process.env['API_KEY']).toBeDefined(); 10 | expect(process.env['CUSTOM_RPC_URL']).toBeDefined(); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /typescript/templates/ember-agent/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | import dotenv from 'dotenv'; 3 | import { join } from 'path'; 4 | 5 | // Load .env file specific to this template directory 6 | dotenv.config({ path: join(__dirname, '.env') }); 7 | 8 | export default defineConfig({ 9 | test: { 10 | // Include test files with .vitest.ts extension 11 | include: ['**/*.{test,spec,vitest}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], 12 | // Pass through environment variables that we need 13 | env: { 14 | ...process.env, 15 | }, 16 | }, 17 | }); 18 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/components/sign-out-form.tsx: -------------------------------------------------------------------------------- 1 | import Form from 'next/form'; 2 | 3 | import { signOut } from '@/app/(auth)/auth'; 4 | 5 | export const SignOutForm = () => { 6 | return ( 7 |
{ 10 | 'use server'; 11 | 12 | await signOut({ 13 | redirectTo: '/', 14 | }); 15 | }} 16 | > 17 | 23 |
24 | ); 25 | }; 26 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/centrifuge-mcp-server/run-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Simple wrapper script to run the centrifuge MCP server 4 | # This ensures the correct PATH and working directory are used 5 | 6 | export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH" 7 | cd /Users/griffinsoduol/Desktop/OtherProjects/arbitrum-vibekit/typescript/lib/mcp-tools/centrifuge-mcp-server 8 | 9 | echo "🚀 Starting Centrifuge MCP Server..." 10 | echo "📁 Working directory: $(pwd)" 11 | echo "🔧 Node path: $(which node)" 12 | echo "📋 Node version: $(node --version)" 13 | 14 | /opt/homebrew/bin/node dist/index.js 15 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/vitest.config.e2e.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | const setupFiles = ['./tests/setup/vitest.setup.ts']; 4 | 5 | export default defineConfig({ 6 | test: { 7 | name: 'e2e', 8 | globals: true, 9 | environment: 'node', 10 | setupFiles, 11 | include: ['tests/**/*.e2e.test.ts'], 12 | testTimeout: 60_000, 13 | hookTimeout: 60_000, 14 | maxConcurrency: 1, 15 | minWorkers: 1, 16 | typecheck: { 17 | tsconfig: './tsconfig.vitest.json', 18 | }, 19 | }, 20 | }); 21 | -------------------------------------------------------------------------------- /typescript/community/agents/swapping-agent-no-wallet/test/setup-env.ts: -------------------------------------------------------------------------------- 1 | import dotenv from 'dotenv'; 2 | import path from 'path'; 3 | import { fileURLToPath } from 'url'; 4 | 5 | // 1) Load local .env for provider keys, QuickNode creds, etc. 6 | dotenv.config(); 7 | 8 | // 2) Merge in Anvil RPC overrides generated by start:anvil 9 | // This will not override already-set variables. 10 | const __filename = fileURLToPath(import.meta.url); 11 | const __dirname = path.dirname(__filename); 12 | const anvilEnvPath = path.resolve(__dirname, '../../onchain-actions/.env.tmp.test'); 13 | dotenv.config({ path: anvilEnvPath }); 14 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2024 Vercel, Inc. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /typescript/clients/web/src/components/tools/ShortAddress.tsx: -------------------------------------------------------------------------------- 1 | import { copyAddressToClipboard, shortenAddress } from '@/lib/utils'; 2 | import { CopyIcon } from 'lucide-react'; 3 | 4 | const ShortAddress = ({ web3Address }: { web3Address: string }) => { 5 | const shortenedAddress = shortenAddress(web3Address); 6 | 7 | const handleCopy = () => { 8 | copyAddressToClipboard(web3Address); 9 | }; 10 | 11 | return ( 12 | handleCopy()} className="flex gap-2 w-min cursor-pointer hover:opacity-80"> 13 | {shortenedAddress} 14 | 15 | ); 16 | }; 17 | 18 | export default ShortAddress; 19 | -------------------------------------------------------------------------------- /typescript/templates/quickstart-agent/src/context/types.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Context types for Hello Quickstart Agent 3 | * Demonstrates custom context with type safety 4 | */ 5 | 6 | export interface HelloContext { 7 | // Default language for greetings 8 | defaultLanguage: string; 9 | 10 | // List of supported languages loaded from MCP 11 | supportedLanguages: string[]; 12 | 13 | // Greeting prefix for all greetings 14 | greetingPrefix: string; 15 | 16 | // When the context was loaded 17 | loadedAt: Date; 18 | 19 | // Additional metadata 20 | metadata: { 21 | mcpServersConnected: number; 22 | environment: string; 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /typescript/onchain-actions-plugins/registry/src/core/schemas/enums.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod'; 2 | 3 | export const ChainTypeSchema = z.enum(['UNSPECIFIED', 'EVM', 'SOLANA', 'COSMOS']); 4 | export type ChainType = z.infer; 5 | 6 | // TransactionType 7 | export const TransactionTypes = { 8 | TRANSACTION_TYPE_UNSPECIFIED: 'TRANSACTION_TYPE_UNSPECIFIED' as const, 9 | EVM_TX: 'EVM_TX' as const, 10 | SOLANA_TX: 'SOLANA_TX' as const, 11 | } as const; 12 | 13 | export const TransactionTypeSchema = z.enum( 14 | Object.values(TransactionTypes) as [string, ...string[]] 15 | ); 16 | export type TransactionType = keyof typeof TransactionTypes; 17 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/setup/vitest.int.setup.ts: -------------------------------------------------------------------------------- 1 | // Integration test setup - WITH MSW, WITH dummy API keys 2 | // Environment variables are loaded via Node's native --env-file flag in package.json 3 | import { beforeAll } from 'vitest'; 4 | 5 | import './vitest.base.setup.js'; 6 | import './msw.setup.js'; 7 | 8 | // Set dummy AI provider API key for integration tests if not already set 9 | // This allows AIService to initialize without real API keys 10 | // MSW will intercept actual HTTP calls to OpenRouter 11 | beforeAll(() => { 12 | if (!process.env['OPENROUTER_API_KEY']) { 13 | process.env['OPENROUTER_API_KEY'] = 'test-dummy-key'; 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/allora-mcp-server/bin/allora-mcp-server.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import { existsSync } from 'node:fs'; 3 | import path from 'node:path'; 4 | import { fileURLToPath, pathToFileURL } from 'node:url'; 5 | 6 | const currentDir = path.dirname(fileURLToPath(import.meta.url)); 7 | const distEntry = path.join(currentDir, '../dist/index.js'); 8 | 9 | if (!existsSync(distEntry)) { 10 | console.error('allora-mcp-server: compiled output missing. Run `pnpm build` in @alloralabs/mcp-server before executing the CLI.'); 11 | process.exit(1); 12 | } 13 | 14 | const distModuleUrl = pathToFileURL(distEntry).href; 15 | 16 | await import(distModuleUrl); 17 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/ai/types.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Temporary type definitions for AI SDK v5 migration 3 | * 4 | * DataStreamWriter was removed in AI SDK v5. This is a compatibility shim 5 | * for code that hasn't been migrated yet. These tools are currently unused 6 | * (commented out in route.ts) but need to type-check for the build. 7 | */ 8 | 9 | export interface DataStreamWriter { 10 | writeData(data: { type: string; content: unknown }): void; 11 | } 12 | 13 | /** 14 | * CoreTool type was removed in AI SDK v5. Using a generic Record type 15 | * as a placeholder until tools are properly migrated. 16 | */ 17 | export type CoreTool = Record; 18 | -------------------------------------------------------------------------------- /typescript/community/mcp-tools/allora-mcp-server/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | npm-debug.log 4 | yarn-error.log 5 | yarn-debug.log 6 | package-lock.json 7 | 8 | # Build output 9 | dist/ 10 | build/ 11 | out/ 12 | 13 | # Environment variables 14 | .env 15 | .env.local 16 | .env.development.local 17 | .env.test.local 18 | .env.production.local 19 | 20 | # IDE files 21 | .idea/ 22 | .vscode/ 23 | *.sublime-project 24 | *.sublime-workspace 25 | 26 | # OS files 27 | .DS_Store 28 | Thumbs.db 29 | 30 | # Logs 31 | logs/ 32 | *.log 33 | npm-debug.log* 34 | yarn-debug.log* 35 | yarn-error.log* 36 | 37 | # Coverage 38 | coverage/ 39 | .nyc_output/ 40 | 41 | # Temporary files 42 | tmp/ 43 | temp/ -------------------------------------------------------------------------------- /typescript/clients/web-legacy/components/ShortAddress.tsx: -------------------------------------------------------------------------------- 1 | import { copyAddressToClipboard, shortenAddress } from '@/lib/utils'; 2 | import { CopyIcon } from 'lucide-react'; 3 | 4 | const ShortAddress = ({ web3Address }: { web3Address: string }) => { 5 | const shortenedAddress = shortenAddress(web3Address); 6 | 7 | const handleCopy = () => { 8 | copyAddressToClipboard(web3Address); 9 | }; 10 | 11 | return ( 12 | 19 | ); 20 | }; 21 | 22 | export default ShortAddress; 23 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/vitest.config.unit.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | const setupFiles = ['./tests/setup/vitest.setup.ts']; 4 | 5 | export default defineConfig({ 6 | test: { 7 | name: 'unit', 8 | globals: true, 9 | environment: 'node', 10 | setupFiles, 11 | include: ['src/**/*.unit.test.ts'], 12 | exclude: ['src/**/*.int.test.ts', 'src/**/*.e2e.test.ts'], 13 | coverage: { 14 | provider: 'v8', 15 | reportsDirectory: './coverage/unit', 16 | reporter: ['text', 'lcov'], 17 | }, 18 | typecheck: { 19 | tsconfig: './tsconfig.vitest.json', 20 | }, 21 | }, 22 | }); 23 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/hooks/use-mobile.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | const MOBILE_BREAKPOINT = 768; 4 | 5 | export function useIsMobile() { 6 | const [isMobile, setIsMobile] = React.useState( 7 | undefined, 8 | ); 9 | 10 | React.useEffect(() => { 11 | const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`); 12 | const onChange = () => { 13 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); 14 | }; 15 | mql.addEventListener('change', onChange); 16 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); 17 | return () => mql.removeEventListener('change', onChange); 18 | }, []); 19 | 20 | return !!isMobile; 21 | } 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | .pnpm/ 4 | .pnpm-store/ 5 | 6 | # Build outputs 7 | dist/ 8 | dist-test/ 9 | build/ 10 | *.tsbuildinfo 11 | .tsbuildinfo 12 | .next/ 13 | .turbo/ 14 | out/ 15 | 16 | # Environment files 17 | .env 18 | .env.local 19 | .env.*.local 20 | 21 | # IDE and editor files 22 | .vscode/ 23 | .idea/ 24 | *.swp 25 | *.swo 26 | *~ 27 | .DS_Store 28 | 29 | # Testing 30 | coverage/ 31 | .nyc_output/ 32 | *.lcov 33 | 34 | # Logs 35 | logs/ 36 | *.log 37 | npm-debug.log* 38 | pnpm-debug.log* 39 | yarn-debug.log* 40 | yarn-error.log* 41 | 42 | # OS files 43 | .DS_Store 44 | Thumbs.db 45 | 46 | # Project specific 47 | /onchain-actions/ 48 | .vibecode/ 49 | typescript/lib/agent-node/*.zip 50 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "extends": [ 4 | "plugin:import/typescript", 5 | "prettier", 6 | "plugin:tailwindcss/recommended", 7 | "next", 8 | "next/core-web-vitals" 9 | ], 10 | "plugins": ["tailwindcss"], 11 | "rules": { 12 | "tailwindcss/no-custom-classname": "off", 13 | "tailwindcss/classnames-order": "off" 14 | }, 15 | "settings": { 16 | "import/resolver": { 17 | "typescript": { 18 | "alwaysTryTypes": true, 19 | "project": ["./tsconfig.json", "../../tsconfig.base.json"] 20 | } 21 | } 22 | }, 23 | "ignorePatterns": ["**/components/ui/**", "lib/editor/diff.js", "tests/**", "lib/test-utils/**"] 24 | } 25 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/fixtures/workflows/utils/transaction.ts: -------------------------------------------------------------------------------- 1 | import type { SendUserOperationParameters } from 'viem/account-abstraction'; 2 | 3 | import type { OnchainClients } from './clients.js'; 4 | 5 | export async function executeTransaction( 6 | clients: OnchainClients, 7 | parameters: SendUserOperationParameters, 8 | ) { 9 | const { fast: fee } = await clients.pimlico.getUserOperationGasPrice(); 10 | const userOperationHash = await clients.bundler.sendUserOperation({ 11 | paymaster: clients.paymaster, 12 | ...fee, 13 | ...parameters, 14 | }); 15 | const { receipt } = await clients.bundler.waitForUserOperationReceipt({ 16 | hash: userOperationHash, 17 | }); 18 | return receipt; 19 | } 20 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/tests/reasoning.setup.ts: -------------------------------------------------------------------------------- 1 | import path from 'node:path'; 2 | import { expect, test as setup } from '@playwright/test'; 3 | import { ChatPage } from './pages/chat'; 4 | 5 | const reasoningFile = path.join( 6 | __dirname, 7 | '../playwright/.reasoning/session.json', 8 | ); 9 | 10 | setup('switch to reasoning model', async ({ page }) => { 11 | const chatPage = new ChatPage(page); 12 | await chatPage.createNewChat(); 13 | 14 | await chatPage.chooseModelFromSelector('chat-model-reasoning'); 15 | 16 | await expect(chatPage.getSelectedModel()).resolves.toEqual('Reasoning model'); 17 | 18 | await page.waitForTimeout(1000); 19 | await page.context().storageState({ path: reasoningFile }); 20 | }); 21 | -------------------------------------------------------------------------------- /typescript/community/agents/rwa-investment-agent/Dockerfile: -------------------------------------------------------------------------------- 1 | # RWA Investment Agent Dockerfile 2 | FROM node:22-alpine 3 | 4 | # Set working directory 5 | WORKDIR /app 6 | 7 | # Install pnpm 8 | RUN npm install -g pnpm 9 | 10 | # Copy package files 11 | COPY package.json pnpm-lock.yaml* ./ 12 | 13 | # Install dependencies 14 | RUN pnpm install --frozen-lockfile 15 | 16 | # Copy source code 17 | COPY . . 18 | 19 | # Build the application 20 | RUN pnpm build 21 | 22 | # Expose port 23 | EXPOSE 3008 24 | 25 | # Health check 26 | HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ 27 | CMD curl -f http://localhost:3008/.well-known/agent.json || exit 1 28 | 29 | # Start the application 30 | CMD ["pnpm", "start"] 31 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/config/schemas/workflow.schema.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod'; 2 | 3 | /** 4 | * Workflow Registry Schema 5 | * Explicit allowlist of workflow plugins 6 | */ 7 | 8 | export const WorkflowEntrySchema = z.object({ 9 | id: z.string(), 10 | from: z.string(), 11 | enabled: z.boolean().optional().default(true), 12 | config: z.record(z.string(), z.unknown()).optional(), 13 | integrity: z.string().optional(), 14 | }); 15 | 16 | export const WorkflowRegistrySchema = z.object({ 17 | workflows: z.array(WorkflowEntrySchema).optional().default([]), 18 | }); 19 | 20 | export type WorkflowEntry = z.infer; 21 | export type WorkflowRegistry = z.infer; 22 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/lib/db/migrations/0000_keen_devos.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE IF NOT EXISTS "Chat" ( 2 | "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, 3 | "createdAt" timestamp NOT NULL, 4 | "messages" json NOT NULL, 5 | "userId" uuid NOT NULL 6 | ); 7 | --> statement-breakpoint 8 | CREATE TABLE IF NOT EXISTS "User" ( 9 | "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, 10 | "email" varchar(64) NOT NULL, 11 | "password" varchar(64) 12 | ); 13 | --> statement-breakpoint 14 | DO $$ BEGIN 15 | ALTER TABLE "Chat" ADD CONSTRAINT "Chat_userId_User_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE no action ON UPDATE no action; 16 | EXCEPTION 17 | WHEN duplicate_object THEN null; 18 | END $$; 19 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/server-loader.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Server Entry Point Loader 3 | * Loads environment variables before importing the main server module 4 | */ 5 | 6 | import process from 'node:process'; 7 | 8 | // Load environment variables BEFORE any application imports 9 | // This must happen before config.ts is loaded by any module 10 | try { 11 | process.loadEnvFile('.env.local'); 12 | } catch { 13 | // .env.local is optional, ignore if not found 14 | } 15 | 16 | try { 17 | process.loadEnvFile('.env'); 18 | } catch { 19 | // .env may not exist in production (uses actual env vars) 20 | } 21 | 22 | // Now import and run the server (this will import config.ts with env vars already loaded) 23 | await import('./server.js'); 24 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/mocks/data/viem/eth_call.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "service": "viem", 4 | "endpoint": "/", 5 | "method": "POST", 6 | "recordedAt": "2025-10-19T01:00:00.000Z" 7 | }, 8 | "request": { 9 | "headers": {}, 10 | "body": { 11 | "jsonrpc": "2.0", 12 | "method": "eth_call", 13 | "params": [], 14 | "id": 1 15 | } 16 | }, 17 | "response": { 18 | "status": 200, 19 | "headers": { 20 | "date": "Sat, 19 Oct 2025 01:00:00 GMT", 21 | "content-type": "application/json" 22 | }, 23 | "rawBody": "eyJqc29ucnBjIjoiMi4wIiwiaWQiOjEsInJlc3VsdCI6IjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJ9" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/loader.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | /** 3 | * CLI Entry Point Loader 4 | * Loads environment variables before importing the main CLI module 5 | */ 6 | 7 | import process from 'node:process'; 8 | 9 | // Load environment variables BEFORE any application imports 10 | // This must happen before config.ts is loaded by any module 11 | try { 12 | process.loadEnvFile('.env.local'); 13 | } catch { 14 | // .env.local is optional, ignore if not found 15 | } 16 | 17 | try { 18 | process.loadEnvFile('.env'); 19 | } catch { 20 | // .env may not exist in production (uses actual env vars) 21 | } 22 | 23 | // Now import and run the CLI (this will import config.ts with env vars already loaded) 24 | await import('./index.js'); 25 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/.lint/workflow-module.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Type-only proxy for '@emberai/agent-node/workflow' so template files can resolve 3 | * to local sources during linting without depending on published artifacts. 4 | */ 5 | export * as z from 'zod'; 6 | export { WorkflowRuntime } from '../../../workflow/runtime.js'; 7 | export { 8 | WorkflowStateSchema, 9 | type PauseInfo, 10 | type ResumeResult, 11 | type ToolExecutionResult, 12 | type ToolMetadata, 13 | type WorkflowContext, 14 | type WorkflowExecution, 15 | type WorkflowPlugin, 16 | type WorkflowReturn, 17 | type WorkflowState, 18 | type WorkflowTool, 19 | } from '../../../workflow/types.js'; 20 | export type { Artifact, Message } from '@a2a-js/sdk'; 21 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/mocks/handlers/index.ts: -------------------------------------------------------------------------------- 1 | import { hyperbolicHandlers } from './hyperbolic.js'; 2 | import { onchainActionsHandlers } from './onchain-actions.js'; 3 | import { openaiHandlers } from './openai.js'; 4 | import { openrouterHandlers } from './openrouter.js'; 5 | import { viemHandlers } from './viem.js'; 6 | import { x402FacilitatorHandlers } from './x402-facilitator.js'; 7 | import { xaiHandlers } from './xai.js'; 8 | 9 | // Export all handlers for MSW 10 | // Add your mock handlers to this array 11 | export const handlers = [ 12 | ...openrouterHandlers, 13 | ...openaiHandlers, 14 | ...xaiHandlers, 15 | ...hyperbolicHandlers, 16 | ...viemHandlers, 17 | ...onchainActionsHandlers, 18 | ...x402FacilitatorHandlers, 19 | ]; 20 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/config/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Config v2 - Config-Driven A2A Agent Composition 3 | * 4 | * Main entry point for the agent configuration system. 5 | * Provides deterministic composition of A2A-compliant agents from: 6 | * - Independent skill fragments 7 | * - Shared MCP server registry (Claude-compatible) 8 | * - Workflow plugin registry 9 | */ 10 | 11 | // Schemas 12 | export * from './schemas/index.js'; 13 | 14 | // Loaders 15 | export * from './loaders/index.js'; 16 | 17 | // Validators 18 | export * from './validators/index.js'; 19 | 20 | // Composers 21 | export * from './composers/index.js'; 22 | 23 | // Runtime 24 | export * from './runtime/index.js'; 25 | 26 | // Orchestrator 27 | export * from './orchestrator.js'; 28 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/workflow/tasks/types.ts: -------------------------------------------------------------------------------- 1 | import type { TaskState } from '@a2a-js/sdk'; 2 | 3 | export interface WorkflowTask { 4 | id: string; 5 | contextId: string; 6 | state: TaskState; 7 | metadata?: Record; 8 | createdAt: string; 9 | startedAt?: string; 10 | completedAt?: string; 11 | failedAt?: string; 12 | canceledAt?: string; 13 | result?: unknown; 14 | error?: { 15 | message: string; 16 | code?: string; 17 | }; 18 | pauseInfo?: { 19 | inputSpec?: Record; 20 | message?: string; 21 | action?: string; 22 | }; 23 | } 24 | 25 | export interface WorkflowTaskHistoryEntry { 26 | state: TaskState; 27 | timestamp: string; 28 | details?: Record; 29 | } 30 | -------------------------------------------------------------------------------- /typescript/templates/ember-agent/test/setup.vitest.ts: -------------------------------------------------------------------------------- 1 | import { describe, it, expect } from 'vitest'; 2 | import dotenv from 'dotenv'; 3 | 4 | // Load environment variables from .env file for tests 5 | dotenv.config(); 6 | 7 | describe('Ember Agent Setup', () => { 8 | it('should have basic setup working', () => { 9 | expect(true).toBe(true); 10 | }); 11 | 12 | it('should be able to import zod', async () => { 13 | const { z } = await import('zod'); 14 | const schema = z.string(); 15 | expect(schema.parse('hello')).toBe('hello'); 16 | }); 17 | 18 | it('should be in test environment', () => { 19 | expect(process.env.NODE_ENV).toBe('test'); // Vitest sets NODE_ENV to 'test' 20 | expect(typeof process).toBe('object'); 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /typescript/templates/lending-agent/src/tools/index.ts: -------------------------------------------------------------------------------- 1 | // Export composed tools (with hooks applied) 2 | export { 3 | borrow, 4 | repay, 5 | supply, 6 | withdraw, 7 | getUserPositions, 8 | askEncyclopedia, 9 | } from './composedTools.js'; 10 | 11 | // Export the array of all tools for easy use 12 | export { composedLendingTools as lendingTools } from './composedTools.js'; 13 | 14 | // Re-export types and schemas that might be useful 15 | export type { 16 | TokenInfo, 17 | FindTokenResult, 18 | LendingPreview, 19 | LendingTransactionArtifact, 20 | } from './types.js'; 21 | export { 22 | BorrowRepaySupplyWithdrawSchema, 23 | GetWalletLendingPositionsSchema, 24 | AskEncyclopediaSchema, 25 | } from '@emberai/arbitrum-vibekit-core/ember-schemas'; 26 | -------------------------------------------------------------------------------- /typescript/clients/web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "es6"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "baseUrl": ".", 21 | "paths": { 22 | "@/*": ["./src/*"] 23 | }, 24 | "target": "ES2017" 25 | }, 26 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 27 | "exclude": ["node_modules"] 28 | } 29 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/tests/mocks/data/viem/eth_sendUserOperation.json: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "service": "viem", 4 | "endpoint": "/", 5 | "method": "POST", 6 | "recordedAt": "2025-10-19T01:00:00.000Z" 7 | }, 8 | "request": { 9 | "headers": {}, 10 | "body": { 11 | "jsonrpc": "2.0", 12 | "method": "eth_sendUserOperation", 13 | "params": [], 14 | "id": 1 15 | } 16 | }, 17 | "response": { 18 | "status": 200, 19 | "headers": { 20 | "date": "Sat, 19 Oct 2025 01:00:00 GMT", 21 | "content-type": "application/json" 22 | }, 23 | "rawBody": "eyJqc29ucnBjIjoiMi4wIiwiaWQiOjEsInJlc3VsdCI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2NzgifQ==" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/components/overview.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from 'framer-motion'; 2 | 3 | export const Overview = () => { 4 | return ( 5 | 13 |
14 |

15 | Welcome to the Vibekit Frontend 16 |

17 |

For web3 Agents

18 |
19 |
20 | ); 21 | }; 22 | -------------------------------------------------------------------------------- /.claude/hooks/subagent-stop-hook.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Log subagent stop to task.log 4 | { 5 | # Extract subagent details from stdin payload 6 | if [ ! -t 0 ]; then 7 | PAYLOAD=$(cat) 8 | SESSION_ID=$(echo "$PAYLOAD" | jq -r '.session_id // "unknown"' 2>/dev/null) 9 | 10 | echo "[$(date '+%Y-%m-%d %H:%M:%S')] SUBAGENT STOP - ${SESSION_ID:0:8}" 11 | 12 | # Clean up any temp files (in case multiple tasks are running) 13 | for TEMP_FILE in /tmp/claude-task-*.json; do 14 | if [ -f "$TEMP_FILE" ]; then 15 | rm -f "$TEMP_FILE" 16 | fi 17 | done 18 | else 19 | echo "[$(date '+%Y-%m-%d %H:%M:%S')] SUBAGENT STOP - unknown" 20 | fi 21 | } >> .vibecode/logs/task.log 2>&1 -------------------------------------------------------------------------------- /typescript/.dockerignore: -------------------------------------------------------------------------------- 1 | # Docker and container files 2 | Containerfile 3 | Dockerfile 4 | .containerignore 5 | .dockerignore 6 | 7 | # Dependencies 8 | node_modules 9 | .pnpm-store 10 | pnpm-store 11 | 12 | # Build outputs 13 | dist 14 | .next 15 | *.tsbuildinfo 16 | 17 | # Git 18 | .git 19 | .gitignore 20 | 21 | # Documentation 22 | README.md 23 | *.md 24 | 25 | # Tests 26 | tests 27 | coverage 28 | .nyc_output 29 | .vitest 30 | 31 | # IDE and editor files 32 | .DS_Store 33 | .idea 34 | .vscode 35 | *.swp 36 | *.swo 37 | .eslintcache 38 | 39 | # Environment files (but keep .npmrc) 40 | .env 41 | .env.* 42 | !.env.example 43 | !.npmrc 44 | 45 | # Logs 46 | *.log 47 | npm-debug.log* 48 | yarn-debug.log* 49 | yarn-error.log* 50 | pnpm-debug.log* 51 | 52 | # Other build tools 53 | .turbo -------------------------------------------------------------------------------- /typescript/community/agents/defisafety-agent/.env.example: -------------------------------------------------------------------------------- 1 | # DeFi Safety Agent Environment Configuration 2 | # Copy this file to .env and fill in your values 3 | 4 | # AI Provider API Keys (at least one required) 5 | OPENROUTER_API_KEY=your_openrouter_api_key_here 6 | OPENAI_API_KEY=your_openai_api_key_here 7 | 8 | # Agent Configuration 9 | AGENT_NAME=DeFi Safety Agent 10 | AGENT_VERSION=1.0.0 11 | AGENT_DESCRIPTION=AI agent for evaluating DeFi protocol safety and documentation quality 12 | 13 | # Server Configuration 14 | PORT=3010 15 | ENABLE_CORS=true 16 | 17 | # LLM Model Configuration 18 | # Available models: google/gemini-flash-1.5, openai/gpt-4o-mini, anthropic/claude-3-haiku, etc. 19 | LLM_MODEL=google/gemini-flash-1.5 20 | 21 | # Optional: Base path for API routes 22 | # BASE_PATH=/api/v1 -------------------------------------------------------------------------------- /typescript/lib/agent-node/docker-compose.prod.yaml: -------------------------------------------------------------------------------- 1 | services: 2 | app: 3 | build: 4 | context: ../.. 5 | dockerfile: lib/agent-node/Dockerfile 6 | expose: 7 | - '3000' 8 | env_file: 9 | - .env 10 | environment: 11 | - NODE_ENV=production 12 | volumes: 13 | - ./config:/app/config:ro 14 | networks: 15 | - app-network 16 | 17 | caddy: 18 | image: caddy:2-alpine 19 | ports: 20 | - '80:80' 21 | - '443:443' 22 | volumes: 23 | - ./Caddyfile:/etc/caddy/Caddyfile 24 | - caddy_data:/data 25 | - caddy_config:/config 26 | networks: 27 | - app-network 28 | depends_on: 29 | - app 30 | 31 | networks: 32 | app-network: 33 | 34 | volumes: 35 | caddy_data: 36 | caddy_config: 37 | -------------------------------------------------------------------------------- /typescript/lib/ember-api/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ember-api", 3 | "version": "1.0.0", 4 | "type": "module", 5 | "main": "dist/src/index.js", 6 | "types": "dist/src/index.d.ts", 7 | "private": true, 8 | "scripts": { 9 | "prepare": "pnpm build", 10 | "build": "tsc -b", 11 | "lint": "eslint src", 12 | "lint:fix": "eslint src --fix", 13 | "format": "prettier --write \"src/**/*.ts\"", 14 | "test:ci": "echo \"No CI tests defined for ${npm_package_name}\"" 15 | }, 16 | "devDependencies": { 17 | "@types/node": "catalog:", 18 | "prettier": "catalog:", 19 | "typescript": "catalog:" 20 | }, 21 | "dependencies": { 22 | "@modelcontextprotocol/sdk": "catalog:", 23 | "@emberai/arbitrum-vibekit-core": "catalog:", 24 | "zod": "catalog:" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /typescript/lib/agent-node/src/cli/templates/config-workspace/workflows/sample-package/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "compilerOptions": { 4 | "target": "ES2022", 5 | "module": "NodeNext", 6 | "moduleResolution": "NodeNext", 7 | "lib": ["ES2022"], 8 | "strict": true, 9 | "allowSyntheticDefaultImports": true, 10 | "esModuleInterop": false, 11 | "forceConsistentCasingInFileNames": true, 12 | "skipLibCheck": true, 13 | "noEmitOnError": true, 14 | "sourceMap": true, 15 | "outDir": "dist", 16 | "rootDir": "src", 17 | "types": ["node"], 18 | "resolveJsonModule": true, 19 | "verbatimModuleSyntax": true 20 | }, 21 | "include": ["src/**/*.ts"], 22 | "exclude": ["node_modules", "dist", "**/*.test.ts"] 23 | } 24 | -------------------------------------------------------------------------------- /typescript/clients/web-legacy/components/ui/textarea.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import { cn } from '@/lib/utils'; 4 | 5 | const Textarea = React.forwardRef< 6 | HTMLTextAreaElement, 7 | React.ComponentProps<'textarea'> 8 | >(({ className, ...props }, ref) => { 9 | return ( 10 |