Skip to content
Merged

Next #412

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
88b1e62
chore(web-ag-ui): add docker compose for apps
0xTomDaniel Feb 2, 2026
8e2cce7
chore(web-ag-ui): add traefik auth proxy
0xTomDaniel Feb 2, 2026
d0aad07
chore(web-ag-ui): move trauth key to env
0xTomDaniel Feb 2, 2026
9a0a0a6
chore(web-ag-ui): add traefik env example
0xTomDaniel Feb 2, 2026
a39a340
feat(web): gate threads by privy wallet
0xTomDaniel Feb 2, 2026
e3c3796
fix(agent-gmx-allora): wire allora and onchain-actions clients
Feb 5, 2026
46a1ec5
fix(agent-gmx-allora): stabilize core cycle decisions and exposure ch…
Feb 5, 2026
489ab0b
fix(agent-gmx-allora): align workflow nodes and artifacts for polling…
Feb 5, 2026
9252155
fix(agent-gmx-allora): cover core and workflow with unit and integrat…
Feb 5, 2026
4770f96
fix(agent-gmx-allora): include smoke test harness
Feb 5, 2026
e5e61fd
fix(community): scaffold gmx-allora community agent package
Feb 5, 2026
b737ca6
feat(web-ag-ui): refresh gmx allora workflows and tests
Feb 5, 2026
95b71e6
test(agent-gmx-allora): add coverage targets
Feb 5, 2026
42ba675
feat(agent-gmx-allora): plan perps txs and run local onchain-actions e2e
Feb 5, 2026
15ad301
chore(web): add Vitest unit test config
0xTomDaniel Feb 5, 2026
2a0d76c
feat(web-ag-ui): refresh gmx allora workflows and tests
Feb 5, 2026
8f5f9da
fix(agent-clmm): stabilize history limit unit test
Feb 6, 2026
6bb0ca8
fix(agent-gmx-allora): accept setup input from web UI
Feb 6, 2026
dce3d6d
fix(web): align GMX metrics with other agents
Feb 6, 2026
f22758d
fix(agent-pendle): increase unit test timeout
Feb 6, 2026
0c1e349
fix(web): stabilize e2e startup
Feb 6, 2026
4841aec
fix(agent-gmx-allora): use ETH topic 2
Feb 6, 2026
c1b7b53
fix(web): prevent StrictMode cleanup from aborting agent connections
Feb 6, 2026
9e66aef
fix(web): keep e2e system stack running for manual QA
Feb 6, 2026
d178dac
fix(web): allow firing agent while setup interrupt is pending
Feb 6, 2026
92678ca
fix(agent-pendle): block on missing funding and avoid onboarding recu…
0xTomDaniel Feb 6, 2026
fa87d44
test(agent-pendle): cover fund-wallet interrupt and halt behavior
0xTomDaniel Feb 6, 2026
ecc9cc3
fix(web): handle pendle fund-wallet interrupt and auto-cycle
0xTomDaniel Feb 6, 2026
4e99e72
feat(web-ag-ui): refresh gmx allora workflows and tests
Feb 5, 2026
b4dc4e6
fix(web): prevent StrictMode cleanup from aborting agent connections
Feb 6, 2026
b5b8074
fix(web): allow firing agent while setup interrupt is pending
Feb 6, 2026
2a4b5d6
fix(agent-gmx-allora): treat Allora fetch failures as transient
Feb 6, 2026
6f73ebf
Fix reset:dev-stack killing orphaned dev processes
Feb 6, 2026
281fe21
chore(web): add qa build script and harden e2e
Feb 7, 2026
b66f9f4
test(web): add e2e coverage for agent sync
Feb 7, 2026
35ad832
chore(web): include Next dev type output
Feb 7, 2026
a7792b6
Fix reset:dev-stack killing orphaned dev processes
Feb 6, 2026
e34c54e
merge: consolidate issue-391 work
Feb 7, 2026
c6b3d40
fix: stabilize GMX market selection + web detail rendering
Feb 7, 2026
8bc3187
merge: pendle-agent-prd updates
Feb 7, 2026
c72f77c
chore(web-ag-ui): qa starts agent runtimes
Feb 7, 2026
d2ddf75
fix(web-ag-ui): ensure qa starts onchain-actions on 50051
Feb 7, 2026
6ff00be
fix(web): unblock agent detail + fire run in qa
Feb 7, 2026
18f677b
fix(agent-gmx-allora): cache allora + improve artifacts
Feb 7, 2026
5c9dabd
chore(web-ag-ui): add mnemonic helper
Feb 7, 2026
aa64e4c
fix(agent-gmx-allora): avoid unsafe tx hash fields
Feb 7, 2026
007fd25
feat(agent-gmx-allora): reduce plans + 8h inference cache
Feb 7, 2026
b380755
fix(agent-gmx-allora): stabilize QA cycles and artifacts
Feb 8, 2026
d9d0b90
chore(web-ag-ui): expand env templates for gmx agent
0xTomDaniel Feb 10, 2026
0900b0d
refactor(web-ag-ui): use ONCHAIN_ACTIONS_API_URL and optional boot
0xTomDaniel Feb 10, 2026
5692dcf
test(agent-gmx-allora): replace happy path e2e with smoke
0xTomDaniel Feb 10, 2026
5aa7c04
fix(agent-gmx-allora): align env docs/examples with delegator/delegat…
0xTomDaniel Feb 10, 2026
af9bc5b
fix(agent-gmx-allora): standardize wallet resolution for delegation a…
0xTomDaniel Feb 10, 2026
62729fa
fix(agent-gmx-allora): support delegated execution path without signi…
0xTomDaniel Feb 10, 2026
94b5da4
fix(agent-gmx-allora): make onchain-actions client calls consistent f…
0xTomDaniel Feb 10, 2026
07b1858
fix(agent-gmx-allora): stabilize smoke preflight by using RPC balance…
0xTomDaniel Feb 10, 2026
f4a3db7
fix(agent-gmx-allora): update tests to match wallet/env semantics
0xTomDaniel Feb 10, 2026
478de8d
fix(web): remove hardcoded GMX smoke wallet from UI e2e wrapper
0xTomDaniel Feb 10, 2026
5401d9d
fix(rpc): replace demo-key fallback and support ARBITRUM_ONE_RPC_URL
0xTomDaniel Feb 11, 2026
e3d8adc
fix(agent-gmx-allora): raise smoke collateral default to avoid liquid…
0xTomDaniel Feb 11, 2026
a4b4eaf
fix(agent-gmx-allora-smoke): improve position lifecycle handling
0xTomDaniel Feb 11, 2026
a3fac82
fix(agent-gmx-allora): wait for position indexing before close
0xTomDaniel Feb 11, 2026
d1bd389
fix(agent-gmx-allora): improve decision and plan test coverage
0xTomDaniel Feb 11, 2026
068cdca
fix(agent-gmx-allora): harden smoke lifecycle and parity checks
0xTomDaniel Feb 11, 2026
04d8df1
fix(agent-gmx-allora): sequence delegated transactions by receipt
0xTomDaniel Feb 11, 2026
e7fa589
fix(agent-gmx-allora): harden allora topic and inference polling cont…
0xTomDaniel Feb 11, 2026
7a619ff
feat(web-ag-ui): add mocked/live gmx allora e2e profiles
0xTomDaniel Feb 11, 2026
3a7fc5b
fix(web-ag-ui): harden gmx-allora live execution and metrics
0xTomDaniel Feb 12, 2026
88dbdf2
fix(web-ag-ui): correct gmx existing-position leverage metrics
0xTomDaniel Feb 12, 2026
287f3c3
Merge pull request #400 from EmberAGI/chore/docker-web-ag-ui
0xTomDaniel Feb 12, 2026
f488b5e
fix(agent-pendle): slim onchain-actions token mocks
0xTomDaniel Feb 12, 2026
3d34da5
fix(agent-pendle): drop unused token page fixtures
0xTomDaniel Feb 12, 2026
354bd8c
fix: merge next into pr-408 branch
0xTomDaniel Feb 12, 2026
98ce13d
fix(web-ag-ui): unify arbitrum rpc env and require privy app id
0xTomDaniel Feb 12, 2026
dc66676
Merge pull request #408 from EmberAGI/issue/402-arbitrum-vibekit-pr402
0xTomDaniel Feb 12, 2026
960bbff
fix: merge main into next to resolve pr-412 conflicts
0xTomDaniel Feb 12, 2026
743455f
Merge pull request #413 from EmberAGI/fix/resolve-pr-412-conflicts
0xTomDaniel Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,35 @@ pnpm test:ci # Optimized for CI (unit + integration)
pnpm test:ci:main # Full test suite including E2E
```

### Agent GMX Allora E2E (Starts Local onchain-actions)

`agent-gmx-allora` E2E tests now start a local `onchain-actions` dev server (plus Memgraph) automatically.

Requirements:
- Docker running (for Memgraph via `docker compose`)
- A local onchain-actions worktree at `worktrees/onchain-actions-001` (override with `ONCHAIN_ACTIONS_WORKTREE_DIR`)
- Network access (E2E hits Allora consumer API; set `ALLORA_API_KEY` if needed)

Commands:
```bash
cd typescript/clients/web-ag-ui/apps/agent-gmx-allora

