From 2a3d9367776cf8549c08deb2ff3014b651d272f3 Mon Sep 17 00:00:00 2001 From: Ryan Sproule Date: Thu, 13 Nov 2025 10:58:20 -0500 Subject: [PATCH 1/5] echo cli use the env app-id --- templates/echo-cli/src/constants.ts | 43 +++++++++++++++++------------ 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/templates/echo-cli/src/constants.ts b/templates/echo-cli/src/constants.ts index ca4207529..c7c551850 100644 --- a/templates/echo-cli/src/constants.ts +++ b/templates/echo-cli/src/constants.ts @@ -1,20 +1,29 @@ -import { MODELS } from '@/config/models' +import { MODELS } from '@/config/models'; -export { ECHODEX_ASCII_ART } from '@/config/ascii' -export { MODELS, DEFAULT_MODEL } from '@/config/models' -export { MESSAGE_MODES, THINKING_MESSAGES, THINKING_INTERVAL, THINKING_COLORS } from '@/config/messages' -export { WALLET_CHAINS, WALLET_OPTIONAL_METHODS, AUTH_OPTIONS } from '@/config/wallet' +export { ECHODEX_ASCII_ART } from '@/config/ascii'; +export { + MESSAGE_MODES, + THINKING_COLORS, + THINKING_INTERVAL, + THINKING_MESSAGES, +} from '@/config/messages'; +export { DEFAULT_MODEL, MODELS } from '@/config/models'; +export { + AUTH_OPTIONS, + WALLET_CHAINS, + WALLET_OPTIONAL_METHODS, +} from '@/config/wallet'; -const ECHO_URL = 'https://echo.merit.systems' -const ECHO_API_URL = 'https://api.echo.merit.systems/v1' -const ECHO_ROUTER_URL = 'https://echo.router.merit.systems' +const ECHO_URL = 'https://echo.merit.systems'; +const ECHO_API_URL = 'https://api.echo.merit.systems/v1'; +const ECHO_ROUTER_URL = 'https://echo.router.merit.systems'; -export const AGENT_NAME = 'echodex' as const -export const AVAILABLE_MODELS = MODELS +export const AGENT_NAME = 'echodex' as const; +export const AVAILABLE_MODELS = MODELS; -export const ECHO_APP_ID = 'dbfe663c-b54d-4a64-bcc1-1cb24f4da32f' -export const WALLETCONNECT_PROJECT_ID = '592e3344e57cbc26ad91d191e82a4185' -export const ECHO_KEYS_URL = `${ECHO_URL}/app/${ECHO_APP_ID}/keys` +export const ECHO_APP_ID = process.env.ECHO_APP_ID!; +export const WALLETCONNECT_PROJECT_ID = '592e3344e57cbc26ad91d191e82a4185'; +export const ECHO_KEYS_URL = `${ECHO_URL}/app/${ECHO_APP_ID}/keys`; export const APP = { name: 'Echodex', @@ -25,12 +34,12 @@ export const APP = { echoKeysUrl: `${ECHO_URL}/app/${ECHO_APP_ID}/keys`, echoUrl: ECHO_URL, echoApiUrl: ECHO_API_URL, - echoRouterUrl: ECHO_ROUTER_URL -} as const + echoRouterUrl: ECHO_ROUTER_URL, +} as const; export const APP_METADATA = { name: APP.name, description: APP.description, url: APP.echoUrl, - icons: [`${APP.echoUrl}/favicon.ico`] -} + icons: [`${APP.echoUrl}/favicon.ico`], +}; From 2fe59ca859b4ff4e9cc86805e8a1d3c210e3ae0d Mon Sep 17 00:00:00 2001 From: Ryan Sproule Date: Thu, 13 Nov 2025 11:22:15 -0500 Subject: [PATCH 2/5] need to do some tricks to get the env app id stuff to work --- templates/echo-cli/package.json | 5 +-- templates/echo-cli/scripts/build.js | 46 ++++++++++++++++++++++++++ templates/echo-cli/src/core/profile.ts | 4 +-- 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 templates/echo-cli/scripts/build.js diff --git a/templates/echo-cli/package.json b/templates/echo-cli/package.json index 355a42dbe..3acaa4e08 100644 --- a/templates/echo-cli/package.json +++ b/templates/echo-cli/package.json @@ -9,8 +9,8 @@ }, "scripts": { "start": "tsx src/index.ts", - "dev": "tsx src/index.ts", - "build": "tsc", + "dev": "tsx --env-file=.env.local src/index.ts", + "build": "node scripts/build.js", "clean": "rm -rf dist", "typecheck": "tsc --noEmit" }, @@ -36,6 +36,7 @@ "cli-table3": "^0.6.5", "commander": "^14.0.2", "conf": "^15.0.2", + "dotenv": "^16.4.7", "ink": "^6.4.0", "keytar": "^7.9.0", "open": "^10.2.0", diff --git a/templates/echo-cli/scripts/build.js b/templates/echo-cli/scripts/build.js new file mode 100644 index 000000000..5592c9245 --- /dev/null +++ b/templates/echo-cli/scripts/build.js @@ -0,0 +1,46 @@ +import { execSync } from 'child_process'; +import { readFileSync, writeFileSync } from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname, join } from 'path'; +import dotenv from 'dotenv'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const rootDir = join(__dirname, '..'); + +// Load environment variables from .env.local +dotenv.config({ path: join(rootDir, '.env.local') }); + +const ECHO_APP_ID = process.env.ECHO_APP_ID; + +if (!ECHO_APP_ID) { + console.error('Error: ECHO_APP_ID not found in .env.local'); + process.exit(1); +} + +const constantsPath = join(rootDir, 'src', 'constants.ts'); + +// Read the original file +const originalContent = readFileSync(constantsPath, 'utf8'); + +// Replace process.env.ECHO_APP_ID with the actual value +const modifiedContent = originalContent.replace( + /export const ECHO_APP_ID = process\.env\.ECHO_APP_ID!;/, + `export const ECHO_APP_ID = '${ECHO_APP_ID}';` +); + +try { + // Write modified content + writeFileSync(constantsPath, modifiedContent, 'utf8'); + console.log('Building with ECHO_APP_ID:', ECHO_APP_ID); + + // Run TypeScript compiler + execSync('tsc', { stdio: 'inherit', cwd: rootDir }); + + console.log('Build completed successfully!'); +} finally { + // Always restore the original file + writeFileSync(constantsPath, originalContent, 'utf8'); + console.log('Restored original constants.ts'); +} + diff --git a/templates/echo-cli/src/core/profile.ts b/templates/echo-cli/src/core/profile.ts index 03af7ab45..cc193c053 100644 --- a/templates/echo-cli/src/core/profile.ts +++ b/templates/echo-cli/src/core/profile.ts @@ -46,7 +46,7 @@ async function showEchoProfile(): Promise { label('Email:', chalk.white(user.email)) label('Balance:', chalk.green(`$${balance.balance.toFixed(4)}`)) label('Total Spent:', chalk.yellow(`$${balance.totalSpent.toFixed(4)}`)) - label('Created:', chalk.white(new Date(user.createdAt).toLocaleDateString())) + label('Created:', chalk.white(new Date(user.createdAt as string).toLocaleDateString())) blankLine() } catch (err) { displayAppError(createError({ @@ -89,7 +89,7 @@ async function showLocalWalletProfile(): Promise { } try { - const balance = await getUSDCBalance(session.address, session.chainId) + const balance = await getUSDCBalance(session.address as `0x${string}`, session.chainId) blankLine() header('=== Local Wallet Profile ===') From d58b094f985c4639a2753fad54045cd31e86eeb8 Mon Sep 17 00:00:00 2001 From: Ryan Sproule Date: Thu, 13 Nov 2025 11:23:52 -0500 Subject: [PATCH 3/5] fmt --- templates/echo-cli/scripts/build.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/templates/echo-cli/scripts/build.js b/templates/echo-cli/scripts/build.js index 5592c9245..ec4dfefde 100644 --- a/templates/echo-cli/scripts/build.js +++ b/templates/echo-cli/scripts/build.js @@ -1,8 +1,8 @@ import { execSync } from 'child_process'; +import dotenv from 'dotenv'; import { readFileSync, writeFileSync } from 'fs'; -import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; -import dotenv from 'dotenv'; +import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); @@ -43,4 +43,3 @@ try { writeFileSync(constantsPath, originalContent, 'utf8'); console.log('Restored original constants.ts'); } - From a02200b530a620d5b4bf2e0cacc27d6d3c294039 Mon Sep 17 00:00:00 2001 From: Ben Reilly Date: Thu, 13 Nov 2025 11:43:09 -0500 Subject: [PATCH 4/5] disable cdp error reporting --- packages/app/server/src/env.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/app/server/src/env.ts b/packages/app/server/src/env.ts index fe01bab03..efc002995 100644 --- a/packages/app/server/src/env.ts +++ b/packages/app/server/src/env.ts @@ -25,6 +25,7 @@ export const env = createEnv({ CDP_API_KEY_ID: z.string().optional(), CDP_API_KEY_SECRET: z.string().optional(), CDP_WALLET_SECRET: z.string().optional(), + DISABLE_CDP_ERROR_REPORTING: z.boolean().default(true), // Facilitator URLs PROXY_FACILITATOR_URL: z.string().url().optional(), From 6ebd3e295bd5d60d93cc7a52ea38d863c5f405f3 Mon Sep 17 00:00:00 2001 From: Ben Reilly Date: Thu, 13 Nov 2025 11:57:16 -0500 Subject: [PATCH 5/5] coerce --- packages/app/server/src/env.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/server/src/env.ts b/packages/app/server/src/env.ts index efc002995..cc993ae07 100644 --- a/packages/app/server/src/env.ts +++ b/packages/app/server/src/env.ts @@ -25,7 +25,7 @@ export const env = createEnv({ CDP_API_KEY_ID: z.string().optional(), CDP_API_KEY_SECRET: z.string().optional(), CDP_WALLET_SECRET: z.string().optional(), - DISABLE_CDP_ERROR_REPORTING: z.boolean().default(true), + DISABLE_CDP_ERROR_REPORTING: z.coerce.boolean().default(true), // Facilitator URLs PROXY_FACILITATOR_URL: z.string().url().optional(),