tradingcodex 0.2.1__tar.gz → 0.2.2__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.
Files changed (314) hide show
  1. tradingcodex-0.2.2/PKG-INFO +313 -0
  2. tradingcodex-0.2.2/README.md +282 -0
  3. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/policy/services.py +14 -0
  4. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/deployment.md +4 -3
  5. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/generated-workspaces.md +11 -5
  6. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/roles-skills-and-workflows.md +12 -2
  7. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/safety-policy-and-execution.md +7 -2
  8. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/pyproject.toml +1 -1
  9. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tests/test_broker_center_prd.py +68 -1
  10. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tests/test_python_migration.py +18 -6
  11. tradingcodex-0.2.2/tradingcodex.egg-info/PKG-INFO +313 -0
  12. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/agents.py +1 -0
  13. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/orders.py +7 -1
  14. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/mcp_runtime.py +2 -2
  15. tradingcodex-0.2.2/tradingcodex_service/version.py +1 -0
  16. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.codex/config.toml +1 -1
  17. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +8 -5
  18. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/AGENTS.md +2 -0
  19. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +1 -1
  20. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/SKILL.md +10 -10
  21. tradingcodex-0.2.1/PKG-INFO +0 -343
  22. tradingcodex-0.2.1/README.md +0 -312
  23. tradingcodex-0.2.1/tradingcodex.egg-info/PKG-INFO +0 -343
  24. tradingcodex-0.2.1/tradingcodex_service/version.py +0 -1
  25. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/CONTRIBUTING.md +0 -0
  26. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/LICENSE +0 -0
  27. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/MANIFEST.in +0 -0
  28. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/NOTICE +0 -0
  29. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/TRADEMARKS.md +0 -0
  30. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/__init__.py +0 -0
  31. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/audit/__init__.py +0 -0
  32. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/audit/admin.py +0 -0
  33. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/audit/apps.py +0 -0
  34. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/audit/migrations/0001_initial.py +0 -0
  35. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/audit/migrations/__init__.py +0 -0
  36. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/audit/models.py +0 -0
  37. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/harness/__init__.py +0 -0
  38. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/harness/admin.py +0 -0
  39. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/harness/apps.py +0 -0
  40. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/harness/migrations/0001_initial.py +0 -0
  41. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/harness/migrations/__init__.py +0 -0
  42. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/harness/models.py +0 -0
  43. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/harness/templatetags/__init__.py +0 -0
  44. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/__init__.py +0 -0
  45. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/admin.py +0 -0
  46. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/apps.py +0 -0
  47. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/migrations/0001_initial.py +0 -0
  48. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/migrations/0002_brokerconnection_brokeraccount_instrumentmap.py +0 -0
  49. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/migrations/__init__.py +0 -0
  50. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/models.py +0 -0
  51. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/integrations/services.py +0 -0
  52. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/mcp/__init__.py +0 -0
  53. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/mcp/admin.py +0 -0
  54. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/mcp/apps.py +0 -0
  55. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/mcp/migrations/0001_initial.py +0 -0
  56. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/mcp/migrations/__init__.py +0 -0
  57. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/mcp/models.py +0 -0
  58. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/mcp/services.py +0 -0
  59. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/__init__.py +0 -0
  60. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/admin.py +0 -0
  61. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/apps.py +0 -0
  62. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/migrations/0001_initial.py +0 -0
  63. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/migrations/0002_approvalreceipt_approved_order_type_and_more.py +0 -0
  64. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/migrations/0003_migrate_orderintent_to_orderticket.py +0 -0
  65. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/migrations/0004_remove_order_intent_compat_fields.py +0 -0
  66. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/migrations/__init__.py +0 -0
  67. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/models.py +0 -0
  68. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/orders/services.py +0 -0
  69. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/policy/__init__.py +0 -0
  70. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/policy/admin.py +0 -0
  71. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/policy/apps.py +0 -0
  72. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/policy/migrations/0001_initial.py +0 -0
  73. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/policy/migrations/__init__.py +0 -0
  74. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/policy/models.py +0 -0
  75. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/portfolio/__init__.py +0 -0
  76. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/portfolio/admin.py +0 -0
  77. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/portfolio/apps.py +0 -0
  78. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/portfolio/migrations/0001_initial.py +0 -0
  79. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/portfolio/migrations/0002_brokersyncrun_portfolioledgerevent_reconciliationrun.py +0 -0
  80. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/portfolio/migrations/__init__.py +0 -0
  81. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/portfolio/models.py +0 -0
  82. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/research/__init__.py +0 -0
  83. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/research/admin.py +0 -0
  84. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/research/apps.py +0 -0
  85. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/research/migrations/__init__.py +0 -0
  86. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/research/models.py +0 -0
  87. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/workflows/__init__.py +0 -0
  88. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/workflows/admin.py +0 -0
  89. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/workflows/apps.py +0 -0
  90. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/workflows/migrations/0001_initial.py +0 -0
  91. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/workflows/migrations/__init__.py +0 -0
  92. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/apps/workflows/models.py +0 -0
  93. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/assets/tradingcodex-banner.svg +0 -0
  94. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/README.md +0 -0
  95. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/components.md +0 -0
  96. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/core-concepts-and-rules.md +0 -0
  97. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/guardrails.md +0 -0
  98. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/harness.md +0 -0
  99. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/improvement-loop.md +0 -0
  100. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/interfaces-and-surfaces.md +0 -0
  101. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/licensing-and-commercialization.md +0 -0
  102. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/product-direction.md +0 -0
  103. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/research-memory-and-artifacts.md +0 -0
  104. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/system-architecture.md +0 -0
  105. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/docs/validation-and-test-plan.md +0 -0
  106. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/install.sh +0 -0
  107. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/installation.md +0 -0
  108. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/setup.cfg +0 -0
  109. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/static/tradingcodex_admin/favicon.svg +0 -0
  110. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/static/tradingcodex_web/app.css +0 -0
  111. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/static/tradingcodex_web/app.js +0 -0
  112. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/static/tradingcodex_web/workbench.css +0 -0
  113. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/static/vendor/alpine/alpine.min.js +0 -0
  114. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/static/vendor/htmx/htmx.min.js +0 -0
  115. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tests/test_e2e_user_scenarios.py +0 -0
  116. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex.egg-info/SOURCES.txt +0 -0
  117. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex.egg-info/dependency_links.txt +0 -0
  118. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex.egg-info/entry_points.txt +0 -0
  119. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex.egg-info/requires.txt +0 -0
  120. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex.egg-info/top_level.txt +0 -0
  121. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/__init__.py +0 -0
  122. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/__main__.py +0 -0
  123. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/__init__.py +0 -0
  124. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/bootstrap.py +0 -0
  125. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/db.py +0 -0
  126. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/doctor.py +0 -0
  127. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/mcp.py +0 -0
  128. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/orders.py +0 -0
  129. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/policy.py +0 -0
  130. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/profile.py +0 -0
  131. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/research.py +0 -0
  132. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/skills.py +0 -0
  133. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/strategies.py +0 -0
  134. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/subagents.py +0 -0
  135. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/utils.py +0 -0
  136. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/commands/workspaces.py +0 -0
  137. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/generator.py +0 -0
  138. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/mcp_stdio.py +0 -0
  139. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_cli/service_autostart.py +0 -0
  140. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/__init__.py +0 -0
  141. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/admin.py +0 -0
  142. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/api.py +0 -0
  143. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/__init__.py +0 -0
  144. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/artifact_quality.py +0 -0
  145. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/audit.py +0 -0
  146. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/brokers.py +0 -0
  147. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/common.py +0 -0
  148. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/components.py +0 -0
  149. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/context_budget.py +0 -0
  150. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/harness.py +0 -0
  151. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/markdown_preview.py +0 -0
  152. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/policy.py +0 -0
  153. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/portfolio.py +0 -0
  154. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/research.py +0 -0
  155. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/application/runtime.py +0 -0
  156. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/asgi.py +0 -0
  157. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/mcp_http.py +0 -0
  158. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/settings.py +0 -0
  159. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/activity.html +0 -0
  160. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/agent_skills.html +0 -0
  161. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/agents.html +0 -0
  162. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/base.html +0 -0
  163. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/brokers.html +0 -0
  164. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/dashboard.html +0 -0
  165. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/fragments/role_inspector.html +0 -0
  166. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/fragments/starter_prompt.html +0 -0
  167. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/fragments/topology_canvas.html +0 -0
  168. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/harness.html +0 -0
  169. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/mcp_router.html +0 -0
  170. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/orders.html +0 -0
  171. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/policy.html +0 -0
  172. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/portfolio.html +0 -0
  173. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/research.html +0 -0
  174. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/starter_prompt.html +0 -0
  175. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/templates/web/strategies.html +0 -0
  176. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/urls.py +0 -0
  177. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/web.py +0 -0
  178. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/tradingcodex_service/wsgi.py +0 -0
  179. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/__init__.py +0 -0
  180. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
  181. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
  182. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/audit/module.json +0 -0
  183. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +0 -0
  184. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
  185. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
  186. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/capabilities.yaml +0 -0
  187. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
  188. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
  189. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/policy-bindings.yaml +0 -0
  190. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/principals.yaml +0 -0
  191. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/roles.yaml +0 -0
  192. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
  193. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/files/tcx +0 -0
  194. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/codex-base/module.json +0 -0
  195. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/access-policies.yaml +0 -0
  196. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
  197. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
  198. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
  199. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
  200. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
  201. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
  202. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
  203. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
  204. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
  205. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
  206. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
  207. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
  208. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
  209. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
  210. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
  211. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
  212. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/execution-operator.toml +0 -0
  213. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
  214. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
  215. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
  216. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
  217. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
  218. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
  219. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
  220. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/head-manager.yaml +0 -0
  221. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
  222. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/subagent-registry.yaml +0 -0
  223. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/fixed-subagents/module.json +0 -0
  224. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
  225. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
  226. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
  227. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/.tradingcodex/policies/information-barriers.yaml +0 -0
  228. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
  229. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/approvals/.gitkeep +0 -0
  230. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
  231. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/orders/approved/.gitkeep +0 -0
  232. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/orders/draft/.gitkeep +0 -0
  233. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/orders/executed/.gitkeep +0 -0
  234. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/orders/rejected/.gitkeep +0 -0
  235. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
  236. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
  237. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
  238. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
  239. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
  240. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
  241. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
  242. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
  243. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
  244. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
  245. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
  246. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
  247. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/information-barriers/module.json +0 -0
  248. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/paper-trading/files/.tradingcodex/mcp/adapters/paper-trading.py +0 -0
  249. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/paper-trading/module.json +0 -0
  250. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/postmortem/files/.tradingcodex/workflows/postmortem.yaml +0 -0
  251. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/postmortem/module.json +0 -0
  252. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/investment-workflow-map/SKILL.md +0 -0
  253. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/investment-workflow-map/agents/openai.yaml +0 -0
  254. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/manage-optional-skills/SKILL.md +0 -0
  255. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/manage-optional-skills/agents/openai.yaml +0 -0
  256. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/manage-subagents/SKILL.md +0 -0
  257. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/manage-subagents/agents/openai.yaml +0 -0
  258. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/orchestrate-workflow/SKILL.md +0 -0
  259. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/orchestrate-workflow/agents/openai.yaml +0 -0
  260. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/SKILL.md +0 -0
  261. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/agents/openai.yaml +0 -0
  262. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/scenario-quality-gates/SKILL.md +0 -0
  263. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/scenario-quality-gates/agents/openai.yaml +0 -0
  264. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/SKILL.md +0 -0
  265. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/agents/openai.yaml +0 -0
  266. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/synthesize-decision/SKILL.md +0 -0
  267. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/synthesize-decision/agents/openai.yaml +0 -0
  268. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tradingcodex-operator/SKILL.md +0 -0
  269. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tradingcodex-operator/agents/openai.yaml +0 -0
  270. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/agents/openai.yaml +0 -0
  271. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/asset-classes.md +0 -0
  272. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/capability-profile.md +0 -0
  273. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/connector-templates.md +0 -0
  274. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/safety-runbook.md +0 -0
  275. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/troubleshooting.md +0 -0
  276. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/scripts/summarize_connector_status.py +0 -0
  277. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/scripts/validate_connector_profile.py +0 -0
  278. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/SKILL.md +0 -0
  279. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/agents/openai.yaml +0 -0
  280. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/SKILL.md +0 -0
  281. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/agents/openai.yaml +0 -0
  282. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/SKILL.md +0 -0
  283. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/agents/openai.yaml +0 -0
  284. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/SKILL.md +0 -0
  285. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/agents/openai.yaml +0 -0
  286. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/SKILL.md +0 -0
  287. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/agents/openai.yaml +0 -0
  288. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/SKILL.md +0 -0
  289. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/agents/openai.yaml +0 -0
  290. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/SKILL.md +0 -0
  291. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/agents/openai.yaml +0 -0
  292. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/SKILL.md +0 -0
  293. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/agents/openai.yaml +0 -0
  294. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/SKILL.md +0 -0
  295. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/agents/openai.yaml +0 -0
  296. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/SKILL.md +0 -0
  297. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/agents/openai.yaml +0 -0
  298. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/SKILL.md +0 -0
  299. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/agents/openai.yaml +0 -0
  300. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/SKILL.md +0 -0
  301. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/agents/openai.yaml +0 -0
  302. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/SKILL.md +0 -0
  303. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/agents/openai.yaml +0 -0
  304. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/SKILL.md +0 -0
  305. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/agents/openai.yaml +0 -0
  306. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/repo-skills/module.json +0 -0
  307. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/stub-execution/files/.tradingcodex/mcp/adapters/stub-execution.py +0 -0
  308. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/stub-execution/module.json +0 -0
  309. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/adapters/live-adapter.contract.md +0 -0
  310. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
  311. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
  312. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
  313. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/smoke-call.py +0 -0
  314. {tradingcodex-0.2.1 → tradingcodex-0.2.2}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
