tradingcodex 0.2.5__tar.gz → 0.2.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/PKG-INFO +23 -17
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/README.md +22 -16
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/components.md +1 -1
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/core-concepts-and-rules.md +3 -3
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/deployment.md +14 -10
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/generated-workspaces.md +25 -12
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/guardrails.md +1 -1
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/interfaces-and-surfaces.md +11 -10
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/product-direction.md +3 -3
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/roles-skills-and-workflows.md +33 -10
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/safety-policy-and-execution.md +43 -43
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/system-architecture.md +6 -5
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/validation-and-test-plan.md +25 -42
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/pyproject.toml +1 -1
- tradingcodex-0.2.6/tests/test_broker_center_prd.py +790 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tests/test_e2e_user_scenarios.py +89 -2
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tests/test_python_migration.py +189 -148
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex.egg-info/PKG-INFO +23 -17
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex.egg-info/SOURCES.txt +0 -13
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/__main__.py +1 -1
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/connectors.py +41 -8
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/doctor.py +5 -6
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/mcp.py +5 -2
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/utils.py +4 -17
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/startup_status.py +1 -1
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/agents.py +220 -79
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/brokers.py +585 -816
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/components.py +7 -4
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/harness.py +29 -47
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/markdown_preview.py +19 -42
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/orders.py +184 -35
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/policy.py +12 -8
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/mcp_runtime.py +120 -84
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/settings.py +0 -1
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/static/tradingcodex_web/app.css +1729 -4
- tradingcodex-0.2.6/tradingcodex_service/static/tradingcodex_web/app.js +186 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/base.html +6 -29
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/brokers.html +21 -4
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/fragments/topology_canvas.html +7 -17
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/fragments/workspace_card.html +2 -2
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/mcp_router.html +17 -19
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/urls.py +1 -2
- tradingcodex-0.2.6/tradingcodex_service/version.py +1 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/web.py +22 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.codex/config.toml +7 -1
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +18 -3
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/AGENTS.md +4 -3
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/execution-operator.toml +3 -3
- tradingcodex-0.2.6/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +34 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +2 -2
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/SKILL.md +7 -7
- tradingcodex-0.2.5/apps/integrations/services.py +0 -31
- tradingcodex-0.2.5/apps/research/admin.py +0 -1
- tradingcodex-0.2.5/apps/research/apps.py +0 -8
- tradingcodex-0.2.5/apps/research/models.py +0 -1
- tradingcodex-0.2.5/apps/workflows/migrations/__init__.py +0 -0
- tradingcodex-0.2.5/tests/test_broker_center_prd.py +0 -587
- tradingcodex-0.2.5/tradingcodex_service/mcp_http.py +0 -60
- tradingcodex-0.2.5/tradingcodex_service/static/tradingcodex_web/app.js +0 -74
- tradingcodex-0.2.5/tradingcodex_service/static/tradingcodex_web/workbench.css +0 -1726
- tradingcodex-0.2.5/tradingcodex_service/static/vendor/alpine/alpine.min.js +0 -5
- tradingcodex-0.2.5/tradingcodex_service/version.py +0 -1
- tradingcodex-0.2.5/workspace_templates/__init__.py +0 -1
- tradingcodex-0.2.5/workspace_templates/modules/paper-trading/files/.tradingcodex/mcp/adapters/paper-trading.py +0 -4
- tradingcodex-0.2.5/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -31
- tradingcodex-0.2.5/workspace_templates/modules/stub-execution/files/.tradingcodex/mcp/adapters/stub-execution.py +0 -4
- tradingcodex-0.2.5/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/adapters/live-adapter.contract.md +0 -25
- tradingcodex-0.2.5/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/smoke-call.py +0 -18
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/CONTRIBUTING.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/LICENSE +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/MANIFEST.in +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/NOTICE +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/TRADEMARKS.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/audit/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/audit/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/audit/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/audit/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/audit/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/audit/models.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/harness/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/harness/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/harness/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/harness/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/harness/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/harness/models.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/harness/templatetags/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/integrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/integrations/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/integrations/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/integrations/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/integrations/migrations/0002_brokerconnection_brokeraccount_instrumentmap.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/integrations/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/integrations/models.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/mcp/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/mcp/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/mcp/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/mcp/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/mcp/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/mcp/models.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/mcp/services.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/migrations/0002_approvalreceipt_approved_order_type_and_more.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/migrations/0003_migrate_orderintent_to_orderticket.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/migrations/0004_remove_order_intent_compat_fields.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/models.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/orders/services.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/policy/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/policy/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/policy/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/policy/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/policy/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/policy/models.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/policy/services.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/portfolio/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/portfolio/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/portfolio/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/portfolio/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/portfolio/migrations/0002_brokersyncrun_portfolioledgerevent_reconciliationrun.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/portfolio/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/portfolio/models.py +0 -0
- {tradingcodex-0.2.5/apps/research → tradingcodex-0.2.6/apps/workflows}/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/workflows/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/workflows/apps.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/workflows/migrations/0001_initial.py +0 -0
- {tradingcodex-0.2.5/apps/research → tradingcodex-0.2.6/apps/workflows}/migrations/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/apps/workflows/models.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/assets/tradingcodex-banner.svg +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/README.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/financial-workflow-references.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/harness.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/improvement-loop.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/licensing-and-commercialization.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/docs/research-memory-and-artifacts.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/install.sh +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/installation.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/setup.cfg +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex.egg-info/dependency_links.txt +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex.egg-info/entry_points.txt +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex.egg-info/requires.txt +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex.egg-info/top_level.txt +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/bootstrap.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/db.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/mode.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/orders.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/policy.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/profile.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/research.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/skills.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/strategies.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/subagents.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/commands/workspaces.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/generator.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/mcp_stdio.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_cli/service_autostart.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/admin.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/api.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/artifact_quality.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/audit.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/common.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/context_budget.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/portfolio.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/research.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/runtime.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/application/runtime_mode.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/asgi.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/static/vendor/htmx/htmx.min.js +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/activity.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/agent_skills.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/agents.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/dashboard.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/fragments/role_inspector.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/fragments/starter_prompt.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/harness.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/orders.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/policy.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/portfolio.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/research.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/starter_prompt.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/templates/web/strategies.html +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/tradingcodex_service/wsgi.py +0 -0
- {tradingcodex-0.2.5/apps/workflows → tradingcodex-0.2.6/workspace_templates}/__init__.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/audit/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.tradingcodex/capabilities.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/policy-bindings.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/principals.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/roles.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/files/tcx +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/codex-base/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/access-policies.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/head-manager.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/subagent-registry.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/fixed-subagents/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/.tradingcodex/policies/information-barriers.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/approvals/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/orders/approved/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/orders/draft/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/orders/executed/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/orders/rejected/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/information-barriers/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/paper-trading/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/postmortem/files/.tradingcodex/workflows/postmortem.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/postmortem/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/SKILL.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/agents/openai.yaml +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/repo-skills/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/stub-execution/module.json +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
- {tradingcodex-0.2.5 → tradingcodex-0.2.6}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tradingcodex
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.6
|
|
4
4
|
Summary: Codex-native trading harness with a Django service plane and approved action boundary.
|
|
5
5
|
Author: TradingCodex Authors
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -59,8 +59,8 @@ Dynamic: license-file
|
|
|
59
59
|
|
|
60
60
|
TradingCodex is a local-first Python/Django trading harness for rigorous
|
|
61
61
|
Codex-assisted research, portfolio review, order-ticket checks, approvals, and
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
service-gated execution checks. Codex coordinates the work, Django owns the
|
|
63
|
+
durable service plane, and TradingCodex owns the executable boundary.
|
|
64
64
|
|
|
65
65
|
[Quick Start](#installation) | [Docs](docs/README.md) | [Safety](docs/safety-policy-and-execution.md) | [Architecture](docs/system-architecture.md) | [Contributing](CONTRIBUTING.md) | [License](LICENSE)
|
|
66
66
|
|
|
@@ -78,7 +78,8 @@ policy and approval services, a central local ledger, and a local web dashboard
|
|
|
78
78
|
for review.
|
|
79
79
|
|
|
80
80
|
It is not an autonomous trading bot. Natural-language answers do not become
|
|
81
|
-
broker actions.
|
|
81
|
+
broker actions. The core ships paper execution by default; live broker support
|
|
82
|
+
comes only from installed, reviewed providers and explicit live gates.
|
|
82
83
|
|
|
83
84
|
---
|
|
84
85
|
|
|
@@ -92,7 +93,7 @@ broker actions. Live broker adapters are not shipped in the initial core.
|
|
|
92
93
|
| Fixed-role workflows | Specialist agents own bounded questions across fundamentals, technicals, news, macro, instruments, valuation, portfolio, risk, and execution. |
|
|
93
94
|
| Approved action boundary | Actions are typed, role-scoped, policy-checked, approval-aware, duplicate-request checked, connection-gated, and audited. |
|
|
94
95
|
| Local web dashboard | Review agents, skills, strategy skills, research markdown, Broker Center, Data Sources, order tickets, portfolio state, and activity at `127.0.0.1:48267`. |
|
|
95
|
-
| Broker Center foundations |
|
|
96
|
+
| Broker Center foundations | Connect provider-driven broker profiles, list installed providers, scaffold/register advanced connectors, inspect capability profiles, run account sync, review instrument constraints, and reconcile portfolio state. |
|
|
96
97
|
| OrderTicket lifecycle | Draft, check, approve, submit, cancel, refresh, and inspect order tickets through central DB records and service-layer state transitions. |
|
|
97
98
|
| Data Sources gate | Import external source discovery metadata, review available actions, scope role access, and block unsafe raw execution or secret paths by default. |
|
|
98
99
|
| Improvement loop | Quality gates, postmortems, optional skills, strategy skills, strict artifact checks, and generated workspace smoke tests turn process gaps into durable improvements. |
|
|
@@ -169,8 +170,13 @@ boundaries rather than on black-box automation.
|
|
|
169
170
|
- Deterministic executable boundary: every executable path follows
|
|
170
171
|
a fixed requester, permission, policy, payload, approval, duplicate-request,
|
|
171
172
|
connection, and audit sequence.
|
|
172
|
-
- Safety-first broker posture: live broker execution
|
|
173
|
-
|
|
173
|
+
- Safety-first broker posture: paper is built in; live broker execution requires
|
|
174
|
+
an installed provider plus workspace config, policy, environment opt-in,
|
|
175
|
+
approval, confirmation, idempotency, sync, and audit gates.
|
|
176
|
+
- Broker control plane: TradingCodex stores connector state, capability
|
|
177
|
+
profiles, mapping review, approval, execution, reconciliation, and audit;
|
|
178
|
+
provider adapters absorb broker-specific REST, SDK, MCP, or manual interface
|
|
179
|
+
differences behind canonical service/MCP tools.
|
|
174
180
|
|
|
175
181
|
---
|
|
176
182
|
|
|
@@ -180,7 +186,7 @@ TradingCodex is designed around handoffs:
|
|
|
180
186
|
|
|
181
187
|
```text
|
|
182
188
|
evidence -> analysis -> valuation -> portfolio fit -> risk review
|
|
183
|
-
-> draft order -> approval receipt -> approved
|
|
189
|
+
-> draft order -> approval receipt -> approved service-gated submission
|
|
184
190
|
-> connection result -> audit/postmortem
|
|
185
191
|
```
|
|
186
192
|
|
|
@@ -204,7 +210,7 @@ workflow has earned. Weak, stale, missing, or out-of-scope upstream work returns
|
|
|
204
210
|
| Decision review | `valuation-analyst` | Valuation ranges, scenario assumptions, multiples, sensitivity, and decision-quality gaps. |
|
|
205
211
|
| Portfolio | `portfolio-manager` | Portfolio fit, sizing, concentration, liquidity, opportunity cost, and draft order-ticket readiness. |
|
|
206
212
|
| Risk | `risk-manager` | Downside, restricted-list checks, policy readiness, approval readiness, and approval receipts. |
|
|
207
|
-
| Execution | `execution-operator` | Approved
|
|
213
|
+
| Execution | `execution-operator` | Approved submission/cancel/status through the TradingCodex service boundary only; live requires all gates. |
|
|
208
214
|
|
|
209
215
|
---
|
|
210
216
|
|
|
@@ -218,9 +224,9 @@ workflow has earned. Weak, stale, missing, or out-of-scope upstream work returns
|
|
|
218
224
|
| MCP | Agent/tool boundary with typed tools, role scopes, policy checks, approval checks, and audit. |
|
|
219
225
|
| CLI | Local operator commands plus generated workspace `./tcx` wrapper behavior. |
|
|
220
226
|
|
|
221
|
-
The baseline frontend uses Django templates, local static HTMX, and
|
|
222
|
-
|
|
223
|
-
|
|
227
|
+
The baseline frontend uses Django templates, local static HTMX, and small plain
|
|
228
|
+
JavaScript. There is no Node, bundler, React, or frontend build step in the core
|
|
229
|
+
package.
|
|
224
230
|
|
|
225
231
|
---
|
|
226
232
|
|
|
@@ -236,8 +242,8 @@ TradingCodex blocks or constrains:
|
|
|
236
242
|
- duplicate approved-order submissions
|
|
237
243
|
- raw secrets in workspace files, prompts, API responses, MCP responses, audit
|
|
238
244
|
payloads, generated docs, or shell output
|
|
239
|
-
- unsupported live execution
|
|
240
|
-
|
|
245
|
+
- unsupported live execution through any provider, instrument, account, or
|
|
246
|
+
policy posture that has not passed the explicit live gate
|
|
241
247
|
|
|
242
248
|
TradingCodex is research, workflow, and execution-guardrail tooling. It is not
|
|
243
249
|
financial, investment, legal, tax, or regulatory advice, and it does not
|
|
@@ -250,9 +256,9 @@ provide investment recommendations or guarantee returns.
|
|
|
250
256
|
| Status | Milestone |
|
|
251
257
|
| --- | --- |
|
|
252
258
|
| Shipped | Generated Codex workspace, fixed role roster, project MCP config, Django service plane, local web dashboard, Admin, Ninja API, file-native research memory, component registry, policy/audit primitives. |
|
|
253
|
-
| Current `0.2.x` | Central-DB `OrderTicket` rewrite, Broker Center foundations, Data Sources gate, role-scoped actions,
|
|
254
|
-
| Next | Deeper validation scenarios, richer
|
|
255
|
-
| Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and live
|
|
259
|
+
| Current `0.2.x` | Central-DB `OrderTicket` rewrite, provider-driven Broker Center foundations, Data Sources gate, role-scoped actions, live-gated execution lifecycle, and Python `>=3.11,<3.15` support. |
|
|
260
|
+
| Next | Deeper validation scenarios, richer provider capability profiles, stronger generated-workspace smoke coverage, and improved artifact quality tooling. |
|
|
261
|
+
| Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and broker-specific live providers only after explicit product, policy, adapter, and validation work. |
|
|
256
262
|
|
|
257
263
|
---
|
|
258
264
|
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
|
|
29
29
|
TradingCodex is a local-first Python/Django trading harness for rigorous
|
|
30
30
|
Codex-assisted research, portfolio review, order-ticket checks, approvals, and
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
service-gated execution checks. Codex coordinates the work, Django owns the
|
|
32
|
+
durable service plane, and TradingCodex owns the executable boundary.
|
|
33
33
|
|
|
34
34
|
[Quick Start](#installation) | [Docs](docs/README.md) | [Safety](docs/safety-policy-and-execution.md) | [Architecture](docs/system-architecture.md) | [Contributing](CONTRIBUTING.md) | [License](LICENSE)
|
|
35
35
|
|
|
@@ -47,7 +47,8 @@ policy and approval services, a central local ledger, and a local web dashboard
|
|
|
47
47
|
for review.
|
|
48
48
|
|
|
49
49
|
It is not an autonomous trading bot. Natural-language answers do not become
|
|
50
|
-
broker actions.
|
|
50
|
+
broker actions. The core ships paper execution by default; live broker support
|
|
51
|
+
comes only from installed, reviewed providers and explicit live gates.
|
|
51
52
|
|
|
52
53
|
---
|
|
53
54
|
|
|
@@ -61,7 +62,7 @@ broker actions. Live broker adapters are not shipped in the initial core.
|
|
|
61
62
|
| Fixed-role workflows | Specialist agents own bounded questions across fundamentals, technicals, news, macro, instruments, valuation, portfolio, risk, and execution. |
|
|
62
63
|
| Approved action boundary | Actions are typed, role-scoped, policy-checked, approval-aware, duplicate-request checked, connection-gated, and audited. |
|
|
63
64
|
| Local web dashboard | Review agents, skills, strategy skills, research markdown, Broker Center, Data Sources, order tickets, portfolio state, and activity at `127.0.0.1:48267`. |
|
|
64
|
-
| Broker Center foundations |
|
|
65
|
+
| Broker Center foundations | Connect provider-driven broker profiles, list installed providers, scaffold/register advanced connectors, inspect capability profiles, run account sync, review instrument constraints, and reconcile portfolio state. |
|
|
65
66
|
| OrderTicket lifecycle | Draft, check, approve, submit, cancel, refresh, and inspect order tickets through central DB records and service-layer state transitions. |
|
|
66
67
|
| Data Sources gate | Import external source discovery metadata, review available actions, scope role access, and block unsafe raw execution or secret paths by default. |
|
|
67
68
|
| Improvement loop | Quality gates, postmortems, optional skills, strategy skills, strict artifact checks, and generated workspace smoke tests turn process gaps into durable improvements. |
|
|
@@ -138,8 +139,13 @@ boundaries rather than on black-box automation.
|
|
|
138
139
|
- Deterministic executable boundary: every executable path follows
|
|
139
140
|
a fixed requester, permission, policy, payload, approval, duplicate-request,
|
|
140
141
|
connection, and audit sequence.
|
|
141
|
-
- Safety-first broker posture: live broker execution
|
|
142
|
-
|
|
142
|
+
- Safety-first broker posture: paper is built in; live broker execution requires
|
|
143
|
+
an installed provider plus workspace config, policy, environment opt-in,
|
|
144
|
+
approval, confirmation, idempotency, sync, and audit gates.
|
|
145
|
+
- Broker control plane: TradingCodex stores connector state, capability
|
|
146
|
+
profiles, mapping review, approval, execution, reconciliation, and audit;
|
|
147
|
+
provider adapters absorb broker-specific REST, SDK, MCP, or manual interface
|
|
148
|
+
differences behind canonical service/MCP tools.
|
|
143
149
|
|
|
144
150
|
---
|
|
145
151
|
|
|
@@ -149,7 +155,7 @@ TradingCodex is designed around handoffs:
|
|
|
149
155
|
|
|
150
156
|
```text
|
|
151
157
|
evidence -> analysis -> valuation -> portfolio fit -> risk review
|
|
152
|
-
-> draft order -> approval receipt -> approved
|
|
158
|
+
-> draft order -> approval receipt -> approved service-gated submission
|
|
153
159
|
-> connection result -> audit/postmortem
|
|
154
160
|
```
|
|
155
161
|
|
|
@@ -173,7 +179,7 @@ workflow has earned. Weak, stale, missing, or out-of-scope upstream work returns
|
|
|
173
179
|
| Decision review | `valuation-analyst` | Valuation ranges, scenario assumptions, multiples, sensitivity, and decision-quality gaps. |
|
|
174
180
|
| Portfolio | `portfolio-manager` | Portfolio fit, sizing, concentration, liquidity, opportunity cost, and draft order-ticket readiness. |
|
|
175
181
|
| Risk | `risk-manager` | Downside, restricted-list checks, policy readiness, approval readiness, and approval receipts. |
|
|
176
|
-
| Execution | `execution-operator` | Approved
|
|
182
|
+
| Execution | `execution-operator` | Approved submission/cancel/status through the TradingCodex service boundary only; live requires all gates. |
|
|
177
183
|
|
|
178
184
|
---
|
|
179
185
|
|
|
@@ -187,9 +193,9 @@ workflow has earned. Weak, stale, missing, or out-of-scope upstream work returns
|
|
|
187
193
|
| MCP | Agent/tool boundary with typed tools, role scopes, policy checks, approval checks, and audit. |
|
|
188
194
|
| CLI | Local operator commands plus generated workspace `./tcx` wrapper behavior. |
|
|
189
195
|
|
|
190
|
-
The baseline frontend uses Django templates, local static HTMX, and
|
|
191
|
-
|
|
192
|
-
|
|
196
|
+
The baseline frontend uses Django templates, local static HTMX, and small plain
|
|
197
|
+
JavaScript. There is no Node, bundler, React, or frontend build step in the core
|
|
198
|
+
package.
|
|
193
199
|
|
|
194
200
|
---
|
|
195
201
|
|
|
@@ -205,8 +211,8 @@ TradingCodex blocks or constrains:
|
|
|
205
211
|
- duplicate approved-order submissions
|
|
206
212
|
- raw secrets in workspace files, prompts, API responses, MCP responses, audit
|
|
207
213
|
payloads, generated docs, or shell output
|
|
208
|
-
- unsupported live execution
|
|
209
|
-
|
|
214
|
+
- unsupported live execution through any provider, instrument, account, or
|
|
215
|
+
policy posture that has not passed the explicit live gate
|
|
210
216
|
|
|
211
217
|
TradingCodex is research, workflow, and execution-guardrail tooling. It is not
|
|
212
218
|
financial, investment, legal, tax, or regulatory advice, and it does not
|
|
@@ -219,9 +225,9 @@ provide investment recommendations or guarantee returns.
|
|
|
219
225
|
| Status | Milestone |
|
|
220
226
|
| --- | --- |
|
|
221
227
|
| Shipped | Generated Codex workspace, fixed role roster, project MCP config, Django service plane, local web dashboard, Admin, Ninja API, file-native research memory, component registry, policy/audit primitives. |
|
|
222
|
-
| Current `0.2.x` | Central-DB `OrderTicket` rewrite, Broker Center foundations, Data Sources gate, role-scoped actions,
|
|
223
|
-
| Next | Deeper validation scenarios, richer
|
|
224
|
-
| Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and live
|
|
228
|
+
| Current `0.2.x` | Central-DB `OrderTicket` rewrite, provider-driven Broker Center foundations, Data Sources gate, role-scoped actions, live-gated execution lifecycle, and Python `>=3.11,<3.15` support. |
|
|
229
|
+
| Next | Deeper validation scenarios, richer provider capability profiles, stronger generated-workspace smoke coverage, and improved artifact quality tooling. |
|
|
230
|
+
| Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and broker-specific live providers only after explicit product, policy, adapter, and validation work. |
|
|
225
231
|
|
|
226
232
|
---
|
|
227
233
|
|
|
@@ -44,7 +44,7 @@ paths clear.
|
|
|
44
44
|
| `responsibility-boundary-contract` | Separates durable role identity, tool permissions, skill procedures, artifact contracts, and projection ownership so changes stay local. | `guardrail.guidance`, `guardrail.information_barrier`, `improvement.workflow_quality`, `improvement.skill_evolution` |
|
|
45
45
|
| `external-data-source-gate` | Keeps external evidence read-only and source-aware. | `guardrail.guidance`, `improvement.workflow_quality` |
|
|
46
46
|
| `external-mcp-proxy-gate` | Registers external MCP connections, imports metadata, classifies risk, manages lifecycle/review state, and blocks unsafe direct connection paths. | `guardrail.enforcement`, `guardrail.information_barrier` |
|
|
47
|
-
| `broker-center` |
|
|
47
|
+
| `broker-center` | Acts as the local broker control plane for connector state, capability profiles, source drift, read-only account discovery, sync runs, mapping review, reconciliation, and service-gated execution. | `guardrail.enforcement`, `improvement.workflow_quality` |
|
|
48
48
|
| `secret-wall` | Blocks raw broker secrets from workspace files, prompts, shell paths, and role context. | `guardrail.enforcement`, `guardrail.information_barrier` |
|
|
49
49
|
| `policy-and-restricted-list` | Evaluates principals, capabilities, explicit deny rules, restricted symbols, and limits. | `guardrail.enforcement` |
|
|
50
50
|
| `approval-gate` | Validates order tickets, JSON order inputs, and approval receipts before execution-sensitive action. | `guardrail.enforcement` |
|
|
@@ -59,7 +59,7 @@ Use [harness.md](./harness.md) for the top-level model,
|
|
|
59
59
|
| Plane | Responsibility | Source document |
|
|
60
60
|
| --- | --- | --- |
|
|
61
61
|
| Codex control plane | Agent behavior, workflow, tool surface, prompts, skills, hooks, and Codex-level guidance | [roles-skills-and-workflows.md](./roles-skills-and-workflows.md), [generated-workspaces.md](./generated-workspaces.md) |
|
|
62
|
-
| Django service plane | Durable policy/order/portfolio/audit/harness/integration logic, product web, Admin, Ninja, MCP
|
|
62
|
+
| Django service plane | Durable policy/order/portfolio/audit/harness/integration logic, product web, Admin, Ninja, stdio MCP bridge, and research file indexing | [system-architecture.md](./system-architecture.md), [interfaces-and-surfaces.md](./interfaces-and-surfaces.md) |
|
|
63
63
|
| Workspace system plane | Generated schemas, policy exports, MCP wrappers, research markdown, readable artifacts, audit directories | [generated-workspaces.md](./generated-workspaces.md), [research-memory-and-artifacts.md](./research-memory-and-artifacts.md) |
|
|
64
64
|
|
|
65
65
|
Workspace identity is the Codex workbench identity. Research handoffs are
|
|
@@ -76,7 +76,7 @@ portfolio state or execution policy.
|
|
|
76
76
|
| --- | --- | --- | --- |
|
|
77
77
|
| Guidance guardrail | Reduce risky behavior before it reaches execution. | `AGENTS.md`, skills, role prompts, hooks, checklists | [roles-skills-and-workflows.md](./roles-skills-and-workflows.md) |
|
|
78
78
|
| Enforcement guardrail | Deterministically block risky action completion. | permissions, policy, approval checks, MCP allowlists | [safety-policy-and-execution.md](./safety-policy-and-execution.md) |
|
|
79
|
-
| Information barrier | Control knowledge and file-access flow. | role
|
|
79
|
+
| Information barrier | Control knowledge and file-access flow. | role skill-source boundaries, restricted list, secret wall | [roles-skills-and-workflows.md](./roles-skills-and-workflows.md), [safety-policy-and-execution.md](./safety-policy-and-execution.md) |
|
|
80
80
|
| Improvement loop | Standardize artifact quality, learn from outcomes, and improve future workflow behavior. | workflows, quality gates, readiness labels, research memory, file-native skill proposals, postmortems, validation feedback | [improvement-loop.md](./improvement-loop.md), [research-memory-and-artifacts.md](./research-memory-and-artifacts.md), [roles-skills-and-workflows.md](./roles-skills-and-workflows.md) |
|
|
81
81
|
|
|
82
82
|
## Role Boundary Snapshot
|
|
@@ -91,7 +91,7 @@ subagents. Detailed responsibilities live in
|
|
|
91
91
|
| analyst roles | research, evidence, valuation, market/instrument context | order approval, execution, secret read |
|
|
92
92
|
| `portfolio-manager` | portfolio fit and draft order ticket | self-approval, execution, arbitrary policy change |
|
|
93
93
|
| `risk-manager` | risk review, policy review, approval receipt | order drafting, execution, arbitrary policy change |
|
|
94
|
-
| `execution-operator` | submit approved
|
|
94
|
+
| `execution-operator` | submit/cancel approved orders through the TradingCodex service boundary; live only after all gates pass | raw broker API, secret read, policy change |
|
|
95
95
|
|
|
96
96
|
Handoff states are `accepted`, `revise`, `blocked`, or `waiting`. Only accepted
|
|
97
97
|
artifacts move downstream. `head-manager` may synthesize accepted outputs and
|
|
@@ -5,8 +5,9 @@ TradingCodex is distributed as a Python package on PyPI. The package name is
|
|
|
5
5
|
|
|
6
6
|
TradingCodex is local-first software. A PyPI release ships the CLI, Django
|
|
7
7
|
service plane, generated workspace templates, Admin/Web templates, static
|
|
8
|
-
assets, and MCP gateway code. It does not deploy a hosted service
|
|
9
|
-
|
|
8
|
+
assets, and MCP gateway code. It does not deploy a hosted service. Core ships
|
|
9
|
+
paper execution by default; broker-specific live execution requires installed,
|
|
10
|
+
reviewed providers and explicit live gates.
|
|
10
11
|
|
|
11
12
|
## Release Policy
|
|
12
13
|
|
|
@@ -18,9 +19,9 @@ application-service surfaces are the supported contract.
|
|
|
18
19
|
|
|
19
20
|
Execution status for this release line:
|
|
20
21
|
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
22
|
+
- paper execution is built in
|
|
23
|
+
- validation and live-capable provider code must be installed/reviewed before use
|
|
24
|
+
- live submission is disabled by default and requires config, policy, environment, adapter, health, approval, confirmation, idempotency, sync, and audit gates
|
|
24
25
|
- execution MCP tools must stay behind policy, approval, duplicate-request,
|
|
25
26
|
connection, and audit checks
|
|
26
27
|
|
|
@@ -140,7 +141,7 @@ python3.11 -m venv /tmp/tcx-testpypi
|
|
|
140
141
|
/tmp/tcx-testpypi/bin/pip install \
|
|
141
142
|
--index-url https://test.pypi.org/simple/ \
|
|
142
143
|
--extra-index-url https://pypi.org/simple/ \
|
|
143
|
-
tradingcodex==0.2.
|
|
144
|
+
tradingcodex==0.2.6
|
|
144
145
|
rm -rf /tmp/tcx-testpypi-smoke
|
|
145
146
|
mkdir -p /tmp/tcx-testpypi-smoke
|
|
146
147
|
cd /tmp/tcx-testpypi-smoke
|
|
@@ -156,8 +157,8 @@ available on TestPyPI.
|
|
|
156
157
|
Before pushing the release tag:
|
|
157
158
|
|
|
158
159
|
- verify `pyproject.toml` version is the intended release version
|
|
159
|
-
- verify `README.md` describes execution as
|
|
160
|
-
- verify docs mention that live broker execution
|
|
160
|
+
- verify `README.md` describes execution as service-gated
|
|
161
|
+
- verify docs mention that live broker execution requires installed providers and explicit gates
|
|
161
162
|
- run local build verification
|
|
162
163
|
- run a TestPyPI release when packaging changed
|
|
163
164
|
|
|
@@ -169,7 +170,7 @@ After the PyPI workflow completes:
|
|
|
169
170
|
|
|
170
171
|
```bash
|
|
171
172
|
python3.11 -m venv /tmp/tcx-pypi
|
|
172
|
-
/tmp/tcx-pypi/bin/pip install tradingcodex==0.2.
|
|
173
|
+
/tmp/tcx-pypi/bin/pip install tradingcodex==0.2.6
|
|
173
174
|
rm -rf /tmp/tcx-pypi-smoke
|
|
174
175
|
mkdir -p /tmp/tcx-pypi-smoke
|
|
175
176
|
cd /tmp/tcx-pypi-smoke
|
|
@@ -253,7 +254,10 @@ Use PEP 440 versions:
|
|
|
253
254
|
context, build-mode updates, and connector scaffold workflow
|
|
254
255
|
- `0.2.5` for packaged web static assets and startup service mismatch notices
|
|
255
256
|
reaching head-manager compact context
|
|
256
|
-
-
|
|
257
|
+
- `0.2.6` for provider-driven Broker Center foundations, live-gated provider
|
|
258
|
+
execution paths, runtime surface simplification, and stricter subagent skill
|
|
259
|
+
boundaries after `0.2.5`
|
|
260
|
+
- later patch releases for compatible fixes after `0.2.6`
|
|
257
261
|
- pre-releases such as `0.3.0a1`, `0.3.0b1`, or `0.3.0rc1` when preparing
|
|
258
262
|
the next minor contract
|
|
259
263
|
|
|
@@ -122,14 +122,14 @@ Generated workspaces contain:
|
|
|
122
122
|
- fixed subagent `nickname_candidates` set to a single item matching the exact role `name`
|
|
123
123
|
- fixed subagent identities kept in `.codex/agents/*.toml` `developer_instructions`, as required by Codex custom agent files
|
|
124
124
|
- project-local additional agent instructions under `.tradingcodex/agent-instructions/<role>.md`; projection appends them after generated default instructions for `head-manager` and fixed subagents
|
|
125
|
-
-
|
|
125
|
+
- nineteen core repo skills across project-scope mainagent skills and subagent skill directories, each with `SKILL.md` frontmatter for document metadata and `agents/openai.yaml` UI metadata
|
|
126
126
|
- standalone `strategy-*` skills under `.agents/skills/strategy-*` for user-approved agent-readable investment strategies, created through `strategy-creator`, CLI, API, or service-layer flows and exposed to the root `head-manager` through the strategy marker block in `.codex/config.toml`; Django web lists and previews them read-only
|
|
127
|
-
- file-native agent/skill projection:
|
|
127
|
+
- file-native agent/skill projection: head-manager and strategy skills live under `.agents/skills/*`, role-owned subagent skills live under `.tradingcodex/subagents/skills/*`, and role TOML embeds the allowed role skill source list; state is expressed in `.codex/agents/*.toml`, `.codex/config.toml`, `.tradingcodex/mainagent/skill-change-proposals/*.yaml`, and `.tradingcodex/generated/*.json`, not Django skill DB tables
|
|
128
128
|
- optional subagent skills are created, updated, activated, archived, deleted, and validated through the shared application service used by `head-manager`, CLI, API, and Django web
|
|
129
129
|
- information-barrier policies
|
|
130
130
|
- order/approval schemas
|
|
131
131
|
- restricted-list policy
|
|
132
|
-
- paper
|
|
132
|
+
- built-in paper provider plus provider-driven validation/live gates
|
|
133
133
|
- audit directories
|
|
134
134
|
- central local SQLite service access through `~/.tradingcodex/state/tradingcodex.sqlite3`
|
|
135
135
|
- workspace identity through `.tradingcodex/workspace.json`
|
|
@@ -250,9 +250,10 @@ Generated permission profiles allow network access for public evidence
|
|
|
250
250
|
gathering, such as filings, disclosures, news, web sources, and market-data
|
|
251
251
|
references. They still deny workspace secret paths and do not authorize direct
|
|
252
252
|
broker APIs, broker-specific Codex MCP servers, approval bypass, or execution.
|
|
253
|
-
Broker APIs are attached through
|
|
254
|
-
canonical MCP tools such as `
|
|
255
|
-
`
|
|
253
|
+
Broker APIs are attached through provider-driven TradingCodex connector profiles
|
|
254
|
+
using canonical MCP tools such as `list_broker_adapter_providers`,
|
|
255
|
+
`scaffold_broker_connector`, `register_broker_connector`,
|
|
256
|
+
`validate_broker_connector_build`, `get_broker_capability_profile`,
|
|
256
257
|
`get_broker_instrument_constraints`, and `preview_order_translation`.
|
|
257
258
|
|
|
258
259
|
Generated Codex config declares the TradingCodex home directory, normally
|
|
@@ -331,8 +332,9 @@ Build mode is per workspace and explicit:
|
|
|
331
332
|
- `./tcx mode set build --reason "<reason>"`
|
|
332
333
|
- `./tcx mode set operate`
|
|
333
334
|
|
|
334
|
-
Build mode may update TradingCodex, templates, and broker/API
|
|
335
|
-
scaffolds. It never
|
|
335
|
+
Build mode may update TradingCodex, templates, and broker/API provider
|
|
336
|
+
scaffolds, including live-capable provider code. It never submits live orders;
|
|
337
|
+
live submission remains behind the service gates. Update recommendations are scoped
|
|
336
338
|
to the new-conversation health pass, not every user turn. If the user declines
|
|
337
339
|
update prompts, `head-manager` records the TradingCodex home preference file,
|
|
338
340
|
normally `~/.tradingcodex/preferences/update.json`, with
|
|
@@ -340,9 +342,20 @@ normally `~/.tradingcodex/preferences/update.json`, with
|
|
|
340
342
|
recommend automatic workspace updates unless the user removes or changes that
|
|
341
343
|
flag, or explicitly asks for an update.
|
|
342
344
|
|
|
343
|
-
Connector
|
|
344
|
-
|
|
345
|
-
|
|
345
|
+
Connector onboarding is connect-first: `tcx connectors connect <broker>` wraps
|
|
346
|
+
provider discovery, scaffold, registration, validation, and plain status output.
|
|
347
|
+
Advanced scaffold/register/validate commands remain available. If the requested
|
|
348
|
+
provider is not installed, the generated connector profile records
|
|
349
|
+
`provider_development_required` instead of pretending the broker is already
|
|
350
|
+
supported.
|
|
351
|
+
|
|
352
|
+
Broker provider build work is separate from the running operate server. A
|
|
353
|
+
generated workspace may already have TradingCodex MCP autostarting the Django
|
|
354
|
+
service; provider file changes must not be treated as hot-loaded live execution
|
|
355
|
+
authority. Connector profiles record provider source hashes, status calls report
|
|
356
|
+
`service_restart_required` when source changed after registration, and live
|
|
357
|
+
execution remains blocked until the service is restarted and the connector is
|
|
358
|
+
revalidated.
|
|
346
359
|
|
|
347
360
|
## Hooks
|
|
348
361
|
|
|
@@ -364,7 +377,7 @@ enforcement.
|
|
|
364
377
|
- execution negation routing such as "no order" and "no trading"
|
|
365
378
|
- strategy authoring prompts remain in `strategy-creator`/strategy CRUD scope
|
|
366
379
|
instead of auto-dispatching fixed investment subagents
|
|
367
|
-
- connector implementation prompts such as "
|
|
380
|
+
- connector implementation prompts such as "connect this broker"
|
|
368
381
|
route to the `connector_build` lane and `$tcx-build`, not investment
|
|
369
382
|
dispatch
|
|
370
383
|
- secret-only routing: credential, token, password, broker-key, or `.env`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Interfaces And Surfaces
|
|
2
2
|
|
|
3
3
|
This document owns the behavior of TradingCodex product web, Django Admin,
|
|
4
|
-
Django Ninja API,
|
|
4
|
+
Django Ninja API, stdio MCP, CLI, and generated workspace wrappers.
|
|
5
5
|
|
|
6
6
|
## Interface Rule
|
|
7
7
|
|
|
@@ -57,8 +57,8 @@ of the primary product navigation:
|
|
|
57
57
|
- `/policy/` restricted list and policy decision review
|
|
58
58
|
- `/activity/` MCP call ledger, audit events, and workflow activity
|
|
59
59
|
|
|
60
|
-
The product web app uses Django templates, local static HTMX, and
|
|
61
|
-
|
|
60
|
+
The product web app uses Django templates, local static HTMX, and small plain
|
|
61
|
+
JavaScript. There is no Node, bundler, React, or frontend build step in the
|
|
62
62
|
baseline. Its visual language follows a compact dark dashboard style inspired
|
|
63
63
|
by shadcn `new-york` components, implemented with vanilla CSS over Django
|
|
64
64
|
templates rather than React or Tailwind.
|
|
@@ -232,8 +232,7 @@ workspace provenance stay in the same approved action boundary.
|
|
|
232
232
|
|
|
233
233
|
TradingCodex exposes the official Codex MCP path through project-scoped stdio:
|
|
234
234
|
`tcx mcp stdio`. MCP is intentionally selected service-layer use cases, not an
|
|
235
|
-
automatic REST mirror.
|
|
236
|
-
legacy/debug transport and is not the generated Codex workspace path.
|
|
235
|
+
automatic REST mirror.
|
|
237
236
|
|
|
238
237
|
Minimum MCP protocol surface:
|
|
239
238
|
|
|
@@ -364,8 +363,10 @@ Generated workspace wrapper commands:
|
|
|
364
363
|
- `./tcx mode set build --reason "<reason>"`
|
|
365
364
|
- `./tcx mode set operate`
|
|
366
365
|
- `./tcx connectors status`
|
|
367
|
-
- `./tcx connectors
|
|
368
|
-
- `./tcx connectors
|
|
366
|
+
- `./tcx connectors providers`
|
|
367
|
+
- `./tcx connectors connect <broker> [--provider <provider-id>] [--credential-ref <ref>] [--mode read-only|validation|live-request]`
|
|
368
|
+
- `./tcx connectors scaffold <broker-id> [--provider <provider-id>] [--credential-ref <ref>] [--environment <env>]`
|
|
369
|
+
- `./tcx connectors register --provider <provider-id> --broker-id <id> --credential-ref <ref> [--environment <env>]`
|
|
369
370
|
- `./tcx connectors validate <broker-id>`
|
|
370
371
|
- `./tcx workspace status|list`
|
|
371
372
|
- `./tcx profile status|list|create|select|update`
|
|
@@ -373,9 +374,9 @@ Generated workspace wrapper commands:
|
|
|
373
374
|
- `./tcx subagents prompt [--json|--explain] "<request>"`
|
|
374
375
|
- `./tcx skills optional list|inspect|create|update|activate|archive|delete`
|
|
375
376
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
377
|
+
Connector setup is provider-first. Core ships the `paper` provider only; a
|
|
378
|
+
named broker request routes to `$tcx-build` to install or develop a reviewed
|
|
379
|
+
provider, then registration stores only provider metadata and `credential_ref`.
|
|
379
380
|
- `./tcx strategies list|inspect|create|update|activate|archive|delete`
|
|
380
381
|
- `./tcx validate order <path>`
|
|
381
382
|
- `./tcx approve <path>`
|
|
@@ -58,8 +58,8 @@ guidance emitted by the product should remain English.
|
|
|
58
58
|
| Python | Use the current supported Python line defined in `pyproject.toml` and release docs. |
|
|
59
59
|
| Django | Use the latest LTS-oriented Django service plane, currently Django 5.2.x. |
|
|
60
60
|
| Database | Default to central local SQLite; design models so PostgreSQL remains viable later. |
|
|
61
|
-
| Frontend | Use Django templates, local static HTMX, and
|
|
62
|
-
| MCP |
|
|
61
|
+
| Frontend | Use Django templates, local static HTMX, and small plain JavaScript; no Node, bundler, React, or frontend build step in the baseline. |
|
|
62
|
+
| MCP | Provide project-scoped stdio bridge support for Codex environments. |
|
|
63
63
|
| Deployment | Local-first. PyPI installs the local package; initial scope does not provide a hosted service. |
|
|
64
64
|
|
|
65
65
|
## Goals In Detail
|
|
@@ -81,7 +81,7 @@ guidance emitted by the product should remain English.
|
|
|
81
81
|
|
|
82
82
|
| Non-goal | Reason |
|
|
83
83
|
| --- | --- |
|
|
84
|
-
| Built-in live broker execution |
|
|
84
|
+
| Built-in named live broker execution | Core ships paper only; broker-specific live support is request-built provider work behind the TradingCodex broker control plane and must pass provider review, policy, approval, duplicate-request, connection, sync, and audit gates. |
|
|
85
85
|
| Raw credential storage | Secrets do not belong in generated workspaces, prompt output, API responses, MCP responses, logs, or audit output. |
|
|
86
86
|
| REST execution bypass | REST endpoints may validate or call service-layer use cases, but cannot bypass MCP/service execution rules. |
|
|
87
87
|
| Product web orchestration | The web dashboard reviews state and previews workflow handoffs; it does not spawn subagents or perform investment analysis. |
|
|
@@ -43,7 +43,7 @@ artifact.
|
|
|
43
43
|
| `valuation-analyst` | valuation range, scenario assumptions, market-implied expectations, sensitivity | accepted research artifacts and user-stated method constraints | valuation report with assumptions, sensitivity, confidence, and readiness for portfolio/risk review |
|
|
44
44
|
| `portfolio-manager` | portfolio fit, sizing context, concentration, liquidity, opportunity cost, draft order-ticket readiness | accepted research/valuation artifacts and portfolio state | portfolio report and, only when allowed, draft order-ticket readiness or draft ticket |
|
|
45
45
|
| `risk-manager` | downside, restricted-list and policy readiness, limits, approval readiness, approval receipt | accepted portfolio/order artifacts, policy state, restricted-list state, audit evidence | risk/policy report, approval readiness state, approval receipt when allowed, or blocked reasons |
|
|
46
|
-
| `execution-operator` | approved
|
|
46
|
+
| `execution-operator` | approved submit/cancel/status through the TradingCodex service boundary; live only when every live gate passes | approved order ticket, matching approval receipt, policy allow state | execution result, MCP response, audit reference, or rejected/blocked reasons |
|
|
47
47
|
|
|
48
48
|
Downstream roles handle weak upstream work by returning a revision request or
|
|
49
49
|
`blocked` readiness state. They do not repair missing upstream analysis inside
|
|
@@ -100,7 +100,7 @@ they are not required before `head-manager` routes the work.
|
|
|
100
100
|
| --- | --- |
|
|
101
101
|
| General investment request, such as "Analyze Apple stock" | `UserPromptSubmit` injects compact auto-dispatch context with lane, selected team, blocked actions, and the persisted prompt-gate path; `head-manager` dispatches or reuses selected subagents before analysis. |
|
|
102
102
|
| Explicit `$tcx-workflow` request | The workflow skill becomes the primary manual-control orchestrator and dispatches selected subagents. |
|
|
103
|
-
|
|
|
103
|
+
| Broker/provider build request, such as "connect this broker" | Route to the `connector_build` lane and `$tcx-build`; connect/scaffold/register/validate provider metadata without investment dispatch or live submission. |
|
|
104
104
|
| Runtime/server request, such as "open dashboard" or "check TradingCodex status" | Route to `$tcx-server`; report service/MCP/update posture and use CLI recovery commands without changing execution authority. |
|
|
105
105
|
| Explicit subagent/parallel/delegated request | `UserPromptSubmit` records the explicit activation source; the skill checks existing subagent state before creating/reusing sessions. |
|
|
106
106
|
| Strategy authoring request, such as "Create a quality income strategy" | Do not auto-dispatch investment subagents. Route through `strategy-creator`, CLI, API, or service-layer flows so the strategy skill is created and projected as a root/head-manager strategy entry. Django web previews strategies read-only. |
|
|
@@ -147,7 +147,7 @@ boundary, approval requirements, or information barriers.
|
|
|
147
147
|
| --- | --- | --- |
|
|
148
148
|
| Broad analysis such as "Analyze Apple stock" | auto-dispatch or reuse selected subagents, then wait for outputs before synthesis | Direct business/price/news/recommendation analysis |
|
|
149
149
|
| Explicit workflow request such as "$tcx-workflow analyze Apple" | Spawn selected team or reuse active/completed roles, wait for outputs, then synthesize | Analyze without dispatch |
|
|
150
|
-
|
|
|
150
|
+
| Broker/provider build request | Check full-access plus TCX build mode, connect/scaffold/register/validate provider metadata through `$tcx-build`, and keep live submission inside service gates | Dispatch investment subagents, ask for raw secrets, or expose raw broker SDK tools |
|
|
151
151
|
| Decision support such as "Should I buy?" | Dispatch analyst/valuation/portfolio/risk team and explain required artifacts/gates | Offer buy/sell opinion without subagent output |
|
|
152
152
|
| Dispatch unavailable, role routing unverified, or dispatch failed | Provide `waiting_for_subagent_dispatch` state and task briefs only | Switch to "I will analyze it myself" |
|
|
153
153
|
| Subagent artifacts exist | Summarize role outputs, conflicts, confidence/missing evidence, and next allowed action | Override subagent evidence with unsupported certainty |
|
|
@@ -155,9 +155,12 @@ boundary, approval requirements, or information barriers.
|
|
|
155
155
|
|
|
156
156
|
## Skills And Context
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
workspace
|
|
160
|
-
|
|
158
|
+
Head-manager and strategy skills live under `.agents/skills/*` so they are
|
|
159
|
+
discoverable to the root workspace coordinator. Role-owned subagent skills live
|
|
160
|
+
under `.tradingcodex/subagents/skills/*`; each fixed-role TOML file projects
|
|
161
|
+
only that role's allowed skill source list into developer instructions so a
|
|
162
|
+
custom subagent can apply its own procedures without importing root, strategy,
|
|
163
|
+
or out-of-role skill files.
|
|
161
164
|
|
|
162
165
|
Instruction/skill separation:
|
|
163
166
|
|
|
@@ -229,11 +232,31 @@ Head-manager skill responsibilities:
|
|
|
229
232
|
| --- | --- |
|
|
230
233
|
| `tcx-workflow` | compact workflow routing, selected-team dispatch/reuse, handoff quality states, and synthesis after accepted artifacts |
|
|
231
234
|
| `tcx-server` | startup health, local dashboard URL guidance, explicit user-requested dashboard opening, Codex restart guidance, TradingCodex MCP setup, update-status explanation, read-only broker/status inspection, and service troubleshooting without granting execution authority |
|
|
232
|
-
| `tcx-build` | full-access plus TCX-build-mode gated self-update, template/harness edits, broker/API
|
|
235
|
+
| `tcx-build` | full-access plus TCX-build-mode gated self-update, template/harness edits, broker/API provider connect/scaffold/register/validate flows, credential-ref handling, and live-submit blocking outside service gates |
|
|
233
236
|
| `external-data-source-gate` | read-only external evidence-source constraints and External MCP Gate honesty |
|
|
234
237
|
| `strategy-creator` | create, update, validate, and activate user-approved `strategy-*` skills as strategy library entries without granting policy, approval, execution, MCP, or role-boundary authority |
|
|
235
238
|
| `postmortem` | audit-backed process review and improvement proposals after failures, thesis changes, rejected orders, or executions |
|
|
236
239
|
|
|
240
|
+
## Broker Control Plane
|
|
241
|
+
|
|
242
|
+
TradingCodex is the local broker control plane, not a bundled collection of
|
|
243
|
+
broker SDK shortcuts. Codex may prepare a broker connector from natural
|
|
244
|
+
language, but the server owns connector state, provider capability profiles,
|
|
245
|
+
mapping review, account sync, order tickets, approvals, idempotency, broker
|
|
246
|
+
order status, reconciliation, and audit.
|
|
247
|
+
|
|
248
|
+
Broker-specific REST, SDK, MCP, CSV, or manual interfaces belong behind
|
|
249
|
+
provider adapters. The server calls only the small canonical broker contract for
|
|
250
|
+
health, account/cash/position reads, constraints, preview/validation, and
|
|
251
|
+
reviewed live submit/cancel/status methods.
|
|
252
|
+
|
|
253
|
+
`execution-operator` uses TradingCodex MCP canonical tools such as
|
|
254
|
+
`submit_approved_order`, `cancel_approved_order`, `refresh_broker_order_status`,
|
|
255
|
+
`get_order_ticket`, and `run_order_checks`. It never calls broker APIs, broker
|
|
256
|
+
SDKs, shell scripts, or broker-specific MCP tools directly. If a broker is MCP
|
|
257
|
+
backed, the reviewed broker MCP mapping stays behind the TradingCodex service
|
|
258
|
+
execution path.
|
|
259
|
+
|
|
237
260
|
## Strategy Skills
|
|
238
261
|
|
|
239
262
|
Output language precedence is:
|
|
@@ -299,7 +322,7 @@ user or web request -> shared service validation -> workspace file edit -> TOML
|
|
|
299
322
|
|
|
300
323
|
Codex-visible state is file-native: `.codex/agents/*.toml`,
|
|
301
324
|
`.agents/skills/*`, `.tradingcodex/subagents/skills/*`,
|
|
302
|
-
`.codex/config.toml`, and
|
|
325
|
+
`.codex/config.toml`, role-projected skill source blocks, and
|
|
303
326
|
`.tradingcodex/generated/projection-manifest.json`. Django DB does not store
|
|
304
327
|
skill proposals, role-skill assignments, optional skill CRUD state, or skill
|
|
305
328
|
application audit state.
|
|
@@ -346,8 +369,8 @@ approval, or execution authority.
|
|
|
346
369
|
Generated Codex permission profiles allow public web, filing, disclosure, news,
|
|
347
370
|
and market-data network access for evidence gathering. Direct broker APIs,
|
|
348
371
|
broker-specific Codex MCP servers, raw secrets, approval bypasses, and execution
|
|
349
|
-
remain blocked by role instructions,
|
|
350
|
-
and service-layer policy.
|
|
372
|
+
remain blocked by role instructions, projected role skill-source boundaries,
|
|
373
|
+
TradingCodex MCP allowlists, and service-layer policy.
|
|
351
374
|
|
|
352
375
|
## Hooks Are Guidance
|
|
353
376
|
|