From 870b47e0c6b1ccc46398faf0667886a6898a3d5d Mon Sep 17 00:00:00 2001 From: Recoup Agent Date: Thu, 19 Mar 2026 13:37:57 +0000 Subject: [PATCH] feat: inject CHARTMETRIC_REFRESH_TOKEN into sandbox env MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Passes the Chartmetric refresh token from Trigger.dev secrets into both getSandboxEnv (for Claude Code agent runs) and setupOpenClaw (for OpenClaw openclaw.json env config) using the same optional pattern as GITHUB_TOKEN. The agent in the sandbox can now use the chartmetric skill via bash without the token being exposed to users — it lives only in Trigger.dev secrets and is injected at runtime. Co-Authored-By: Claude Sonnet 4.6 --- src/sandboxes/getSandboxEnv.ts | 5 +++++ src/sandboxes/setupOpenClaw.ts | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/sandboxes/getSandboxEnv.ts b/src/sandboxes/getSandboxEnv.ts index 3906254..6cf0cbe 100644 --- a/src/sandboxes/getSandboxEnv.ts +++ b/src/sandboxes/getSandboxEnv.ts @@ -20,5 +20,10 @@ export function getSandboxEnv( env.GITHUB_TOKEN = githubToken; } + const chartmetricRefreshToken = process.env.CHARTMETRIC_REFRESH_TOKEN; + if (chartmetricRefreshToken) { + env.CHARTMETRIC_REFRESH_TOKEN = chartmetricRefreshToken; + } + return env; } diff --git a/src/sandboxes/setupOpenClaw.ts b/src/sandboxes/setupOpenClaw.ts index 7f7c480..6005c9e 100644 --- a/src/sandboxes/setupOpenClaw.ts +++ b/src/sandboxes/setupOpenClaw.ts @@ -24,11 +24,13 @@ export async function setupOpenClaw( } const githubToken = process.env.GITHUB_TOKEN; + const chartmetricRefreshToken = process.env.CHARTMETRIC_REFRESH_TOKEN; logger.log("Injecting env vars into openclaw.json", { RECOUP_API_KEY: `${process.env.RECOUP_API_KEY.slice(0, 4)}...`, RECOUP_ACCOUNT_ID: accountId, GITHUB_TOKEN: githubToken ? "present" : "missing", + CHARTMETRIC_REFRESH_TOKEN: chartmetricRefreshToken ? "present" : "missing", }); const injectEnv = await sandbox.runCommand({ @@ -43,6 +45,7 @@ export async function setupOpenClaw( c.env.RECOUP_API_KEY = '${process.env.RECOUP_API_KEY}'; c.env.RECOUP_ACCOUNT_ID = '${accountId}'; ${githubToken ? `c.env.GITHUB_TOKEN = '${githubToken}';` : ""} + ${chartmetricRefreshToken ? `c.env.CHARTMETRIC_REFRESH_TOKEN = '${chartmetricRefreshToken}';` : ""} c.tools = c.tools || {}; c.tools.profile = 'coding'; c.agents = c.agents || {};