tradingcodex 1.2.1__tar.gz → 2.1.0__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 (417) hide show
  1. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/CHANGELOG.md +38 -0
  2. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/PKG-INFO +1 -1
  3. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/README.md +10 -10
  4. tradingcodex-1.2.1/docs/system-architecture.md → tradingcodex-2.1.0/docs/architecture.md +104 -43
  5. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/codex-native-orchestration.md +12 -7
  6. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/data-sources-and-openbb.md +28 -5
  7. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/decision-memory.md +41 -13
  8. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/deployment.md +22 -16
  9. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/generated-workspaces.md +45 -32
  10. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/interfaces-and-surfaces.md +33 -23
  11. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/investment-brain-plugins.md +1 -1
  12. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/product-direction.md +1 -1
  13. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/research-memory-and-artifacts.md +129 -165
  14. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/roles-skills-and-workflows.md +66 -18
  15. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/safety-policy-and-execution.md +1 -1
  16. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/validation-and-test-plan.md +57 -29
  17. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/App.tsx +6 -3
  18. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/ViewerShell.tsx +3 -2
  19. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/domain.ts +9 -8
  20. tradingcodex-2.1.0/frontend/src/features/EpisodesPage.tsx +105 -0
  21. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/features/LibraryPage.tsx +13 -5
  22. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/navigation.js +3 -3
  23. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/navigation.test.js +18 -4
  24. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/styles.css +16 -0
  25. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/installation.md +14 -8
  26. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_artifact_authentication.py +228 -48
  27. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_artifact_catalog.py +9 -9
  28. tradingcodex-2.1.0/tests/test_artifact_v2.py +829 -0
  29. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_build_hook.py +38 -3
  30. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_calculation_runner.py +31 -28
  31. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_clean_v1_cli_audit.py +3 -3
  32. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_codex_cli_compat.py +8 -4
  33. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_codex_native_orchestration.py +366 -110
  34. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_datasets.py +51 -1
  35. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_decision_memory_core.py +46 -43
  36. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_dev_bootstrap.py +2 -2
  37. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_dynamic_artifact_quality.py +89 -100
  38. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_e2e_user_scenarios.py +91 -83
  39. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_investment_brain_prompt_layers.py +39 -20
  40. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_investment_brain_provenance.py +42 -41
  41. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_platform_runtime.py +23 -5
  42. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_release_contract.py +8 -8
  43. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_research_forecast_surfaces.py +6 -3
  44. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_security_invariants.py +60 -20
  45. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_source_snapshot_agent_contract.py +25 -1
  46. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_viewer.py +33 -1
  47. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex.egg-info/PKG-INFO +1 -1
  48. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex.egg-info/SOURCES.txt +15 -8
  49. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/bootstrap.py +4 -1
  50. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/decision.py +32 -10
  51. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/doctor.py +53 -4
  52. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/orders.py +10 -2
  53. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/research.py +32 -65
  54. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/utils.py +1 -0
  55. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/generator.py +45 -10
  56. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/startup_status.py +5 -1
  57. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/api.py +81 -68
  58. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/agents.py +6 -1
  59. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/artifact_bindings.py +114 -8
  60. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/artifact_catalog.py +39 -5
  61. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/artifact_quality.py +102 -0
  62. tradingcodex-2.1.0/tradingcodex_service/application/artifact_v2.py +571 -0
  63. tradingcodex-2.1.0/tradingcodex_service/application/decision_episodes.py +226 -0
  64. tradingcodex-2.1.0/tradingcodex_service/application/judgment_postmortems.py +370 -0
  65. tradingcodex-2.1.0/tradingcodex_service/application/judgments.py +349 -0
  66. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/postmortems.py +17 -5
  67. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/research.py +132 -24
  68. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/viewer.py +17 -2
  69. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/mcp_runtime.py +362 -235
  70. tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/allPaths-DTYZmYwK.js +1 -0
  71. tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/allPathsLoader-DcM0tTg5.js +2 -0
  72. tradingcodex-1.2.1/tradingcodex_service/static/tradingcodex_web/assets/index-y2v9zCLQ.css → tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/index-Bb8LR_4w.css +1 -1
  73. tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/index-C4QYjUvS.js +9 -0
  74. tradingcodex-1.2.1/tradingcodex_service/static/tradingcodex_web/assets/paths-CoispWSv.js → tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/paths-BOuWfKow.js +1 -1
  75. tradingcodex-1.2.1/tradingcodex_service/static/tradingcodex_web/assets/paths-BDuITqPr.js → tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/paths-CI3Rjsyg.js +1 -1
  76. tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/splitPathsBySizeLoader-B1K4iYsq.js +2 -0
  77. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/static/tradingcodex_web/index.html +2 -2
  78. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/urls.py +2 -0
  79. tradingcodex-2.1.0/tradingcodex_service/version.py +1 -0
  80. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/viewer_api.py +22 -0
  81. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/config.toml +0 -3
  82. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +3 -0
  83. tradingcodex-2.1.0/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/fixed-role.md +28 -0
  84. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +7 -0
  85. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/AGENTS.md +10 -7
  86. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +2 -2
  87. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +1 -1
  88. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +2 -2
  89. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +2 -2
  90. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +2 -2
  91. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +2 -2
  92. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/SKILL.md +17 -17
  93. tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +148 -0
  94. tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/playbooks/research-framing.md +49 -0
  95. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/SKILL.md +9 -8
  96. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/SKILL.md +1 -3
  97. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/SKILL.md +19 -9
  98. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/SKILL.md +6 -4
  99. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/SKILL.md +3 -5
  100. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/SKILL.md +1 -3
  101. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/SKILL.md +1 -4
  102. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/SKILL.md +1 -3
  103. tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +67 -0
  104. tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +62 -0
  105. tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +6 -0
  106. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/SKILL.md +24 -6
  107. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/SKILL.md +6 -4
  108. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/SKILL.md +15 -9
  109. tradingcodex-1.2.1/tradingcodex_service/static/tradingcodex_web/assets/allPaths-DJ5oy6Ot.js +0 -1
  110. tradingcodex-1.2.1/tradingcodex_service/static/tradingcodex_web/assets/allPathsLoader-CRlwLu1z.js +0 -2
  111. tradingcodex-1.2.1/tradingcodex_service/static/tradingcodex_web/assets/index-c5e0ZsDr.js +0 -9
  112. tradingcodex-1.2.1/tradingcodex_service/static/tradingcodex_web/assets/splitPathsBySizeLoader-x57jFwA3.js +0 -2
  113. tradingcodex-1.2.1/tradingcodex_service/version.py +0 -1
  114. tradingcodex-1.2.1/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/fixed-role.md +0 -16
  115. tradingcodex-1.2.1/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +0 -161
  116. tradingcodex-1.2.1/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +0 -70
  117. tradingcodex-1.2.1/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +0 -41
  118. tradingcodex-1.2.1/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +0 -6
  119. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/CONTRIBUTING.md +0 -0
  120. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/LICENSE +0 -0
  121. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/MANIFEST.in +0 -0
  122. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/NOTICE +0 -0
  123. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/README.md +0 -0
  124. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/TRADEMARKS.md +0 -0
  125. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/__init__.py +0 -0
  126. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/audit/__init__.py +0 -0
  127. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/audit/admin.py +0 -0
  128. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/audit/apps.py +0 -0
  129. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/audit/migrations/0001_v1_initial.py +0 -0
  130. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/audit/migrations/__init__.py +0 -0
  131. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/audit/models.py +0 -0
  132. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/harness/__init__.py +0 -0
  133. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/harness/admin.py +0 -0
  134. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/harness/apps.py +0 -0
  135. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/harness/migrations/0001_v1_initial.py +0 -0
  136. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/harness/migrations/__init__.py +0 -0
  137. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/harness/models.py +0 -0
  138. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/harness/templatetags/__init__.py +0 -0
  139. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/integrations/__init__.py +0 -0
  140. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/integrations/admin.py +0 -0
  141. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/integrations/apps.py +0 -0
  142. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/integrations/migrations/0001_v1_initial.py +0 -0
  143. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/integrations/migrations/__init__.py +0 -0
  144. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/integrations/models.py +0 -0
  145. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/__init__.py +0 -0
  146. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/admin.py +0 -0
  147. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/apps.py +0 -0
  148. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/migrations/0001_v1_initial.py +0 -0
  149. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/migrations/0002_remove_external_mcp_gate.py +0 -0
  150. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/migrations/__init__.py +0 -0
  151. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/models.py +0 -0
  152. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/mcp/services.py +0 -0
  153. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/orders/__init__.py +0 -0
  154. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/orders/admin.py +0 -0
  155. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/orders/apps.py +0 -0
  156. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/orders/migrations/0001_v1_initial.py +0 -0
  157. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/orders/migrations/__init__.py +0 -0
  158. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/orders/models.py +0 -0
  159. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/orders/services.py +0 -0
  160. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/policy/__init__.py +0 -0
  161. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/policy/admin.py +0 -0
  162. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/policy/apps.py +0 -0
  163. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/policy/migrations/0001_v1_initial.py +0 -0
  164. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/policy/migrations/__init__.py +0 -0
  165. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/policy/models.py +0 -0
  166. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/policy/services.py +0 -0
  167. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/portfolio/__init__.py +0 -0
  168. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/portfolio/admin.py +0 -0
  169. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/portfolio/apps.py +0 -0
  170. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/portfolio/migrations/0001_v1_initial.py +0 -0
  171. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/portfolio/migrations/__init__.py +0 -0
  172. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/apps/portfolio/models.py +0 -0
  173. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/assets/tradingcodex-banner-v1.png +0 -0
  174. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/assets/tradingcodex-banner-v2.png +0 -0
  175. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/assets/tradingcodex-banner-v3.png +0 -0
  176. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/assets/tradingcodex-banner.svg +0 -0
  177. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/financial-workflow-references.md +0 -0
  178. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/guardrails.md +0 -0
  179. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/harness.md +0 -0
  180. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/improvement-loop.md +0 -0
  181. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/knowledge-wikis.md +0 -0
  182. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/licensing-and-commercialization.md +0 -0
  183. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/release-readiness.md +0 -0
  184. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/docs/user-facing-skills.md +0 -0
  185. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/index.html +0 -0
  186. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/package-lock.json +0 -0
  187. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/package.json +0 -0
  188. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/api.ts +0 -0
  189. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/features/SystemPage.tsx +0 -0
  190. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/features/WikiPage.tsx +0 -0
  191. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/main.tsx +0 -0
  192. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/ui.tsx +0 -0
  193. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/src/viewer-data.js +0 -0
  194. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/tsconfig.json +0 -0
  195. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/frontend/vite.config.ts +0 -0
  196. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/install.sh +0 -0
  197. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/pyproject.toml +0 -0
  198. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/setup.cfg +0 -0
  199. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_brain_skill.py +0 -0
  200. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_broker_center_prd.py +0 -0
  201. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_build_contract_metadata.py +0 -0
  202. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_build_turn_grant.py +0 -0
  203. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_codex_capabilities.py +0 -0
  204. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_codex_cli_contract.py +0 -0
  205. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_evaluation_lab_hardening.py +0 -0
  206. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_evaluation_profiles.py +0 -0
  207. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_guidebook_contract.py +0 -0
  208. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_investment_analysis.py +0 -0
  209. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_investment_brain_cli.py +0 -0
  210. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_investment_brain_registry.py +0 -0
  211. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_investor_context.py +0 -0
  212. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_knowledge_wikis.py +0 -0
  213. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_mcp_broker_release_health.py +0 -0
  214. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_native_execution_gateway.py +0 -0
  215. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_order_turn_grant.py +0 -0
  216. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_provider_source_approval.py +0 -0
  217. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_research_object_catalog.py +0 -0
  218. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_research_objects.py +0 -0
  219. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_research_spec_profiles.py +0 -0
  220. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_runtime_paths.py +0 -0
  221. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_runtime_profile.py +0 -0
  222. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_skill_runtime_boundaries.py +0 -0
  223. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_v1_migrations.py +0 -0
  224. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_v1_state_integrity.py +0 -0
  225. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tests/test_workspace_git_contract.py +0 -0
  226. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex.egg-info/dependency_links.txt +0 -0
  227. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex.egg-info/entry_points.txt +0 -0
  228. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex.egg-info/requires.txt +0 -0
  229. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex.egg-info/top_level.txt +0 -0
  230. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/__init__.py +0 -0
  231. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/__main__.py +0 -0
  232. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/calculation-runtime-lock.json +0 -0
  233. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/calculation-runtime-requirements.txt +0 -0
  234. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/calculation_runner.py +0 -0
  235. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/__init__.py +0 -0
  236. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/build.py +0 -0
  237. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/connectors.py +0 -0
  238. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/data_sources.py +0 -0
  239. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/db.py +0 -0
  240. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/evaluation.py +0 -0
  241. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/forecast.py +0 -0
  242. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/home.py +0 -0
  243. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/investment_brains.py +0 -0
  244. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/investor_context.py +0 -0
  245. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/mcp.py +0 -0
  246. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/policy.py +0 -0
  247. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/profile.py +0 -0
  248. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/skills.py +0 -0
  249. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/strategies.py +0 -0
  250. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/subagents.py +0 -0
  251. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/wikis.py +0 -0
  252. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/workflow.py +0 -0
  253. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/commands/workspaces.py +0 -0
  254. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/mcp_stdio.py +0 -0
  255. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/package_source.py +0 -0
  256. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/service_autostart.py +0 -0
  257. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_cli/versioning.py +0 -0
  258. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/__init__.py +0 -0
  259. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/admin.py +0 -0
  260. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/__init__.py +0 -0
  261. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/analysis_runs.py +0 -0
  262. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/audit.py +0 -0
  263. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/brokers.py +0 -0
  264. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/build_gateway.py +0 -0
  265. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/calculations.py +0 -0
  266. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/codex_capabilities.py +0 -0
  267. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/common.py +0 -0
  268. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/data_sources.py +0 -0
  269. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/datasets.py +0 -0
  270. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/decision_packages.py +0 -0
  271. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/evaluation_lab.py +0 -0
  272. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/execution_gateway.py +0 -0
  273. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/forecasting.py +0 -0
  274. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/git_subprocess.py +0 -0
  275. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/harness.py +0 -0
  276. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/health.py +0 -0
  277. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/investment_analysis.py +0 -0
  278. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/investment_brains.py +0 -0
  279. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/investor_context.py +0 -0
  280. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/knowledge_wikis.py +0 -0
  281. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/managed_package_sources.py +0 -0
  282. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/markdown_preview.py +0 -0
  283. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/operator_authority.py +0 -0
  284. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/orders.py +0 -0
  285. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/policy.py +0 -0
  286. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/portfolio.py +0 -0
  287. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/research_object_catalog.py +0 -0
  288. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/research_objects.py +0 -0
  289. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/research_specs.py +0 -0
  290. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/runtime.py +0 -0
  291. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/skill_invocations.py +0 -0
  292. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/source_snapshots.py +0 -0
  293. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/wiki_viewer.py +0 -0
  294. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/workspace_git.py +0 -0
  295. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/application/workspaces.py +0 -0
  296. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/asgi.py +0 -0
  297. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/log_safety.py +0 -0
  298. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/runtime_profile.py +0 -0
  299. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/settings.py +0 -0
  300. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
  301. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/web.py +0 -0
  302. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/tradingcodex_service/wsgi.py +0 -0
  303. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/__init__.py +0 -0
  304. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
  305. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
  306. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/audit/module.json +0 -0
  307. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
  308. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
  309. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
  310. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
  311. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
  312. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx +0 -0
  313. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx-calc +0 -0
  314. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx-calc.cmd +0 -0
  315. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx.cmd +0 -0
  316. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/module.json +0 -0
  317. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
  318. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
  319. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
  320. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
  321. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
  322. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
  323. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
  324. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
  325. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
  326. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
  327. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
  328. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
  329. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
  330. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
  331. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
  332. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
  333. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +0 -0
  334. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
  335. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
  336. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
  337. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/module.json +0 -0
  338. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
  339. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
  340. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
  341. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
  342. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
  343. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
  344. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
  345. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
  346. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
  347. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
  348. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
  349. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
  350. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
  351. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
  352. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
  353. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
  354. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
  355. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
  356. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/module.json +0 -0
  357. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/paper-trading/module.json +0 -0
  358. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/SKILL.md +0 -0
  359. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/agents/openai.yaml +0 -0
  360. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/SKILL.md +0 -0
  361. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/agents/openai.yaml +0 -0
  362. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/references/bundle-contract.md +0 -0
  363. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -0
  364. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
  365. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +0 -0
  366. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/agents/openai.yaml +0 -0
  367. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/agents/openai.yaml +0 -0
  368. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/SKILL.md +0 -0
  369. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/agents/openai.yaml +0 -0
  370. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/SKILL.md +0 -0
  371. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/agents/openai.yaml +0 -0
  372. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/SKILL.md +0 -0
  373. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/agents/openai.yaml +0 -0
  374. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/SKILL.md +0 -0
  375. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/agents/openai.yaml +0 -0
  376. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
  377. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
  378. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/SKILL.md +0 -0
  379. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/agents/openai.yaml +0 -0
  380. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/SKILL.md +0 -0
  381. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/agents/openai.yaml +0 -0
  382. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/references/bundle-contract.md +0 -0
  383. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
  384. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/agents/openai.yaml +0 -0
  385. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/agents/openai.yaml +0 -0
  386. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/agents/openai.yaml +0 -0
  387. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/agents/openai.yaml +0 -0
  388. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/agents/openai.yaml +0 -0
  389. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/SKILL.md +0 -0
  390. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/agents/openai.yaml +0 -0
  391. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/agents/openai.yaml +0 -0
  392. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/SKILL.md +0 -0
  393. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/agents/openai.yaml +0 -0
  394. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/agents/openai.yaml +0 -0
  395. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/agents/openai.yaml +0 -0
  396. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/SKILL.md +0 -0
  397. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/agents/openai.yaml +0 -0
  398. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/agents/openai.yaml +0 -0
  399. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/SKILL.md +0 -0
  400. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/agents/openai.yaml +0 -0
  401. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/data-runtime.md +0 -0
  402. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/finance-methods.md +0 -0
  403. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/SKILL.md +0 -0
  404. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/agents/openai.yaml +0 -0
  405. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/SKILL.md +0 -0
  406. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/agents/openai.yaml +0 -0
  407. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/SKILL.md +0 -0
  408. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/agents/openai.yaml +0 -0
  409. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/agents/openai.yaml +0 -0
  410. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/references/openbb-mcp.md +0 -0
  411. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/agents/openai.yaml +0 -0
  412. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/agents/openai.yaml +0 -0
  413. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/module.json +0 -0
  414. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
  415. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
  416. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
  417. {tradingcodex-1.2.1 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
@@ -2,6 +2,44 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2.1.0 - 2026-07-23
6
+
7
+ - Ship the complete compact Artifact v2, receipt v4, canonical synthesis,
8
+ JudgmentSnapshot/User Adoption, and Decision Episode vertical slice across
9
+ CLI, MCP, REST, generated workspaces, and the read-only Viewer.
10
+ - Make outcome-blind process review ordering enforceable, bind JudgmentSnapshot
11
+ Forecast posture to the authenticated synthesis, and retain durable blocked
12
+ abstentions without granting action authority.
13
+ - Fail closed on unauthenticated run-bound cards and Episode lineage, expose
14
+ locked process reviews and bounded lifecycle records in Episodes, reject
15
+ unknown nested REST envelope fields, and document the explicit v1-to-v2
16
+ workspace transition.
17
+
18
+ ## 2.0.0 - 2026-07-23
19
+
20
+ - Replace the public research-artifact write and read contracts with compact v2
21
+ envelopes, two-axis readiness, receipt v4 provenance, and one canonical Head
22
+ Manager synthesis identity per analysis run while preserving authenticated v1
23
+ files and receipts byte-for-byte through an explicit v1-to-v2 update path.
24
+ - Add evidence-only JudgmentSnapshots, explicit terminal-recorded User Adoption
25
+ events, judgment-bound postmortems, and read-only Decision Episode projections
26
+ across MCP, API, CLI, and the workspace Viewer.
27
+ - Make final Head Manager answers self-contained and decision-focused; durable
28
+ reports retain full provenance and are linked as supporting records instead of
29
+ being restated as a table of contents in chat.
30
+
31
+ ## 1.2.2 - 2026-07-22
32
+
33
+ - Validate Codex CLI 0.145.0 as the current reference while retaining 0.144.4
34
+ as the compatibility floor; adopt its stable MultiAgent V2 schema by leaving
35
+ nesting and concurrency to native Codex while preserving strict config,
36
+ permission, hook, MCP, and role-model projection checks.
37
+ - Restore the Head Manager's generated `export_dataset_csv` projection by
38
+ registering its canonical MCP schema, role boundary, and export capability,
39
+ with a generated-config-to-registry regression check.
40
+ - Stop automated GitHub Release notes at the next changelog heading so a
41
+ release contains only its matching version section.
42
+
5
43
  ## 1.2.1 - 2026-07-21
6
44
 
7
45
  - Create or refresh the GitHub Release from the exact verified distributions
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tradingcodex
3
- Version: 1.2.1
3
+ Version: 2.1.0
4
4
  Summary: Local-first investment operating system for Codex-native research and service-gated execution.
5
5
  Author: TradingCodex Authors
6
6
  License-Expression: Apache-2.0
@@ -5,9 +5,9 @@ the reasons behind it; it is not a second user guide or a source-file index.
5
5
 
6
6
  - New users start with the [User Guide](https://monarchjuno.github.io/tradingcodex/).
7
7
  - Operators start with [installation.md](../installation.md).
8
- - Maintainers start with [AGENTS.md](../AGENTS.md) and
9
- [openwiki/quickstart.md](../openwiki/quickstart.md), then read the owning page
10
- below before changing behavior.
8
+ - Maintainers start with [AGENTS.md](../AGENTS.md) and the codebase
9
+ [Architecture](architecture.md), then read the owning page below before
10
+ changing behavior.
11
11
 
12
12
  ## Documentation Ownership
13
13
 
@@ -17,7 +17,6 @@ the reasons behind it; it is not a second user guide or a source-file index.
17
17
  | `installation.md` | Setup, update, and operator recovery. |
18
18
  | `docs/` | Canonical product behavior, architecture, safety, and rationale. |
19
19
  | `guidebook/` | Short task-first instructions for end users. |
20
- | `openwiki/` | Source ownership and validation routing for coding agents. |
21
20
  | `AGENTS.md` | Repository-wide development rules. |
22
21
 
23
22
  Keep a concept in one owning document and link to it elsewhere. Update another
@@ -29,14 +28,14 @@ into every layer. If two layers disagree, fix the owning `docs/` page first.
29
28
  | Goal | Canonical page | Useful follow-up |
30
29
  | --- | --- | --- |
31
30
  | Understand the product and its design posture | [Product Direction](product-direction.md) | [Harness](harness.md) |
32
- | Understand runtime and source ownership | [System Architecture](system-architecture.md) | [Interfaces And Surfaces](interfaces-and-surfaces.md) |
31
+ | Understand runtime and source ownership | [Architecture](architecture.md) | [Interfaces And Surfaces](interfaces-and-surfaces.md) |
33
32
  | Change Head Manager, roles, skills, or research flow | [Roles, Skills, And Workflows](roles-skills-and-workflows.md) | [Codex-Native Orchestration](codex-native-orchestration.md) |
34
33
  | Work with research evidence, datasets, and artifacts | [Research Memory And Artifacts](research-memory-and-artifacts.md) | [Data Sources And OpenBB](data-sources-and-openbb.md) |
35
34
  | Work with reusable company, product, technology, science, industry, or value-chain knowledge | [Knowledge Wikis](knowledge-wikis.md) | [Investment Brain Plugins](investment-brain-plugins.md) |
36
35
  | Understand saved decisions and improvement | [Decision Memory](decision-memory.md) | [Improvement Loop](improvement-loop.md) |
37
36
  | Change policy, approvals, brokers, or execution | [Safety, Policy, And Execution](safety-policy-and-execution.md) | [Guardrails](guardrails.md) |
38
37
  | Change attach/update or generated workspace files | [Generated Workspaces](generated-workspaces.md) | [Deployment](deployment.md) |
39
- | Change the viewer, API, MCP, Admin, or CLI | [Interfaces And Surfaces](interfaces-and-surfaces.md) | [System Architecture](system-architecture.md) |
38
+ | Change the viewer, API, MCP, Admin, or CLI | [Interfaces And Surfaces](interfaces-and-surfaces.md) | [Architecture](architecture.md) |
40
39
  | Choose or verify validation | [Validation And Test Plan](validation-and-test-plan.md) | [Release Readiness](release-readiness.md) |
41
40
 
42
41
  ## Reference By Domain
@@ -70,8 +69,8 @@ into every layer. If two layers disagree, fix the owning `docs/` page first.
70
69
  sensitive-action, approval, broker, secret, and audit boundary.
71
70
  - [Guardrails](guardrails.md) — guidance, enforcement, and information-barrier
72
71
  taxonomy.
73
- - [System Architecture](system-architecture.md) — runtime planes, central DB,
74
- app boundaries, and service ownership.
72
+ - [Architecture](architecture.md) — codebase map, consequential request flow,
73
+ runtime planes, central DB, app boundaries, and service ownership.
75
74
  - [Interfaces And Surfaces](interfaces-and-surfaces.md) — viewer, Admin, API,
76
75
  MCP, CLI, and generated wrapper boundaries.
77
76
  - [Generated Workspaces](generated-workspaces.md) — attach/update, generated
@@ -94,8 +93,9 @@ into every layer. If two layers disagree, fix the owning `docs/` page first.
94
93
 
95
94
  - Document durable behavior, not temporary implementation plans or completed
96
95
  checklists; Git history preserves those.
97
- - Prefer links to repeated explanations. `openwiki/` should contain paths and
98
- checks, not a second architecture narrative.
96
+ - Prefer links to repeated explanations. Keep the codebase map in
97
+ `architecture.md` and validation routing in `AGENTS.md`, not in parallel
98
+ documentation layers.
99
99
  - Keep user procedures in `guidebook/`; keep internal source paths out of it.
100
100
  - Keep product copy in English unless a reviewed localization layer is added.
101
101
  - A behavior change updates its owning page in the same change. A code-only
@@ -1,7 +1,10 @@
1
- # System Architecture
1
+ # TradingCodex Architecture
2
2
 
3
- This document owns TradingCodex architecture, Django app boundaries, central DB
4
- ownership, service-layer use cases, runtime planes, and core model ownership.
3
+ This document is the codebase map and canonical architecture reference for
4
+ TradingCodex. It owns runtime and dependency boundaries, source and state
5
+ ownership, Django app boundaries, central DB ownership, service-layer use
6
+ cases, and core model ownership. Repository-wide development constraints and
7
+ the minimum validation route remain in [`AGENTS.md`](../AGENTS.md).
5
8
 
6
9
  ## Architecture Summary
7
10
 
@@ -31,43 +34,82 @@ optional role skills, and `strategy-*` skills are managed user overlays. The
31
34
  harness coordinates those layers; it is not the product definition and an
32
35
  overlay never replaces the kernel.
33
36
 
34
- ## Source Tree
37
+ ## Model-Aware Consequence Flow
38
+
39
+ The Codex agent changing this repository and agents running inside a
40
+ TradingCodex workspace may use the same GPT/Codex model family. The
41
+ implementing agent's own likely interpretation and behavior are therefore a
42
+ useful design signal, especially when reviewing prompts, skills, tool exposure,
43
+ and delegation. They are not proof of identical runtime behavior: system
44
+ instructions, context, enabled capabilities, permissions, model versions, and
45
+ reasoning settings may differ.
46
+
47
+ Trace consequential behavior end to end before adding or changing harness
48
+ machinery:
49
+
50
+ ```text
51
+ user request
52
+ -> model interpretation and chosen response path
53
+ -> prompt, skill, and available-context guidance
54
+ -> tool or subagent selection
55
+ -> TradingCodex interface and application-service boundary
56
+ -> workspace artifact, durable record, or external action
57
+ -> safety, audit, latency, context, and user-visible consequences
58
+ ```
59
+
60
+ Fix behavior at the earliest canonical layer that causes it. Do not add a
61
+ router, validator, retry loop, registry, or state machine merely to compensate
62
+ for behavior native Codex already handles or that clearer context and guidance
63
+ can resolve. For consequential prompt, skill, tool, or orchestration changes,
64
+ observe the actual generated TradingCodex harness; unit tests and assumptions
65
+ about the model cover deterministic contracts but do not replace runtime
66
+ evidence.
67
+
68
+ ## Codebase Map
69
+
70
+ Use this map to find the canonical owner, then inspect that owner, its callers,
71
+ and focused tests. It intentionally lists stable directories and entrypoints
72
+ rather than every file.
73
+
74
+ | Path | Ownership |
75
+ | --- | --- |
76
+ | `tradingcodex_service/application/` | Canonical durable use cases, state transitions, provenance, projections, and sensitive-action gates. |
77
+ | `apps/*/models.py`, `apps/*/admin.py` | Central Django ledger models, migrations, and local Admin inspection. Thin `services.py` modules re-export canonical application services where required. |
78
+ | `tradingcodex_service/api.py`, `viewer_api.py`, `web.py` | Local API and read-only web surfaces; these call application services and own no parallel business logic. |
79
+ | `tradingcodex_service/mcp_runtime.py` | TradingCodex MCP definitions, role visibility, validation, and dispatch into application services. |
80
+ | `tradingcodex_cli/` | Attach/update, generated-workspace lifecycle, operator commands, service startup, and the isolated calculation runner. |
81
+ | `workspace_templates/modules/*/files/` | Source templates for projected prompts, skills, agents, hooks, policies, launchers, and workspace contracts. Generated copies are not edited directly. |
82
+ | `frontend/` | Maintainer-only React/TypeScript viewer source. |
83
+ | `tradingcodex_service/static/tradingcodex_web/` | Deterministic generated frontend build served by Django; never hand-edited. |
84
+ | `tests/` | Unit, contract, safety, generated-workspace, platform, and native Codex validation. |
85
+ | `docs/` | Canonical product behavior, architecture, safety, workflow, validation, and release rationale. |
86
+ | `guidebook/` | Concise, task-first user instructions. |
87
+ | `README.md`, `installation.md`, `install.sh` | Product entrypoint, installation contract, and source-development bootstrap. |
88
+
89
+ ### Domain Owners
90
+
91
+ | Concern | Primary source |
92
+ | --- | --- |
93
+ | Runtime home, workspace identity, and service lifecycle | `tradingcodex_service/application/runtime.py`, `workspaces.py`, `health.py`; `tradingcodex_cli/generator.py`, `startup_status.py` |
94
+ | Agent roles, skills, analysis runs, and harness display | `tradingcodex_service/application/agents.py`, `analysis_runs.py`, `harness.py`; `workspace_templates/modules/` |
95
+ | File-native research, datasets, calculations, and provenance | `tradingcodex_service/application/artifact_v2.py`, `research.py`, `research_objects.py`, `datasets.py`, `calculations.py`, `artifact_bindings.py`, `artifact_catalog.py` |
96
+ | Judgments, adoption, forecasts, postmortems, and episode projection | `tradingcodex_service/application/judgments.py`, `decision_episodes.py`, `judgment_postmortems.py`, `forecasting.py`; `decision_packages.py` and `postmortems.py` remain legacy read paths |
97
+ | Knowledge Wikis and managed packages | `tradingcodex_service/application/knowledge_wikis.py`, `managed_package_sources.py`, `wiki_viewer.py` |
98
+ | Policy, orders, approvals, brokers, and final execution | `tradingcodex_service/application/policy.py`, `orders.py`, `execution_gateway.py`, `brokers.py`, plus the corresponding `apps/` models |
99
+ | Viewer, API, Admin, CLI, and MCP surfaces | Interface entrypoints above; all durable behavior remains in `application/` |
100
+ | Generated workspace projection | `tradingcodex_cli/generator.py`, module manifests, and `workspace_templates/modules/*/files/` |
101
+
102
+ ## Conceptual Source Tree
35
103
 
36
104
  ```text
105
+ README.md / installation.md / install.sh
37
106
  pyproject.toml
38
107
  manage.py
39
108
  frontend/
40
- package.json
41
109
  src/
42
- vite.config.ts
43
110
  tradingcodex_service/
44
- static/tradingcodex_web/
45
111
  application/
46
- brokers.py
47
- build_gateway.py
48
- common.py
49
- execution_gateway.py
50
- runtime.py
51
- orders.py
52
- portfolio.py
53
- policy.py
54
- research.py
55
- research_objects.py
56
- research_object_catalog.py
57
- datasets.py
58
- calculations.py
59
- research_specs.py
60
- investment_analysis.py
61
- forecasting.py
62
- evaluation_lab.py
63
- audit.py
64
- harness.py
65
- analysis_runs.py
66
- investment_brains.py
67
- viewer.py
68
- workspace_git.py
69
- workspaces.py
70
- health.py
112
+ static/tradingcodex_web/ # generated frontend build
71
113
  tradingcodex_cli/
72
114
  commands/
73
115
  apps/
@@ -78,16 +120,16 @@ apps/
78
120
  orders/
79
121
  policy/
80
122
  portfolio/
81
- research/
82
- workflows/
83
123
  workspace_templates/
124
+ modules/
84
125
  tests/
85
126
  docs/
127
+ guidebook/
86
128
  ```
87
129
 
88
130
  The source tree above is conceptual. Large service modules may be refactored
89
131
  into packages under `tradingcodex_service/application/` when that improves
90
- maintainability. For the v1 release contract, implementation should split by
132
+ maintainability. For the current release contract, implementation should split by
91
133
  durable service use case rather than by interface surface. Web, API, CLI, MCP,
92
134
  and generated hooks should continue calling the
93
135
  same application services instead of growing separate policy, execution,
@@ -102,7 +144,7 @@ update` never run npm.
102
144
 
103
145
  Durable service implementation lives under
104
146
  `tradingcodex_service/application/`. CLI command implementations live under
105
- `tradingcodex_cli/commands/`. The v1 codebase uses these canonical modules
147
+ `tradingcodex_cli/commands/`. The codebase uses these canonical modules
106
148
  directly.
107
149
 
108
150
  ## Runtime Planes
@@ -280,11 +322,15 @@ refuses remote hosts or an unverified listener PID.
280
322
  | `policy` | Principals, capabilities, restricted list, limits, policy decisions. |
281
323
  | `orders` | Canonical order tickets, order checks, approval receipts, current-turn order grants, broker order timeline, fills, and execution attempts/results. |
282
324
  | `portfolio` | Cash, positions, exposure snapshots, normalized ledger events, broker sync runs, reconciliation runs, paper portfolio state. |
283
- | `research` | Workspace markdown research artifacts, artifact versions, evidence packs, report metadata, file-native source/as-of snapshots, immutable Dataset and Calculation objects, and rebuildable catalog projections. No Django DB models or Admin DB surface. |
284
325
  | `audit` | Append-only audit events, request hashes, result hashes, policy/action provenance. |
285
326
  | `mcp` | Protocol adapter metadata, tool registry, and non-research tool call ledger. |
286
327
  | `integrations` | Broker connections, broker accounts, instrument maps, paper and validation-only execution paths, read-only data adapters, future broker adapter definitions. |
287
328
 
329
+ File-native research has no Django app, DB models, or Admin DB surface.
330
+ Workspace markdown artifacts, versions, evidence packs, source/as-of snapshots,
331
+ immutable Dataset and Calculation objects, and rebuildable catalog projections
332
+ are owned by `tradingcodex_service/application/` services.
333
+
288
334
  ## Service Layer Rules
289
335
 
290
336
  Interfaces must call shared service functions rather than duplicating durable
@@ -394,18 +440,26 @@ Read/write research and audit use cases:
394
440
  - `get_forecast`
395
441
  - `list_forecasts`
396
442
  - `calibration_report`
443
+ - `record_judgment_snapshot`
444
+ - `get_judgment_snapshot`
445
+ - `list_judgment_snapshots`
446
+ - `record_decision_adoption`
447
+ - `record_judgment_process_review`
448
+ - `create_judgment_postmortem`
449
+ - `list_decision_episodes`
450
+ - `get_decision_episode`
397
451
  - `create_evaluation_corpus`
398
452
  - `record_evaluation_run`
399
453
  - `record_blind_human_review`
400
454
  - `compare_evaluation_runs`
401
455
  - `record_audit_event`
402
456
 
403
- Research artifact writes preserve workspace markdown as the source of truth and
404
- carry handoff metadata for source/as-of posture, clear distinctions among facts,
405
- analysis, and assumptions, confidence, missing evidence, next-recipient routing, blocked actions, and
406
- source snapshots. `quality-check --strict` validates the markdown handoff
407
- contract, Evidence Run Card shape, and Validation Card shape without moving
408
- research memory into the central DB.
457
+ Research artifact writes preserve workspace markdown as the source of truth.
458
+ V2 stores a compact identity, status, summary, requirement, and lineage
459
+ envelope in Markdown; receipt v4 seals the exact versions, hashes, and run
460
+ context omitted from that reader-facing file. `quality-check --strict`
461
+ validates the markdown handoff contract, Evidence Run Card shape, and
462
+ Validation Card shape without moving research memory into the central DB.
409
463
 
410
464
  Dataset manifests and Calculation specs/runs use the same immutable research-
411
465
  object primitives as Source Snapshots, ResearchSpecs, and ExperimentRuns.
@@ -462,6 +516,13 @@ producer, exact inputs, and Brain/Strategy/Investor Context lineage. Synthesis,
462
516
  forecasts, and Decision Memory reverify receipts instead of trusting Markdown
463
517
  frontmatter or caller-supplied lineage.
464
518
 
519
+ The Decision Episode viewer is a read projection, not another workflow state
520
+ store. It joins the run, authenticated synthesis and role artifacts, forecasts,
521
+ JudgmentSnapshot, explicit User Adoption, process review/Postmortem, and lesson
522
+ status by `workflow_run_id`. Each lifecycle dimension remains independently
523
+ projected, and ambiguous legacy synthesis candidates are surfaced rather than
524
+ chosen by the viewer.
525
+
465
526
  The viewer adds no run state beside the lightweight native run under
466
527
  `.tradingcodex/mainagent/runs/<analysis-run-id>/` and launches no Codex process.
467
528
  It reads canonical activity and accepted artifacts through the shared service
@@ -1,6 +1,6 @@
1
1
  # Codex-Native Orchestration
2
2
 
3
- Status: v1 contract
3
+ Status: current contract
4
4
 
5
5
  TradingCodex uses Codex itself as the investment research orchestrator. Head
6
6
  Manager interprets the user's original language, answers narrow trusted facts
@@ -81,7 +81,8 @@ conflicts with Strategy.
81
81
 
82
82
  ## Delegation Contract
83
83
 
84
- MultiAgent V2 exposes the generated role profiles with a depth-one boundary.
84
+ MultiAgent V2 exposes the generated role profiles through native Codex
85
+ delegation.
85
86
  Head Manager prefers an exact profile when its specialty is useful and passes a
86
87
  compact role-owned brief rather than the full root history. Role TOML supplies
87
88
  the direct fixed model settings; their values and fallback eligibility are owned
@@ -98,11 +99,15 @@ Use `followup_task` when a live child still owns a correction or clarification.
98
99
  Start another child for a new specialty, an unavailable session, or independent
99
100
  review. Apply the canonical fallback boundary in
100
101
  [Roles, Skills, And Workflows](roles-skills-and-workflows.md). A child cannot
101
- approve, execute, access a broker, or emulate Head Manager. Children never
102
- delegate recursively. Head Manager waits only while a live child has useful work
103
- and reports lifecycle events only from native tool and child-lifecycle results
104
- in the current run. Native wait is wait-any and may serialize with no explicit
105
- target list; that representation is not failure by itself.
102
+ approve, execute, access a broker, or emulate Head Manager. Whether to delegate
103
+ a distinct child-owned subtask further is a native Codex decision, not a
104
+ TradingCodex workflow requirement. Every descendant remains subject to its
105
+ selected projected role and the shared evidence, authority, and safety
106
+ boundaries. Head Manager
107
+ waits only while a live child has useful work and reports lifecycle events only
108
+ from native tool and child-lifecycle results in the current run. Native wait is
109
+ wait-any and may serialize with no explicit target list; that representation is
110
+ not failure by itself.
106
111
 
107
112
  When a Brain applies, the assignment contains the question Head Manager derived
108
113
  from it, not the Brain body or a delegation of Brain authority. Brain content is
@@ -34,11 +34,34 @@ attempted before that fallback unless the user selected another provider.
34
34
  Evidence is fit to a claim and intended use rather than accepted or rejected by
35
35
  provider class. Original public records remain preferred when a claim requires
36
36
  source-of-record authority, but attributable non-primary evidence may support
37
- the fields and periods it actually covers. Missing or ambiguous coverage limits
38
- only dependent claims and actions; it does not erase independent valid fields
39
- or prevent factual and screen-grade research. This preserves the distinction
40
- between evidence usability and decision or execution readiness without adding
41
- a provider trust score, allowlist, or routing registry.
37
+ the fields and periods it actually covers. OpenBB is an access layer, not a
38
+ source class: judge a result by its returned provider, identifiers, periods,
39
+ units, adjustments, freshness, and coverage. Current attributable data from a
40
+ credible OpenBB provider is usable on the same terms as data retrieved from
41
+ that provider directly.
42
+
43
+ Use source-of-record evidence when exact legal, regulatory, contractual,
44
+ accounting, filing, or official-policy status is itself material. For market
45
+ prices, normalized fundamentals, estimates, industry developments, event
46
+ chronology, and interpretation, a credible institutional provider or reputable
47
+ secondary publication may support a conclusion when it is attributable,
48
+ current for the claim, within the source's competence, and free of unresolved
49
+ material conflict. Secondary does not mean screen-only. Corroborate in
50
+ proportion to consequence: independently check a conclusion-driving claim when
51
+ it is surprising, disputed, transformed from raw data, or weakly attributed;
52
+ do not impose a fixed source count on ordinary well-supported facts.
53
+
54
+ Missing or ambiguous coverage limits only dependent claims and actions; it
55
+ does not erase independent valid fields or automatically downgrade the whole
56
+ artifact. `decision-grade` evidence may use a mixture of official records,
57
+ OpenBB/provider data, and reputable secondary evidence when every
58
+ conclusion-driving claim has fit-for-purpose support, a current market anchor
59
+ exists when relevant, and material conflicts and gaps are explicit.
60
+ `screen` evidence readiness is for a gap that materially prevents responsible decision
61
+ support, not for the mere absence of a primary source. Confidence records the
62
+ strength and independence of support separately from readiness. This preserves
63
+ evidence usability and decision readiness without adding a provider trust
64
+ score, allowlist, or routing registry.
42
65
 
43
66
  Freshness is relative to the requested as-of, the source's observation or
44
67
  publication cadence, the relevant instrument or venue session, and the claim.
@@ -34,13 +34,13 @@ tools, persistence, memory, policy, approval, broker, order, or execution.
34
34
  ## Canonical Architecture
35
35
 
36
36
  ```text
37
- raw source snapshots
37
+ Research Artifacts
38
38
  |
39
- immutable ResearchSpec + replay manifest
39
+ point-in-time Synthesis
40
40
  |
41
- frozen decision package + forecast events
41
+ Judgment Snapshot + optional User Adoption
42
42
  |
43
- separately observed outcome + proper score
43
+ Forecast outcome + proper score
44
44
  |
45
45
  two-pass postmortem
46
46
  |
@@ -61,8 +61,9 @@ The source of truth is the existing file-native record:
61
61
  - immutable ResearchSpecs and replay manifests;
62
62
  - experiment runs that bind code, data, config, model, prompt, tool, and trial
63
63
  provenance;
64
- - planned Decision Packages, immutable accepted decision snapshots, and
65
- accepted role artifacts;
64
+ - accepted role artifacts and canonical synthesis, immutable JudgmentSnapshots,
65
+ explicit User Adoption events, and legacy DecisionSnapshots retained
66
+ read-only;
66
67
  - append-only forecast issue, revision, resolution, dispute, and score events;
67
68
  - audit-backed postmortems and append-only improve records; and
68
69
  - Investment Brain id/version/content digest, Strategy hash, and Investor
@@ -71,7 +72,7 @@ The source of truth is the existing file-native record:
71
72
  Existing events are not edited to make history look cleaner. Corrections,
72
73
  revisions, supersession, disputes, and retirement are new records.
73
74
 
74
- The rebuildable v2 artifact catalog provides a discovery projection across
75
+ The rebuildable v3 artifact catalog provides a discovery projection across
75
76
  these file-native records without becoming Decision Memory itself. New
76
77
  type-specific service output projects with full canonical identity metadata;
77
78
  older files remain unchanged and may project as `legacy_partial`. Malformed
@@ -260,16 +261,43 @@ selection bias.
260
261
  A good process can have a bad outcome, and a poor process can have a profitable
261
262
  outcome. Outcome knowledge must not rewrite what was reasonably knowable.
262
263
 
263
- The skill seals accepted decision-time state with `./tcx decision snapshot
264
- record`, locks the outcome-blind first pass with `./tcx postmortem
265
- process-review`, and only then creates the outcome-attached report with `./tcx
266
- postmortem create`. These commands accept a JSON payload file or `-` for stdin;
267
- they validate recorded workflow, artifact, forecast, strategy, and
268
- investor-context hashes instead of trusting free-form Markdown. Lesson
264
+ Head Manager autonomously seals an evaluable accepted synthesis with the
265
+ role-scoped `record_judgment_snapshot` MCP tool. Factual and screening synthesis
266
+ is not frozen. A durable `insufficient` abstention may still be frozen when its
267
+ future process or outcome is worth evaluating; it remains action-blocked. The
268
+ snapshot binds the canonical synthesis receipt, analysis run context, cutoff,
269
+ and Forecast refs or the canonical reason Forecast was inapplicable. Caller
270
+ input cannot contradict the synthesis Forecast posture. It has
271
+ `authority: evidence_only` and creates no execution permission.
272
+
273
+ User Adoption is separate. TradingCodex never infers it from conversation,
274
+ viewer activity, a recommendation, or order preparation. The user explicitly
275
+ records an immutable event with `./tcx decision adopt <payload.json|->`; it
276
+ binds the Judgment hash and user's decision statement and may supersede an
277
+ earlier Adoption. Adoption still is not order approval or execution authority.
278
+
279
+ Postmortem locks the outcome-blind first pass with `./tcx postmortem
280
+ process-review`, then creates the outcome-attached report with `./tcx
281
+ postmortem create`. Process quality can be assessed against Judgment alone;
282
+ claims about what the user actually decided require an Adoption ref. Lesson
269
283
  promotion has no direct or generic CLI path: an authenticated
270
284
  `judgment-reviewer` performs it through the role-scoped `promote_lesson` MCP
271
285
  tool.
272
286
 
287
+ ### Decision Episode projection
288
+
289
+ `Decision Episode` is a read model, not stored workflow state. It groups by
290
+ `workflow_run_id`: run record, verified synthesis and role artifacts, Forecast
291
+ events, JudgmentSnapshot, User Adoption, process review/Postmortem, and Lesson
292
+ status. Analysis, judgment, adoption, forecast, postmortem, and lesson keep
293
+ separate statuses; there is no lifecycle enum that falsely implies a single
294
+ linear state machine. Legacy runs with one synthesis use it; multiple legacy
295
+ synthesis candidates produce `ambiguous_legacy_synthesis` and are never
296
+ resolved by guessing. Public cards, search, Library, and Episode projections
297
+ verify every run-bound artifact receipt before displaying its fields or using
298
+ its Dataset and Calculation lineage. The Episode exposes a locked process
299
+ review independently from a completed Postmortem.
300
+
273
301
  ### Separate error loops
274
302
 
275
303
  Do not combine every failure into one Error Book:
@@ -8,18 +8,24 @@ templates, Django Admin, MCP gateway, and the committed React viewer build.
8
8
  Django and WhiteNoise serve the viewer. End users and generated workspaces
9
9
  do not need Node or npm.
10
10
 
11
- ## v1 Release Contract
11
+ ## v2 Release Contract
12
12
 
13
- `1.0.0` is the first supported public contract for the current Web, Admin, API,
14
- CLI, MCP, generated workspace, application-service, policy, approval, audit,
15
- and execution boundaries.
13
+ `2.0.0` introduced the breaking public contract for compact Artifact v2,
14
+ receipt v4,
15
+ JudgmentSnapshot/User Adoption, and Decision Episode reads across Web, API,
16
+ CLI, MCP, and application services. Existing authenticated v1 Markdown,
17
+ version archives, and receipts remain byte-preserved and readable through the
18
+ v2 projection; all new artifact writes use v2. `2.1.0` is the first hardened
19
+ minor release of that contract, adding fail-closed public projections,
20
+ outcome-blind ordering enforcement, and complete Episode lifecycle detail.
16
21
 
17
- The v1 baseline is intentionally clean:
22
+ The release baseline is intentionally clean:
18
23
 
19
24
  - new installations attach an empty workspace with `tcx attach`
20
- - v1 workspaces update through the documented v1 package and workspace flow
21
- - generated files, runtime state, and database schema use the v1 contract
22
- - historical prerelease compatibility surfaces are not part of the v1 runtime
25
+ - v1 workspaces upgrade only through the explicit documented v1-to-v2 update
26
+ path; other major-version mismatches fail closed
27
+ - generated files, runtime state, and database schema use the v2 contract
28
+ - old public artifact request fields are rejected rather than accepted as aliases
23
29
  - paper execution is built in; live execution remains disabled by default and
24
30
  requires an installed provider plus every policy, approval, idempotency,
25
31
  connection, confirmation, sync, and audit gate
@@ -28,7 +34,7 @@ If the selected runtime database contains prerelease migrations or project
28
34
  tables without clean v1 migration history, startup and bootstrap fail closed.
29
35
  The error reports the selected `TRADINGCODEX_HOME` and database path.
30
36
  TradingCodex does not migrate, delete, archive, or back up incompatible
31
- prerelease/non-v1 state.
37
+ prerelease state.
32
38
 
33
39
  The operator must choose one explicit recovery path:
34
40
 
@@ -38,7 +44,7 @@ The operator must choose one explicit recovery path:
38
44
  2. Stop every TradingCodex process, then archive or remove the old selected
39
45
  home/database manually before retrying.
40
46
 
41
- There is no automatic prerelease migration or fallback path in v1.
47
+ There is no automatic prerelease migration or fallback path.
42
48
 
43
49
  TradingCodex releases software; they do not promote a model policy or establish
44
50
  investment-performance claims. Those claims require the independent evidence
@@ -183,8 +189,8 @@ also require the disposable-workspace and Codex-native checks documented in
183
189
  `.github/workflows/ci.yml` is test-only. Parallel Ubuntu jobs run the frontend
184
190
  determinism check and the Python 3.11 source/framework gates. It does
185
191
  not construct or upload a wheel or source distribution, run release-upgrade or
186
- native-runtime matrices, or publish anything. Documentation-, guide-, OpenWiki-,
187
- and asset-only pushes or pull requests skip this workflow. Source-bearing pull
192
+ native-runtime matrices, or publish anything. Documentation-, guide-, and
193
+ asset-only pushes or pull requests skip this workflow. Source-bearing pull
188
194
  requests and pushes still receive the normal source-quality checks.
189
195
 
190
196
  `.github/workflows/release.yml` is manual-only. Every run requires an explicit
@@ -297,14 +303,14 @@ uvx --refresh --from "tradingcodex==$ReleaseVersion" tcx attach . --from "tradin
297
303
  Verify the PyPI project page, filenames, metadata, and release notes after the
298
304
  smokes pass.
299
305
 
300
- ## v1 Update Policy
306
+ ## v2 Update Policy
301
307
 
302
- TradingCodex has two update layers within the v1 line:
308
+ TradingCodex has two update layers within the v2 line:
303
309
 
304
310
  - package update: run the desired package with `uvx --refresh`, upgrade an
305
311
  installed `uv` tool, or use `install.sh --update`
306
312
  - workspace update: run `tcx update <workspace>` from that package to refresh
307
- generated files, indexes, project MCP configuration, hooks, and the v1 schema
313
+ generated files, indexes, project MCP configuration, hooks, and the v2 schema
308
314
 
309
315
  `tcx update` preserves workspace identity and workspace-native user artifacts.
310
316
  It may replace only generated paths owned by
@@ -313,7 +319,7 @@ Codex and open a new task so project configuration, prompts, skills, hooks, and
313
319
  MCP state reload together.
314
320
 
315
321
  A future major-version migration requires its own explicit product contract and
316
- validation. v1 release automation does not infer one.
322
+ validation. Release automation does not infer one.
317
323
 
318
324
  ## What Is Not Deployed
319
325