@@ -0,0 +1,313 @@
1
+ Metadata-Version: 2.4
2
+ Name: tradingcodex
3
+ Version: 0.2.2
4
+ Summary: Codex-native trading harness with a Django service plane and MCP execution boundary.
5
+ Author: TradingCodex Authors
6
+ License-Expression: Apache-2.0
7
+ Keywords: trading,django,codex,mcp,portfolio,research
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Framework :: Django
10
+ Classifier: Framework :: Django :: 5.2
11
+ Classifier: Intended Audience :: Financial and Insurance Industry
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Topic :: Office/Business :: Financial :: Investment
18
+ Requires-Python: <3.15,>=3.11
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ License-File: NOTICE
22
+ Requires-Dist: django<5.3,>=5.2
23
+ Requires-Dist: django-ninja<2,>=1.4
24
+ Requires-Dist: markdown-it-py<5,>=3
25
+ Requires-Dist: nh3<0.4,>=0.3
26
+ Requires-Dist: pydantic>=2
27
+ Requires-Dist: PyYAML>=6
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=8; extra == "dev"
30
+ Dynamic: license-file
31
+
32
+ > [!IMPORTANT]
33
+ > Codex agents setting up `monarchjuno/tradingcodex` for use must not run
34
+ > `git clone`. In the empty target workspace, run the packaged CLI:
35
+ > `uvx --refresh --from tradingcodex tcx attach . && ./tcx doctor`.
36
+ > Do not invent a default workspace path; ask the user where to attach
37
+ > TradingCodex unless they explicitly asked to use the current workspace.
38
+ > Clone this repository only when the user explicitly asks to develop,
39
+ > inspect, or modify TradingCodex source code.
40
+
41
+ # TradingCodex
42
+
43
+ <div align="center">
44
+ <a href="https://github.com/monarchjuno/tradingcodex/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/monarchjuno/tradingcodex/ci.yml?branch=main&label=CI"></a>
45
+ <a href="https://github.com/monarchjuno/tradingcodex/releases"><img alt="Release" src="https://img.shields.io/github/v/release/monarchjuno/tradingcodex?include_prereleases&label=release"></a>
46
+ <a href="https://pypi.org/project/tradingcodex/"><img alt="PyPI" src="https://img.shields.io/pypi/v/tradingcodex?label=PyPI"></a>
47
+ <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue"></a>
48
+ <img alt="Python" src="https://img.shields.io/badge/python-3.11--3.14-3776AB?logo=python&logoColor=white">
49
+ <img alt="Django" src="https://img.shields.io/badge/Django-5.2-092E20?logo=django&logoColor=white">
50
+ </div>
51
+
52
+ <div align="center">
53
+ <a href="https://github.com/monarchjuno/tradingcodex/stargazers"><img alt="GitHub Stars" src="https://img.shields.io/github/stars/monarchjuno/tradingcodex?style=social"></a>
54
+ <a href="https://github.com/monarchjuno/tradingcodex/network/members"><img alt="GitHub Forks" src="https://img.shields.io/github/forks/monarchjuno/tradingcodex?style=social"></a>
55
+ <a href="https://github.com/monarchjuno/tradingcodex/issues"><img alt="GitHub Issues" src="https://img.shields.io/github/issues/monarchjuno/tradingcodex"></a>
56
+ </div>
57
+
58
+ ### Codex-native investment work needs a harness, not a chat transcript.
59
+
60
+ TradingCodex is a local-first Python/Django trading harness for rigorous
61
+ Codex-assisted research, portfolio review, order-ticket checks, approvals, and
62
+ experimental paper/stub execution. Codex coordinates the work, Django owns the
63
+ durable service plane, and TradingCodex MCP is the executable boundary.
64
+
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
+
67
+ <p align="center">
68
+ <img src="assets/tradingcodex-banner.svg" alt="TradingCodex" width="100%">
69
+ </p>
70
+
71
+ ---
72
+
73
+ ## About
74
+
75
+ TradingCodex gives Codex a durable operating system for investment workflows:
76
+ fixed specialist roles, file-native research memory, source-aware handoffs,
77
+ policy and approval services, a central local ledger, and a local web dashboard
78
+ for review.
79
+
80
+ It is not an autonomous trading bot. Natural-language answers do not become
81
+ broker actions. Live broker adapters are not shipped in the initial core.
82
+
83
+ ---
84
+
85
+ ## Features
86
+
87
+ | Feature | Description |
88
+ | --- | --- |
89
+ | Codex-native harness | Generates a Codex workspace with `head-manager`, nine fixed subagents, role prompts, skills, hooks, project MCP config, and a local `./tcx` wrapper. |
90
+ | Django service plane | Web, Admin, API, CLI, MCP, and generated hooks call shared application services for policy, orders, approvals, portfolio, audit, integrations, and research indexing. |
91
+ | File-native research memory | Research markdown, role reports, source snapshots, versions, readiness labels, and handoff metadata stay readable in workspace files. |
92
+ | Fixed-role workflows | Specialist agents own bounded questions across fundamentals, technicals, news, macro, instruments, valuation, portfolio, risk, and execution. |
93
+ | MCP execution boundary | Tools are typed, role-scoped, policy-checked, approval-aware, idempotent, adapter-gated, and audited. |
94
+ | Local web dashboard | Review agents, skills, strategy skills, research markdown, Broker Center, External MCP Gate metadata, order tickets, portfolio state, and activity at `127.0.0.1:48267`. |
95
+ | Broker Center foundations | Register connector profiles, inspect capability profiles, run read-only paper sync, review instrument constraints, and reconcile portfolio state. |
96
+ | OrderTicket lifecycle | Draft, check, approve, submit, cancel, refresh, and inspect order tickets through central DB records and service-layer state transitions. |
97
+ | External MCP Gate | Import external MCP discovery metadata, classify tool risk, scope role access, and block unsafe raw execution or secret proxy paths by default. |
98
+ | Improvement loop | Quality gates, postmortems, optional skills, strategy skills, strict artifact checks, and generated workspace smoke tests turn process gaps into durable improvements. |
99
+
100
+ ---
101
+
102
+ ## Installation
103
+
104
+ ### Option 1 - Attach TradingCodex To The Current Workspace
105
+
106
+ Run this from the empty workspace where you want Codex agents to work:
107
+
108
+ ```bash
109
+ uvx --refresh --from tradingcodex tcx attach . && ./tcx doctor
110
+ ```
111
+
112
+ Then fully quit and restart Codex, open the generated workspace, and start a
113
+ new thread so project MCP config, prompts, skills, and hooks are loaded.
114
+
115
+ When TradingCodex MCP autostarts the local service, open:
116
+
117
+ ```text
118
+ http://127.0.0.1:48267/
119
+ ```
120
+
121
+ ### Option 2 - Install The CLI For Repeated Use
122
+
123
+ ```bash
124
+ uv tool install tradingcodex
125
+ uv tool update-shell
126
+ cd /path/to/target-workspace
127
+ tcx attach .
128
+ ./tcx doctor
129
+ ```
130
+
131
+ ### Option 3 - Install From GitHub Main
132
+
133
+ Use this when you need the current GitHub `main` source rather than the latest
134
+ PyPI package:
135
+
136
+ ```bash
137
+ uvx --refresh --from "tradingcodex @ git+https://github.com/monarchjuno/tradingcodex.git@main" tcx attach . && ./tcx doctor
138
+ ```
139
+
140
+ ### Option 4 - Develop TradingCodex Source
141
+
142
+ Clone this repository only for source development, inspection, or modification:
143
+
144
+ ```bash
145
+ git clone https://github.com/monarchjuno/tradingcodex.git
146
+ cd tradingcodex
147
+ python -m pytest
148
+ python manage.py check
149
+ ```
150
+
151
+ See [installation.md](installation.md) for update flows, installer-script
152
+ equivalents, MCP/service details, and smoke checks.
153
+
154
+ ---
155
+
156
+ ## What Sets TradingCodex Apart
157
+
158
+ TradingCodex competes on workflow discipline, local durability, and execution
159
+ boundaries rather than on black-box automation.
160
+
161
+ - Local-first: PyPI installs the CLI, Django service plane, generated workspace
162
+ templates, Admin/Web templates, static assets, and MCP gateway code.
163
+ - Codex-readable by default: research artifacts, skill bundles, role prompts,
164
+ policy exports, and generated indexes remain ordinary workspace files.
165
+ - Service-layer canonical: Web, Admin, API, CLI, MCP, and hooks do not fork
166
+ policy, order, approval, execution, portfolio, research, or audit behavior.
167
+ - Strong role model: one `head-manager` coordinates nine fixed specialist
168
+ subagents and consumes accepted artifacts instead of silently redoing roles.
169
+ - Deterministic executable boundary: every executable path follows
170
+ `principal -> capability -> policy -> schema -> approval/idempotency -> adapter -> audit`.
171
+ - Safety-first broker posture: live broker execution is excluded; paper, stub,
172
+ and reviewed test/sandbox validation remain experimental local harness flows.
173
+
174
+ ---
175
+
176
+ ## Workflow
177
+
178
+ TradingCodex is designed around handoffs:
179
+
180
+ ```text
181
+ evidence -> analysis -> valuation -> portfolio fit -> risk review
182
+ -> draft order -> approval receipt -> MCP submit_approved_order
183
+ -> adapter -> audit/postmortem
184
+ ```
185
+
186
+ The `head-manager` maps the request, dispatches the selected role team, waits
187
+ for accepted artifacts, preserves conflicts, and synthesizes only what the
188
+ workflow has earned. Weak, stale, missing, or out-of-scope upstream work returns
189
+ `revise`, `blocked`, or `waiting` instead of being patched over by another role.
190
+
191
+ ---
192
+
193
+ ## Role Roster
194
+
195
+ | Layer | Agent | Owns |
196
+ | --- | --- | --- |
197
+ | Main agent | `head-manager` | Intake, workflow dispatch, coordination, artifact acceptance, synthesis, and validation/audit status. |
198
+ | Research | `fundamental-analyst` | Business quality, financial statements, filings, economics, and fundamental risks. |
199
+ | Research | `technical-analyst` | Price action, trends, momentum, volume, volatility, and liquidity setup. |
200
+ | Research | `news-analyst` | Verified news, disclosures, event chronology, catalysts, and narrative change. |
201
+ | Market context | `macro-analyst` | Macro, rates, FX, commodities, liquidity, policy, and cross-asset transmission. |
202
+ | Market context | `instrument-analyst` | ETF/index, options, crypto public market structure, credit-signal boundary, and instrument mechanics. |
203
+ | Decision review | `valuation-analyst` | Valuation ranges, scenario assumptions, multiples, sensitivity, and decision-quality gaps. |
204
+ | Portfolio | `portfolio-manager` | Portfolio fit, sizing, concentration, liquidity, opportunity cost, and draft order-ticket readiness. |
205
+ | Risk | `risk-manager` | Downside, restricted-list checks, policy readiness, approval readiness, and approval receipts. |
206
+ | Execution | `execution-operator` | Approved paper/stub execution through TradingCodex MCP only. |
207
+
208
+ ---
209
+
210
+ ## Surfaces
211
+
212
+ | Surface | Role |
213
+ | --- | --- |
214
+ | Product web | Agents-first review dashboard for roles, skills, research markdown, Broker Center, External MCP Gate, order tickets, portfolio state, and activity. |
215
+ | Django Admin | Local/staff DB inspection for policy, orders, portfolio, MCP registry, workflows, integrations, and audit rows. |
216
+ | Django Ninja API | Typed local/staff REST and control endpoints that call service-layer use cases. |
217
+ | MCP | Agent/tool boundary with typed tools, role scopes, policy checks, approval checks, and audit. |
218
+ | CLI | Local operator commands plus generated workspace `./tcx` wrapper behavior. |
219
+
220
+ The baseline frontend uses Django templates, local static HTMX, and local
221
+ static Alpine. There is no Node, bundler, React, or frontend build step in the
222
+ core package.
223
+
224
+ ---
225
+
226
+ ## Safety Boundary
227
+
228
+ TradingCodex blocks or constrains:
229
+
230
+ - direct live broker requests
231
+ - raw broker API calls and raw external MCP execution proxies
232
+ - self-issued approvals
233
+ - restricted-symbol orders
234
+ - expired or payload-mismatched approval receipts
235
+ - duplicate approved-order submissions
236
+ - raw secrets in workspace files, prompts, API responses, MCP responses, audit
237
+ payloads, generated docs, or shell output
238
+ - unsupported live execution for crypto, macro, options, credit, FX, rates,
239
+ commodities, or other instruments
240
+
241
+ TradingCodex is research, workflow, and execution-guardrail tooling. It is not
242
+ financial, investment, legal, tax, or regulatory advice, and it does not
243
+ provide investment recommendations or guarantee returns.
244
+
245
+ ---
246
+
247
+ ## Roadmap
248
+
249
+ | Status | Milestone |
250
+ | --- | --- |
251
+ | 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. |
252
+ | Current `0.2.x` | Central-DB `OrderTicket` rewrite, Broker Center foundations, External MCP Gate, role-scoped MCP tools, paper/stub execution lifecycle, and Python `>=3.11,<3.15` support. |
253
+ | Next | Deeper validation scenarios, richer connector capability profiles, stronger generated-workspace smoke coverage, and improved artifact quality tooling. |
254
+ | Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and live broker support only after explicit product, policy, adapter, and validation work. |
255
+
256
+ ---
257
+
258
+ ## Documentation
259
+
260
+ | Document | Start here for |
261
+ | --- | --- |
262
+ | [Installation](installation.md) | Setup, update, GitHub-main install, MCP/service startup, and smoke checks. |
263
+ | [Docs index](docs/README.md) | Source-of-truth reading order and document ownership. |
264
+ | [Product direction](docs/product-direction.md) | Product thesis, target user posture, goals, non-goals, runtime defaults, and scope. |
265
+ | [Core concepts and rules](docs/core-concepts-and-rules.md) | Fast operating reference for planes, guardrails, roles, execution lifecycle, and research memory. |
266
+ | [Harness model](docs/harness.md) | Top-level harness model, components, guardrails, improvement, and naming rules. |
267
+ | [Roles, skills, and workflows](docs/roles-skills-and-workflows.md) | Fixed role roster, no-overlap handoffs, dispatch gates, skills, and strategy behavior. |
268
+ | [Safety policy and execution](docs/safety-policy-and-execution.md) | Permissions, approvals, idempotency, broker safety, secret wall, and required blocks. |
269
+ | [System architecture](docs/system-architecture.md) | Runtime planes, Django app boundaries, central DB ownership, models, and service use cases. |
270
+ | [Interfaces and surfaces](docs/interfaces-and-surfaces.md) | Product web, Admin, API, MCP, CLI, and generated wrapper behavior. |
271
+ | [Validation plan](docs/validation-and-test-plan.md) | Required tests, generated workspace smokes, MCP smokes, and routing scenarios. |
272
+
273
+ ---
274
+
275
+ ## Contributing
276
+
277
+ Contributions use Apache-2.0 with DCO sign-off. See
278
+ [CONTRIBUTING.md](CONTRIBUTING.md).
279
+
280
+ For source changes, start with the focused validation command for the touched
281
+ surface, then broaden as needed:
282
+
283
+ ```bash
284
+ python -m pytest
285
+ python manage.py check
286
+ python -m compileall tradingcodex_cli tradingcodex_service apps tests
287
+ ```
288
+
289
+ Harness, agent, workflow, MCP, policy, skill, hook, or template changes also
290
+ need generated-workspace validation. See
291
+ [docs/validation-and-test-plan.md](docs/validation-and-test-plan.md).
292
+
293
+ ---
294
+
295
+ ## License
296
+
297
+ TradingCodex is an Apache-2.0 open-core project.
298
+
299
+ Source code, generated workspace templates, and project documentation are
300
+ licensed under the Apache License, Version 2.0 unless marked otherwise. The
301
+ TradingCodex name, future logos, and official product marks are not granted by
302
+ the code license. See [LICENSE](LICENSE), [NOTICE](NOTICE), and
303
+ [TRADEMARKS.md](TRADEMARKS.md).
304
+
305
+ ## Star History
306
+
307
+ <a href="https://www.star-history.com/?repos=monarchjuno%2Ftradingcodex&type=date&legend=top-left">
308
+ <picture>
309
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=monarchjuno/tradingcodex&type=date&theme=dark&legend=top-left" />
310
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=monarchjuno/tradingcodex&type=date&legend=top-left" />
311
+ <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=monarchjuno/tradingcodex&type=date&legend=top-left" />
312
+ </picture>
313
+ </a>
@@ -0,0 +1,282 @@
1
+ > [!IMPORTANT]
2
+ > Codex agents setting up `monarchjuno/tradingcodex` for use must not run
3
+ > `git clone`. In the empty target workspace, run the packaged CLI:
4
+ > `uvx --refresh --from tradingcodex tcx attach . && ./tcx doctor`.
5
+ > Do not invent a default workspace path; ask the user where to attach
6
+ > TradingCodex unless they explicitly asked to use the current workspace.
7
+ > Clone this repository only when the user explicitly asks to develop,
8
+ > inspect, or modify TradingCodex source code.
9
+
10
+ # TradingCodex
11
+
12
+ <div align="center">
13
+ <a href="https://github.com/monarchjuno/tradingcodex/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/monarchjuno/tradingcodex/ci.yml?branch=main&label=CI"></a>
14
+ <a href="https://github.com/monarchjuno/tradingcodex/releases"><img alt="Release" src="https://img.shields.io/github/v/release/monarchjuno/tradingcodex?include_prereleases&label=release"></a>
15
+ <a href="https://pypi.org/project/tradingcodex/"><img alt="PyPI" src="https://img.shields.io/pypi/v/tradingcodex?label=PyPI"></a>
16
+ <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue"></a>
17
+ <img alt="Python" src="https://img.shields.io/badge/python-3.11--3.14-3776AB?logo=python&logoColor=white">
18
+ <img alt="Django" src="https://img.shields.io/badge/Django-5.2-092E20?logo=django&logoColor=white">
19
+ </div>
20
+
21
+ <div align="center">
22
+ <a href="https://github.com/monarchjuno/tradingcodex/stargazers"><img alt="GitHub Stars" src="https://img.shields.io/github/stars/monarchjuno/tradingcodex?style=social"></a>
23
+ <a href="https://github.com/monarchjuno/tradingcodex/network/members"><img alt="GitHub Forks" src="https://img.shields.io/github/forks/monarchjuno/tradingcodex?style=social"></a>
24
+ <a href="https://github.com/monarchjuno/tradingcodex/issues"><img alt="GitHub Issues" src="https://img.shields.io/github/issues/monarchjuno/tradingcodex"></a>
25
+ </div>
26
+
27
+ ### Codex-native investment work needs a harness, not a chat transcript.
28
+
29
+ TradingCodex is a local-first Python/Django trading harness for rigorous
30
+ Codex-assisted research, portfolio review, order-ticket checks, approvals, and
31
+ experimental paper/stub execution. Codex coordinates the work, Django owns the
32
+ durable service plane, and TradingCodex MCP is the executable boundary.
33
+
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
+
36
+ <p align="center">
37
+ <img src="assets/tradingcodex-banner.svg" alt="TradingCodex" width="100%">
38
+ </p>
39
+
40
+ ---
41
+
42
+ ## About
43
+
44
+ TradingCodex gives Codex a durable operating system for investment workflows:
45
+ fixed specialist roles, file-native research memory, source-aware handoffs,
46
+ policy and approval services, a central local ledger, and a local web dashboard
47
+ for review.
48
+
49
+ It is not an autonomous trading bot. Natural-language answers do not become
50
+ broker actions. Live broker adapters are not shipped in the initial core.
51
+
52
+ ---
53
+
54
+ ## Features
55
+
56
+ | Feature | Description |
57
+ | --- | --- |
58
+ | Codex-native harness | Generates a Codex workspace with `head-manager`, nine fixed subagents, role prompts, skills, hooks, project MCP config, and a local `./tcx` wrapper. |
59
+ | Django service plane | Web, Admin, API, CLI, MCP, and generated hooks call shared application services for policy, orders, approvals, portfolio, audit, integrations, and research indexing. |
60
+ | File-native research memory | Research markdown, role reports, source snapshots, versions, readiness labels, and handoff metadata stay readable in workspace files. |
61
+ | Fixed-role workflows | Specialist agents own bounded questions across fundamentals, technicals, news, macro, instruments, valuation, portfolio, risk, and execution. |
62
+ | MCP execution boundary | Tools are typed, role-scoped, policy-checked, approval-aware, idempotent, adapter-gated, and audited. |
63
+ | Local web dashboard | Review agents, skills, strategy skills, research markdown, Broker Center, External MCP Gate metadata, order tickets, portfolio state, and activity at `127.0.0.1:48267`. |
64
+ | Broker Center foundations | Register connector profiles, inspect capability profiles, run read-only paper sync, review instrument constraints, and reconcile portfolio state. |
65
+ | OrderTicket lifecycle | Draft, check, approve, submit, cancel, refresh, and inspect order tickets through central DB records and service-layer state transitions. |
66
+ | External MCP Gate | Import external MCP discovery metadata, classify tool risk, scope role access, and block unsafe raw execution or secret proxy paths by default. |
67
+ | Improvement loop | Quality gates, postmortems, optional skills, strategy skills, strict artifact checks, and generated workspace smoke tests turn process gaps into durable improvements. |
68
+
69
+ ---
70
+
71
+ ## Installation
72
+
73
+ ### Option 1 - Attach TradingCodex To The Current Workspace
74
+
75
+ Run this from the empty workspace where you want Codex agents to work:
76
+
77
+ ```bash
78
+ uvx --refresh --from tradingcodex tcx attach . && ./tcx doctor
79
+ ```
80
+
81
+ Then fully quit and restart Codex, open the generated workspace, and start a
82
+ new thread so project MCP config, prompts, skills, and hooks are loaded.
83
+
84
+ When TradingCodex MCP autostarts the local service, open:
85
+
86
+ ```text
87
+ http://127.0.0.1:48267/
88
+ ```
89
+
90
+ ### Option 2 - Install The CLI For Repeated Use
91
+
92
+ ```bash
93
+ uv tool install tradingcodex
94
+ uv tool update-shell
95
+ cd /path/to/target-workspace
96
+ tcx attach .
97
+ ./tcx doctor
98
+ ```
99
+
100
+ ### Option 3 - Install From GitHub Main
101
+
102
+ Use this when you need the current GitHub `main` source rather than the latest
103
+ PyPI package:
104
+
105
+ ```bash
106
+ uvx --refresh --from "tradingcodex @ git+https://github.com/monarchjuno/tradingcodex.git@main" tcx attach . && ./tcx doctor
107
+ ```
108
+
109
+ ### Option 4 - Develop TradingCodex Source
110
+
111
+ Clone this repository only for source development, inspection, or modification:
112
+
113
+ ```bash
114
+ git clone https://github.com/monarchjuno/tradingcodex.git
115
+ cd tradingcodex
116
+ python -m pytest
117
+ python manage.py check
118
+ ```
119
+
120
+ See [installation.md](installation.md) for update flows, installer-script
121
+ equivalents, MCP/service details, and smoke checks.
122
+
123
+ ---
124
+
125
+ ## What Sets TradingCodex Apart
126
+
127
+ TradingCodex competes on workflow discipline, local durability, and execution
128
+ boundaries rather than on black-box automation.
129
+
130
+ - Local-first: PyPI installs the CLI, Django service plane, generated workspace
131
+ templates, Admin/Web templates, static assets, and MCP gateway code.
132
+ - Codex-readable by default: research artifacts, skill bundles, role prompts,
133
+ policy exports, and generated indexes remain ordinary workspace files.
134
+ - Service-layer canonical: Web, Admin, API, CLI, MCP, and hooks do not fork
135
+ policy, order, approval, execution, portfolio, research, or audit behavior.
136
+ - Strong role model: one `head-manager` coordinates nine fixed specialist
137
+ subagents and consumes accepted artifacts instead of silently redoing roles.
138
+ - Deterministic executable boundary: every executable path follows
139
+ `principal -> capability -> policy -> schema -> approval/idempotency -> adapter -> audit`.
140
+ - Safety-first broker posture: live broker execution is excluded; paper, stub,
141
+ and reviewed test/sandbox validation remain experimental local harness flows.
142
+
143
+ ---
144
+
145
+ ## Workflow
146
+
147
+ TradingCodex is designed around handoffs:
148
+
149
+ ```text
150
+ evidence -> analysis -> valuation -> portfolio fit -> risk review
151
+ -> draft order -> approval receipt -> MCP submit_approved_order
152
+ -> adapter -> audit/postmortem
153
+ ```
154
+
155
+ The `head-manager` maps the request, dispatches the selected role team, waits
156
+ for accepted artifacts, preserves conflicts, and synthesizes only what the
157
+ workflow has earned. Weak, stale, missing, or out-of-scope upstream work returns
158
+ `revise`, `blocked`, or `waiting` instead of being patched over by another role.
159
+
160
+ ---
161
+
162
+ ## Role Roster
163
+
164
+ | Layer | Agent | Owns |
165
+ | --- | --- | --- |
166
+ | Main agent | `head-manager` | Intake, workflow dispatch, coordination, artifact acceptance, synthesis, and validation/audit status. |
167
+ | Research | `fundamental-analyst` | Business quality, financial statements, filings, economics, and fundamental risks. |
168
+ | Research | `technical-analyst` | Price action, trends, momentum, volume, volatility, and liquidity setup. |
169
+ | Research | `news-analyst` | Verified news, disclosures, event chronology, catalysts, and narrative change. |
170
+ | Market context | `macro-analyst` | Macro, rates, FX, commodities, liquidity, policy, and cross-asset transmission. |
171
+ | Market context | `instrument-analyst` | ETF/index, options, crypto public market structure, credit-signal boundary, and instrument mechanics. |
172
+ | Decision review | `valuation-analyst` | Valuation ranges, scenario assumptions, multiples, sensitivity, and decision-quality gaps. |
173
+ | Portfolio | `portfolio-manager` | Portfolio fit, sizing, concentration, liquidity, opportunity cost, and draft order-ticket readiness. |
174
+ | Risk | `risk-manager` | Downside, restricted-list checks, policy readiness, approval readiness, and approval receipts. |
175
+ | Execution | `execution-operator` | Approved paper/stub execution through TradingCodex MCP only. |
176
+
177
+ ---
178
+
179
+ ## Surfaces
180
+
181
+ | Surface | Role |
182
+ | --- | --- |
183
+ | Product web | Agents-first review dashboard for roles, skills, research markdown, Broker Center, External MCP Gate, order tickets, portfolio state, and activity. |
184
+ | Django Admin | Local/staff DB inspection for policy, orders, portfolio, MCP registry, workflows, integrations, and audit rows. |
185
+ | Django Ninja API | Typed local/staff REST and control endpoints that call service-layer use cases. |
186
+ | MCP | Agent/tool boundary with typed tools, role scopes, policy checks, approval checks, and audit. |
187
+ | CLI | Local operator commands plus generated workspace `./tcx` wrapper behavior. |
188
+
189
+ The baseline frontend uses Django templates, local static HTMX, and local
190
+ static Alpine. There is no Node, bundler, React, or frontend build step in the
191
+ core package.
192
+
193
+ ---
194
+
195
+ ## Safety Boundary
196
+
197
+ TradingCodex blocks or constrains:
198
+
199
+ - direct live broker requests
200
+ - raw broker API calls and raw external MCP execution proxies
201
+ - self-issued approvals
202
+ - restricted-symbol orders
203
+ - expired or payload-mismatched approval receipts
204
+ - duplicate approved-order submissions
205
+ - raw secrets in workspace files, prompts, API responses, MCP responses, audit
206
+ payloads, generated docs, or shell output
207
+ - unsupported live execution for crypto, macro, options, credit, FX, rates,
208
+ commodities, or other instruments
209
+
210
+ TradingCodex is research, workflow, and execution-guardrail tooling. It is not
211
+ financial, investment, legal, tax, or regulatory advice, and it does not
212
+ provide investment recommendations or guarantee returns.
213
+
214
+ ---
215
+
216
+ ## Roadmap
217
+
218
+ | Status | Milestone |
219
+ | --- | --- |
220
+ | 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. |
221
+ | Current `0.2.x` | Central-DB `OrderTicket` rewrite, Broker Center foundations, External MCP Gate, role-scoped MCP tools, paper/stub execution lifecycle, and Python `>=3.11,<3.15` support. |
222
+ | Next | Deeper validation scenarios, richer connector capability profiles, stronger generated-workspace smoke coverage, and improved artifact quality tooling. |
223
+ | Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and live broker support only after explicit product, policy, adapter, and validation work. |
224
+
225
+ ---
226
+
227
+ ## Documentation
228
+
229
+ | Document | Start here for |
230
+ | --- | --- |
231
+ | [Installation](installation.md) | Setup, update, GitHub-main install, MCP/service startup, and smoke checks. |
232
+ | [Docs index](docs/README.md) | Source-of-truth reading order and document ownership. |
233
+ | [Product direction](docs/product-direction.md) | Product thesis, target user posture, goals, non-goals, runtime defaults, and scope. |
234
+ | [Core concepts and rules](docs/core-concepts-and-rules.md) | Fast operating reference for planes, guardrails, roles, execution lifecycle, and research memory. |
235
+ | [Harness model](docs/harness.md) | Top-level harness model, components, guardrails, improvement, and naming rules. |
236
+ | [Roles, skills, and workflows](docs/roles-skills-and-workflows.md) | Fixed role roster, no-overlap handoffs, dispatch gates, skills, and strategy behavior. |
237
+ | [Safety policy and execution](docs/safety-policy-and-execution.md) | Permissions, approvals, idempotency, broker safety, secret wall, and required blocks. |
238
+ | [System architecture](docs/system-architecture.md) | Runtime planes, Django app boundaries, central DB ownership, models, and service use cases. |
239
+ | [Interfaces and surfaces](docs/interfaces-and-surfaces.md) | Product web, Admin, API, MCP, CLI, and generated wrapper behavior. |
240
+ | [Validation plan](docs/validation-and-test-plan.md) | Required tests, generated workspace smokes, MCP smokes, and routing scenarios. |
241
+
242
+ ---
243
+
244
+ ## Contributing
245
+
246
+ Contributions use Apache-2.0 with DCO sign-off. See
247
+ [CONTRIBUTING.md](CONTRIBUTING.md).
248
+
249
+ For source changes, start with the focused validation command for the touched
250
+ surface, then broaden as needed:
251
+
252
+ ```bash
253
+ python -m pytest
254
+ python manage.py check
255
+ python -m compileall tradingcodex_cli tradingcodex_service apps tests
256
+ ```
257
+
258
+ Harness, agent, workflow, MCP, policy, skill, hook, or template changes also
259
+ need generated-workspace validation. See
260
+ [docs/validation-and-test-plan.md](docs/validation-and-test-plan.md).
261
+
262
+ ---
263
+
264
+ ## License
265
+
266
+ TradingCodex is an Apache-2.0 open-core project.
267
+
268
+ Source code, generated workspace templates, and project documentation are
269
+ licensed under the Apache License, Version 2.0 unless marked otherwise. The
270
+ TradingCodex name, future logos, and official product marks are not granted by
271
+ the code license. See [LICENSE](LICENSE), [NOTICE](NOTICE), and
272
+ [TRADEMARKS.md](TRADEMARKS.md).
273
+
274
+ ## Star History
275
+
276
+ <a href="https://www.star-history.com/?repos=monarchjuno%2Ftradingcodex&type=date&legend=top-left">
277
+ <picture>
278
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=monarchjuno/tradingcodex&type=date&theme=dark&legend=top-left" />
279
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=monarchjuno/tradingcodex&type=date&legend=top-left" />
280
+ <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=monarchjuno/tradingcodex&type=date&legend=top-left" />
281
+ </picture>
282
+ </a>
@@ -31,13 +31,18 @@ def sync_builtin_principals_and_capabilities(tool_specs: Iterable[Any] | None =
31
31
  from tradingcodex_service.mcp_runtime import TOOL_SPECS
32
32
 
33
33
  tool_specs = TOOL_SPECS
34
+ tool_specs = tuple(tool_specs)
34
35
 
35
36
  for role in sorted(BUILTIN_ROLE_IDS):
36
37
  Principal.objects.get_or_create(principal_id=role, defaults={"role": role, "active": True})
37
38
 
39
+ expected_builtin_allows: set[tuple[str, str]] = set()
40
+ builtin_actions: set[str] = set()
38
41
  for tool in tool_specs:
39
42
  action = tool_capability_action(tool.name, tool.capability_required)
43
+ builtin_actions.add(action)
40
44
  for role in tool.allowed_roles:
45
+ expected_builtin_allows.add((role, action))
41
46
  principal, _ = Principal.objects.get_or_create(principal_id=role, defaults={"role": role, "active": True})
42
47
  if principal.role != role:
43
48
  principal.role = role
@@ -49,6 +54,15 @@ def sync_builtin_principals_and_capabilities(tool_specs: Iterable[Any] | None =
49
54
  defaults={"effect": "allow"},
50
55
  )
51
56
 
57
+ stale_builtin_allows = Capability.objects.filter(
58
+ principal__principal_id__in=BUILTIN_ROLE_IDS,
59
+ action__in=builtin_actions,
60
+ effect="allow",
61
+ )
62
+ for capability in stale_builtin_allows.select_related("principal"):
63
+ if (capability.principal.principal_id, capability.action) not in expected_builtin_allows:
64
+ capability.delete()
65
+
52
66
 
53
67
  def role_for_principal_id(principal_id: str) -> str:
54
68
  principal = Principal.objects.filter(principal_id=principal_id).first()
@@ -140,7 +140,7 @@ python3.11 -m venv /tmp/tcx-testpypi
140
140
  /tmp/tcx-testpypi/bin/pip install \
141
141
  --index-url https://test.pypi.org/simple/ \
142
142
  --extra-index-url https://pypi.org/simple/ \
143
- tradingcodex==0.2.1
143
+ tradingcodex==0.2.2
144
144
  rm -rf /tmp/tcx-testpypi-smoke
145
145
  mkdir -p /tmp/tcx-testpypi-smoke
146
146
  cd /tmp/tcx-testpypi-smoke
@@ -169,7 +169,7 @@ After the PyPI workflow completes:
169
169
 
170
170
  ```bash
171
171
  python3.11 -m venv /tmp/tcx-pypi
172
- /tmp/tcx-pypi/bin/pip install tradingcodex==0.2.1
172
+ /tmp/tcx-pypi/bin/pip install tradingcodex==0.2.2
173
173
  rm -rf /tmp/tcx-pypi-smoke
174
174
  mkdir -p /tmp/tcx-pypi-smoke
175
175
  cd /tmp/tcx-pypi-smoke
@@ -222,7 +222,8 @@ Use PEP 440 versions:
222
222
  - `0.2.0` for the OrderTicket rewrite contract after install, docs, DB
223
223
  migration, generated workspace smoke checks, and release e2e checks are stable
224
224
  - `0.2.1` for Python `>=3.11,<3.15` support and clone-free setup guidance
225
- - later patch releases for compatible fixes after `0.2.1`
225
+ - `0.2.2` for dashboard startup behavior fixes after `0.2.1`
226
+ - later patch releases for compatible fixes after `0.2.2`
226
227
  - pre-releases such as `0.3.0a1`, `0.3.0b1`, or `0.3.0rc1` when preparing
227
228
  the next minor contract
228
229