# Full suite (unit + integration + e2e)
pnpm test

# E2E only (starts Memgraph + onchain-actions automatically)
pnpm test:e2e
```

Optional overrides:
```bash
# Use a different onchain-actions worktree location
ONCHAIN_ACTIONS_WORKTREE_DIR=/absolute/path/to/worktrees/onchain-actions-001 pnpm test:e2e

# Use a different compose file (rare)
ONCHAIN_ACTIONS_MEMGRAPH_COMPOSE_FILE=/absolute/path/to/compose.dev.db.yaml pnpm test:e2e
```

### Running Specific Tests

```bash
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,12 @@
import { PrivyProvider } from '@privy-io/react-auth';
import type React from 'react';

function isPlaceholderAppId(appId: string): boolean {
return appId === 'your_privy_app_id_here';
}

export function PrivyClientProvider({ children }: { children: React.ReactNode }) {
const appId = process.env.NEXT_PUBLIC_PRIVY_APP_ID;

if (!appId || isPlaceholderAppId(appId)) {
if (!appId) {
throw new Error(
'Privy is not configured: set NEXT_PUBLIC_PRIVY_APP_ID to a valid Privy App ID (build can succeed without it, but the app cannot run without it).',
'Privy is not configured. Set NEXT_PUBLIC_PRIVY_APP_ID to a valid Privy App ID and restart the dev server.',
);
}

Expand Down
75 changes: 75 additions & 0 deletions typescript/clients/web-ag-ui/TESTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Web AG-UI Agent Testing Notes

This note documents how to correctly run tests for any given agent in `clients/web-ag-ui`, based on what was tried initially, what was wrong, and where we landed.

## What I Tried Initially (Wrong)

1. I ran repo-level commands from `typescript/`:
- `pnpm lint`
- `pnpm build`

2. I also ran a general `pnpm install` in the monorepo root.

These actions triggered unrelated packages (for example `clients/web-a2a`) and caused failures unrelated to the target agent. This made the results noisy and misleading for the actual work.

Additionally, I attempted to add dependencies directly inside `apps/web`:
- `pnpm add -D prettier`

That failed with:
- `ERR_PNPM_PATCH_NOT_APPLIED` because `clients/web-ag-ui` uses `patchedDependencies` at the workspace root, and installing inside a leaf app can conflict with those patches.

## What Was Actually Correct

All test and build workflows should be scoped to **`clients/web-ag-ui` only**, and ideally filtered to the specific app (agent) being worked on.

### Correct Pattern (for any agent app)

Use `pnpm -C` to scope to `clients/web-ag-ui` and then filter to the agent package name.

Example for `agent-gmx-allora`:

```
pnpm -C typescript/clients/web-ag-ui --filter agent-gmx-allora run lint
pnpm -C typescript/clients/web-ag-ui --filter agent-gmx-allora run build
pnpm -C typescript/clients/web-ag-ui --filter agent-gmx-allora run test
```

This runs unit + integration + e2e (if defined) without touching unrelated workspaces.

### Example for `apps/web`

```
pnpm -C typescript/clients/web-ag-ui --filter web run lint
pnpm -C typescript/clients/web-ag-ui --filter web run build
pnpm -C typescript/clients/web-ag-ui --filter web run test
```

Note: `apps/web` currently has no test suites, so the test scripts are no-ops (by design).

## Practical Outcome / Final Approach

- Always scope commands to `clients/web-ag-ui`.
- Always use `--filter <package>` to target the exact app you are testing.
- Avoid running monorepo-root scripts for this workstream.
- Avoid `pnpm add` inside leaf apps unless patches are fully resolved at the workspace root.

## Recommended Quick Checklist

For any agent in `clients/web-ag-ui/apps/<agent>`:

1. Lint:
- `pnpm -C typescript/clients/web-ag-ui --filter <agent-name> run lint`

2. Build:
- `pnpm -C typescript/clients/web-ag-ui --filter <agent-name> run build`

3. Tests:
- `pnpm -C typescript/clients/web-ag-ui --filter <agent-name> run test`

4. Format (if needed):
- `pnpm -C typescript/clients/web-ag-ui --filter <agent-name> run format`

5. Format check:
- `pnpm -C typescript/clients/web-ag-ui --filter <agent-name> run format:check`

This keeps the scope tight and avoids unrelated failures.
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ CLMM_E2E_PRIVATE_KEY=replace-with-private-key
# Optional: increase live test timeout (milliseconds).
# EMBER_E2E_TIMEOUT_MS=180000
# Optional: provide a real Arbitrum RPC endpoint for live txs.
# ARBITRUM_RPC_URL=https://arb-mainnet.g.alchemy.com/v2/replace-with-key
# ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { createPublicClient, createWalletClient, http, type Account } from 'viem';
import { arbitrum } from 'viem/chains';

const DEFAULT_ARBITRUM_RPC_URL = 'https://arb1.arbitrum.io/rpc';

const ARBITRUM_RPC_URL =
// Default to a public Arbitrum One RPC so local dev works without requiring a paid RPC key.
// If you need higher reliability/throughput, set ARBITRUM_RPC_URL to an Alchemy/Infura/etc endpoint.
process.env['ARBITRUM_RPC_URL'] ?? 'https://arb1.arbitrum.io/rpc';
// Default to a public Arbitrum One RPC for local dev; set ARBITRUM_RPC_URL to override.
process.env['ARBITRUM_RPC_URL'] ?? DEFAULT_ARBITRUM_RPC_URL;

const RPC_RETRY_COUNT = 2;
const RPC_TIMEOUT_MS = 8000;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,11 @@ export async function redeemDelegationsAndExecuteTransactions(params: {
}

const rpcUrl = (params.clients.public as unknown as { transport?: { url?: unknown } }).transport?.url;
const defaultArbitrumRpcUrl = 'https://arb1.arbitrum.io/rpc';
const resolvedRpcUrl =
typeof rpcUrl === 'string'
? rpcUrl
: process.env['ARBITRUM_RPC_URL'] ?? 'https://arb-mainnet.g.alchemy.com/v2/demo-key';
: process.env['ARBITRUM_RPC_URL'] ?? defaultArbitrumRpcUrl;

const simulationClient = createClient({
account: params.clients.wallet.account,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ describe('ClmmStateAnnotation view reducer history limits', () => {
expect(view.transactionHistory).toHaveLength(STATE_HISTORY_LIMIT);
expect(view.transactionHistory[0]?.cycle).toBe(5);
expect(view.transactionHistory.at(-1)?.cycle).toBe(STATE_HISTORY_LIMIT + 4);
});
}, 20_000);

it('caps accounting history lists at the configured accounting limit', async () => {
vi.resetModules();
Expand Down
72 changes: 72 additions & 0 deletions typescript/clients/web-ag-ui/apps/agent-gmx-allora/.env.example
Original file line number Diff line number Diff line change
@@ -1,2 +1,74 @@
# GMX Allora Agent (.env.example)
#
# Copy to `.env` (gitignored) and adjust for local development.
# This app uses Node's native env loading via `tsx --env-file=...` in scripts.

# Optional: bypass delegation signing by using the agent wallet for execution
DELEGATIONS_BYPASS=false

# Agent wallet (delegatee).
# Used for delegation signing context and for tx execution when broadcasting is enabled.
# If GMX_ALLORA_AGENT_WALLET_ADDRESS is not set, it will be derived from A2A_TEST_AGENT_NODE_PRIVATE_KEY.
# GMX_ALLORA_AGENT_WALLET_ADDRESS=0x0000000000000000000000000000000000000000

# Onchain-actions base URL.
# Accepts either a base URL (e.g. https://api.emberai.xyz) or an OpenAPI spec URL
# (e.g. https://api.emberai.xyz/openapi.json); the agent normalizes to the base URL.
# ONCHAIN_ACTIONS_API_URL=https://api.emberai.xyz

# Allora API (agent is the only component that talks to Allora directly).
# ALLORA_API_BASE_URL=https://api.allora.network
# ALLORA_API_KEY=
# ALLORA_CHAIN_ID=ethereum-11155111
#
# Allora topic whitelist enforced in agent config (`src/config/constants.ts`):
# - TOPIC 1: BTC/USD - Log-Return - 8h
# - TOPIC 3: SOL/USD - Log-Return - 8h
# - TOPIC 14: BTC/USD - Price - 8h
# - TOPIC 19: NEAR/USD - Log-Return - 8h
# - TOPIC 2: ETH/USD - Log-Return - 24h
# - TOPIC 16: ETH/USD - Log-Return - 24h
# - TOPIC 2: ETH/USD - Log-Return - 8h
# - TOPIC 17: SOL/USD - Log-Return - 24h
# - TOPIC 10: SOL/USD - Price - 8h

# Allora inference cache TTLs (ms). Set to 0 to disable caching.
# ALLORA_INFERENCE_CACHE_TTL_MS=30000
# ALLORA_8H_INFERENCE_CACHE_TTL_MS=30000

# GMX agent runtime controls.
# GMX_ALLORA_MODE=debug # production (default) | debug
# GMX_ALLORA_POLL_INTERVAL_MS=1800000 # default 1800000 (30m)
# GMX_ALLORA_STREAM_LIMIT=-1 # default -1 (no limit)
# GMX_ALLORA_STATE_HISTORY_LIMIT=100 # default 100

# Transaction submission mode.
# - plan: build transaction plans via onchain-actions only (no broadcasting)
# - submit/execute: broadcast planned transactions (dev only; requires agent key)
# GMX_ALLORA_TX_SUBMISSION_MODE=plan
# A2A_TEST_AGENT_NODE_PRIVATE_KEY=0x0000000000000000000000000000000000000000000000000000000000000000

# RPC used when transaction broadcasting is enabled.
# ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc

# Smoke helpers (tests/smoke/gmx-allora-smoke.ts).
# SMOKE_WALLET=0x0000000000000000000000000000000000000000
# SMOKE_USDC_ADDRESS=0xaf88d065e77c8cC2239327C5EDb3A432268e5831
# When DELEGATIONS_BYPASS=false and GMX_ALLORA_TX_SUBMISSION_MODE=execute, smoke runs need a delegator key
# to sign delegations that the agent wallet can redeem.
# SMOKE_DELEGATOR_PRIVATE_KEY=0x0000000000000000000000000000000000000000000000000000000000000000

# LangGraph dev server configuration.
# If omitted, defaults to http://localhost:8126 and graph id "agent-gmx-allora".
# LANGGRAPH_DEPLOYMENT_URL=http://localhost:8126
# LANGGRAPH_GRAPH_ID=agent-gmx-allora

# Optional: pin a thread id for cron/runner scripts (otherwise a UUIDv7 is generated).
# STARTER_THREAD_ID=

# Optional: run the "starter cron" API runner (see src/cronApiRunner.ts).
# STARTER_CRON_INTERVAL_MS=5000
# STARTER_CRON_EXPRESSION=*/5 * * * * *

# Optional: override where the agent looks for config/service.json (expects service.json inside this dir).
# AGENT_CONFIG_DIR=/absolute/path/to/config/dir
Original file line number Diff line number Diff line change
@@ -1,2 +1,89 @@
# CI-safe defaults for integration/e2e tests.
# Copy this file to `.env.test` to override locally (file is gitignored).

# If set, tests use this URL and skip booting a local onchain-actions worktree.
# Leave unset to auto-boot a local worktree on http://localhost:50051.
ONCHAIN_ACTIONS_API_URL=http://localhost:50051

# If agent/web E2E needs to boot onchain-actions + memgraph locally, point at the worktree.
# Auto-discovery will look for a single `worktrees/onchain-actions-*` directory, but if you have
# more than one, set this explicitly.
# ONCHAIN_ACTIONS_WORKTREE_DIR=/absolute/path/to/forge/worktrees/onchain-actions-001

# Optional: override which docker compose file is used to boot memgraph in the onchain-actions worktree.
# Defaults to `${ONCHAIN_ACTIONS_WORKTREE_DIR}/compose.dev.db.yaml`.
# ONCHAIN_ACTIONS_MEMGRAPH_COMPOSE_FILE=/absolute/path/to/compose.dev.db.yaml

# Optional: onchain-actions boot overrides used by tests/setup/onchainActions.globalSetup.ts.
# These are forwarded to the onchain-actions worktree when the test global setup runs.
# (Most have CI-safe defaults in the setup script, so you typically don't need to set them.)
# COINGECKO_API_KEY=
# COINGECKO_USE_PRO=false
# SQUID_INTEGRATOR_ID=test
# DUNE_API_KEY=test
# BIRDEYE_API_KEY=
# PENDLE_CHAIN_IDS=42161
# ALGEBRA_CHAIN_IDS=42161
# GMX_CHAIN_IDS=42161
# SERVICE_WALLET_PRIVATE_KEY=0x0000000000000000000000000000000000000000000000000000000000000000
# DUST_CHAIN_ID=1
# DUST_CHAIN_RECEIVER_ADDRESS=0x0000000000000000000000000000000000000000

# Allora API (agent is the only component that talks to Allora directly).
ALLORA_API_BASE_URL=https://api.allora.network
# ALLORA_API_KEY=
# ALLORA_CHAIN_ID=ethereum-11155111
#
# Allora topic whitelist enforced in agent config (`src/config/constants.ts`):
# - TOPIC 1: BTC/USD - Log-Return - 8h
# - TOPIC 3: SOL/USD - Log-Return - 8h
# - TOPIC 14: BTC/USD - Price - 8h
# - TOPIC 19: NEAR/USD - Log-Return - 8h
# - TOPIC 2: ETH/USD - Log-Return - 24h
# - TOPIC 16: ETH/USD - Log-Return - 24h
# - TOPIC 2: ETH/USD - Log-Return - 8h
# - TOPIC 17: SOL/USD - Log-Return - 24h
# - TOPIC 10: SOL/USD - Price - 8h

# Allora inference cache TTLs (ms). Set to 0 to disable caching (useful in tests).
# ALLORA_INFERENCE_CACHE_TTL_MS=0
# ALLORA_8H_INFERENCE_CACHE_TTL_MS=0

# GMX agent runtime controls (optional).
# GMX_ALLORA_MODE=debug # default is production
# GMX_ALLORA_POLL_INTERVAL_MS=1800000
# GMX_ALLORA_STREAM_LIMIT=-1
# GMX_ALLORA_STATE_HISTORY_LIMIT=100

# Agent wallet (delegatee).
# If GMX_ALLORA_AGENT_WALLET_ADDRESS is not set, it will be derived from A2A_TEST_AGENT_NODE_PRIVATE_KEY.
# GMX_ALLORA_AGENT_WALLET_ADDRESS=0x0000000000000000000000000000000000000000

# Transaction submission mode (tests default to plan-building).
GMX_ALLORA_TX_SUBMISSION_MODE=plan
# A2A_TEST_AGENT_NODE_PRIVATE_KEY=0x0000000000000000000000000000000000000000000000000000000000000000

# RPC used when transaction broadcasting is enabled.
# ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc

# Smoke/E2E helpers.
# Used by tests/smoke/gmx-allora-smoke.ts and apps/web/tests/gmxAllora.system.e2e.test.ts.
SMOKE_WALLET=0x0000000000000000000000000000000000000001
# Optional profile for web-driven E2E:
# - mocked: enable agent-local MSW interceptors for Allora + onchain-actions.
# - live: disable interceptors and use real HTTP providers.
# E2E_PROFILE=mocked
# When DELEGATIONS_BYPASS=false and GMX_ALLORA_TX_SUBMISSION_MODE=execute, smoke runs need a delegator key
# to sign delegations that the agent wallet can redeem.
# SMOKE_DELEGATOR_PRIVATE_KEY=0x0000000000000000000000000000000000000000000000000000000000000000
# SMOKE_USDC_ADDRESS=0x0000000000000000000000000000000000000000

# LangGraph API runner config (optional; used by src/cronApiRunner.ts).
# LANGGRAPH_DEPLOYMENT_URL=http://localhost:8126
# LANGGRAPH_GRAPH_ID=agent-gmx-allora
# STARTER_THREAD_ID=
# STARTER_CRON_INTERVAL_MS=5000
# STARTER_CRON_EXPRESSION=*/5 * * * * *

# Optional: override where the agent looks for config/service.json.
# AGENT_CONFIG_DIR=/absolute/path/to/config/dir
Loading