Skip to content

[BUG] Missing critical tools: ton_trading_get_open_positions, ton_trading_close_position #144

@labtgbot

Description

@labtgbot

[BUG] Missing critical tools: ton_trading_get_open_positions, ton_trading_close_position

Description

The following tools, documented in the README.md, are not implemented in the current plugin version:

  • ton_trading_get_open_positions
  • ton_trading_close_position
  • ton_trading_close_all_positions

However, these tools are available and working:

  • ton_trading_get_market_data
  • ton_trading_get_portfolio_summary

This creates a critical inconsistency: the plugin can read portfolio state but cannot programmatically close positions. As a result, automation workflows (like mine) are forced to use journal_log as a workaround, which is unreliable and bypasses the plugin's intended risk controls.

Impact

  • Breaks automated position management
  • Forces manual intervention
  • Violates the "single source of truth" principle
  • Increases risk of human error

Expected

The plugin should expose the tools documented in its own README to ensure consistency and usability.

Environment

  • Plugin: ton-trading-bot
  • Version: latest (as of 2026-04-15)
  • Runtime: Teleton Agent
  • Access: workspace_write/journal_log/ton_trading_get_* are available

Suggested Fix

Add the missing tools to plugins/ton-trading-bot/tools.js with the same signature as documented. Example:

const tonTradingGetOpenPositions = {
  name: "ton_trading_get_open_positions",
  description: "Get list of open positions in simulation or real mode.",
  parameters: {
    type: "object",
    properties: {
      mode: { type: "string", enum: ["real", "simulation"], default: "simulation" }
    }
  },
  execute: async (params, sdk) => { /* implementation */ }
};

const tonTradingClosePosition = {
  name: "ton_trading_close_position",
  description: "Close a specific open position by trade_id.",
  parameters: {
    type: "object",
    required: ["trade_id", "mode"],
    properties: {
      trade_id: { type: "number" },
      mode: { type: "string", enum: ["real", "simulation"], default: "simulation" }
    }
  },
  execute: async (params, sdk) => { /* implementation */ }
};

This will restore full parity between documentation and functionality.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions