workspace.example.json
Rama main · réplica de lectura del repositorio original.
{
"_comment": [
"EXAMPLE workspace.json \u2014 copy to your FlintTrade home and edit.",
"Locations: Linux ~/.flinttrade/workspace.json | macOS ~/Library/Application Support/flinttrade/workspace.json | Windows %APPDATA%/flinttrade/workspace.json (override with FLINTTRADE_HOME).",
"This file is user configuration. Setup/Settings own native account settings; hardened app secrets live as ACL-locked files under your FlintTrade home.",
"Secrets are NEVER stored in plaintext: *_ref fields name a keyring/env entry that is resolved at runtime. Leave them empty or point them at a reference; never paste a real token.",
"FlintTrade writes this file with sorted keys on save, and creates it from defaults on first run \u2014 you usually do not need to hand-write it. The _comment keys are ignored by the config reader and safe to keep or delete.",
"British spelling in any prose you add. Never commit your real workspace.json (it is gitignored)."
],
"brokers": {
"_comment": "Native broker wiring. Connect an available adapter and use its exact broker:account_id selector. Empty selectors leave broker data and execution unconfigured. account_acls maps exact account selectors to authorised actors.",
"account_acls": {},
"cost_aware": {
"enabled": false,
"tasks": []
},
"data": {
"global_indices": "",
"historical": "",
"option_chains": "",
"quote": "",
"ticks": ""
},
"execution": {
"default": ""
},
"failover": {
"enabled": false,
"order": []
},
"rate_limits": {
"_comment": "Optional per-broker API rate-limit overrides in requests/sec. Keys are broker ids (e.g. 'dhan:main'), each mapping to { \"order\": N, \"data\": M }. Omitted brokers/keys fall back to the adapter's built-in capability defaults; 0 means unlimited. Example: \"dhan:main\": { \"order\": 8, \"data\": 4 }."
},
"registered": [],
"smart_routing": {
"_comment": "Liquidity-aware order slicing (POST /api/v1/orders/smart-route + the Smart Order widget). OFF by default; live mode only. Every child order still traverses the full gated execution path. twap_window_seconds/twap_slices tune low-urgency TWAP.",
"enabled": false,
"twap_slices": 5,
"twap_window_seconds": 300
}
},
"compliance": {
"_comment": "Single-operator safety defaults. personal_use_mode true keeps the single-operator posture. ai_disclosure_banner shows the 'AI output is not investment advice' notice. static_ip is an optional, non-secret label for your own records — leave empty.",
"ai_disclosure_banner": true,
"personal_use_mode": true,
"static_ip": ""
},
"initialized": true,
"ai": {
"autonomous_agent": {
"_comment": "The LLM-driven autonomous trading agent (AI route \u2192 Agent panel; /api/v1/ai/agent/*). OFF by default \u2014 it can place real orders in live mode. Enabling it also requires granting the 'autonomous-trader' actor access in brokers.account_acls; every agent order still traverses the full gated execution path.",
"enabled": false
}
},
"llm": {
"_comment": "Optional local or hosted LLM. provider/host/model are non-secret. api_key_ref names a keyring/env entry (e.g. 'env:ANTHROPIC_API_KEY') \u2014 never paste a real key here.",
"api_key_ref": "",
"host": "",
"model": "",
"provider": ""
},
"markets": [],
"modules": {
"_comment": "Toggle optional subsystems. terminal/dashboard/screener/backtest are on by default; ai/ditto/automation are off until you opt in.",
"ai": false,
"automation": false,
"backtest": true,
"dashboard": true,
"ditto": false,
"screener": true,
"terminal": true
},
"notifications": {
"_comment": "Telegram alerts are optional and off by default. telegram_bot_token_ref names a keyring/env entry \u2014 never paste the real bot token here. telegram_chat_id is your own chat id.",
"telegram_bot_token_ref": "",
"telegram_chat_id": "",
"telegram_enabled": false
},
"sebi": {
"_comment": "Local safety limits. max_ops_per_second throttles order operations; audit_retention_years keeps the local audit log; kill_switch_enabled arms the engine kill switch.",
"audit_retention_years": 5,
"kill_switch_enabled": true,
"max_ops_per_second": 10
},
"storage": {
"_comment": [
"Data directories. The two values below are SENTINELS, not paths \u2014 do not 'fix' them for your OS.",
"The exact strings '~/.flinttrade/data' and '~/.flinttrade/archive' are compared by string equality and mean 'the data/ and archive/ directories inside MY FlintTrade home', wherever that is: ~/.flinttrade on Linux, ~/Library/Application Support/flinttrade on macOS, %APPDATA%/flinttrade on Windows (or whatever FLINTTRADE_WORKSPACE_DIR / FLINTTRADE_HOME select).",
"So on macOS and Windows these values do NOT write to a literal ~/.flinttrade \u2014 leave them exactly as written to keep the per-OS default.",
"Any other value is taken literally: an absolute path, or a leading ~ for your home. Only change them if you genuinely keep data outside the workspace, and remember the uninstaller can only purge what it can resolve."
],
"archive": "~/.flinttrade/archive",
"fast": "~/.flinttrade/data"
},
"ui": {
"_comment": "Display preferences. theme is 'dark' or 'light'; default_exchange and timezone suit an Indian-market setup out of the box.",
"default_exchange": "NSE",
"theme": "dark",
"timezone": "Asia/Kolkata"
},
"version": "1.0.0"
}