diff --git a/ai-mcp-pmm-controller b/ai-mcp-pmm-controller index bb19a9f..4504c32 160000 --- a/ai-mcp-pmm-controller +++ b/ai-mcp-pmm-controller @@ -1 +1 @@ -Subproject commit bb19a9f59b697f36eff97bfb6a541a6838fc61ff +Subproject commit 4504c320f4809f73fa7ded53719d1402e788c1f3 diff --git a/docs/02-architecture/AI_AGENTS_57XX_DEPLOYMENT_PLAN.md b/docs/02-architecture/AI_AGENTS_57XX_DEPLOYMENT_PLAN.md index fa1fcc4..2d1f0f8 100644 --- a/docs/02-architecture/AI_AGENTS_57XX_DEPLOYMENT_PLAN.md +++ b/docs/02-architecture/AI_AGENTS_57XX_DEPLOYMENT_PLAN.md @@ -502,10 +502,10 @@ The **canonical implementation** lives in the **ai-mcp-pmm-controller** submodul 2. **Parent:** `git add .gitmodules ai-mcp-pmm-controller docs/... && git commit -m "..." && git push`. Sanity check: parent commit should show the submodule as a **gitlink** (SHA pointer), not a large file add. 3. **VM 5701:** `git clone --recurse-submodules /opt/proxmox`, then deploy from `ai-mcp-pmm-controller/` per submodule README. -### Completing liquidity fields and pool detection +### Interface discovery and liquidity fields -- **`dodo.identify_pool_interface` (future):** Feature-detect which DODO pool interface a contract uses (e.g. `getVaultReserve()` / `getBaseReserve()` / `getPMMState()`), return a `detected_profile` for the allowlist so new pools are plug-and-play. -- **To implement precisely (no trial-and-error):** Provide **one Arbitrum pool contract address** or the exact **DODO pool type/version** (e.g. DODO V2 PMM, DPP, DSP, DVM). Then: ABI entries for reserves/state, `pool_profiles.json` additions, and `server.py` changes to populate `liquidity_base`, `liquidity_quote`, `inventory_ratio`. +- **`dodo.identify_pool_interface`:** Implemented. Read-only tool; does not require the pool to be in the allowlist. Probes candidate getters (getMidPrice, getOraclePrice, getBaseReserve, _BASE_BALANCE_, getPMMState, etc.) and returns `detected_profile` (e.g. `dodo_pmm_v2_like` or `unknown`), `functions_found`, and `notes`. Use it with any pool address to choose the right ABI/profile before adding to allowlist. +- **To complete liquidity fields (no trial-and-error):** Provide **one Arbitrum pool contract address** (or DODO type/version). Then: minimal ABI for reserves/state, `pool_profiles.json` additions, and `server.py` diff for `liquidity_base`, `liquidity_quote`, `inventory_ratio`. Optional: Redis keys `cb::` and `cooldown::` for circuit breaker and cooldown state. ---