tradingcodex 2.1.1__tar.gz → 2.1.3__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 (416) hide show
  1. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/CHANGELOG.md +25 -0
  2. tradingcodex-2.1.3/PKG-INFO +235 -0
  3. tradingcodex-2.1.3/README.md +197 -0
  4. tradingcodex-2.1.3/assets/tradingcodex-dynamics.svg +109 -0
  5. tradingcodex-2.1.3/assets/tradingcodex-statics.svg +54 -0
  6. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/data-sources-and-openbb.md +8 -8
  7. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/generated-workspaces.md +6 -4
  8. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/harness.md +9 -4
  9. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/roles-skills-and-workflows.md +49 -38
  10. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/safety-policy-and-execution.md +22 -17
  11. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_brain_skill.py +1 -1
  12. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_build_turn_grant.py +1 -1
  13. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_codex_native_orchestration.py +25 -14
  14. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_investment_brain_prompt_layers.py +38 -28
  15. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_investment_brain_provenance.py +10 -0
  16. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_investor_context.py +10 -0
  17. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_native_execution_gateway.py +20 -1
  18. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_order_turn_grant.py +4 -2
  19. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_release_contract.py +1 -1
  20. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_research_forecast_surfaces.py +2 -0
  21. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_source_snapshot_agent_contract.py +15 -12
  22. tradingcodex-2.1.3/tradingcodex.egg-info/PKG-INFO +235 -0
  23. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex.egg-info/SOURCES.txt +3 -0
  24. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/doctor.py +4 -4
  25. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/agents.py +1 -2
  26. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/execution_gateway.py +26 -12
  27. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/skill_invocations.py +54 -21
  28. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/mcp_runtime.py +3 -2
  29. tradingcodex-2.1.3/tradingcodex_service/version.py +1 -0
  30. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/.codex/config.toml +0 -2
  31. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/fixed-role.md +12 -3
  32. tradingcodex-2.1.3/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +101 -0
  33. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/SKILL.md +10 -11
  34. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/SKILL.md +4 -3
  35. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/SKILL.md +4 -3
  36. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +16 -16
  37. tradingcodex-2.1.3/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/playbooks/context-overlays.md +26 -0
  38. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/playbooks/research-framing.md +15 -8
  39. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +7 -1
  40. tradingcodex-2.1.3/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/SKILL.md +58 -0
  41. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/SKILL.md +2 -0
  42. tradingcodex-2.1.1/PKG-INFO +0 -199
  43. tradingcodex-2.1.1/README.md +0 -161
  44. tradingcodex-2.1.1/tradingcodex.egg-info/PKG-INFO +0 -199
  45. tradingcodex-2.1.1/tradingcodex_service/version.py +0 -1
  46. tradingcodex-2.1.1/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +0 -195
  47. tradingcodex-2.1.1/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/SKILL.md +0 -80
  48. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/CONTRIBUTING.md +0 -0
  49. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/LICENSE +0 -0
  50. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/MANIFEST.in +0 -0
  51. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/NOTICE +0 -0
  52. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/TRADEMARKS.md +0 -0
  53. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/__init__.py +0 -0
  54. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/audit/__init__.py +0 -0
  55. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/audit/admin.py +0 -0
  56. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/audit/apps.py +0 -0
  57. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/audit/migrations/0001_v1_initial.py +0 -0
  58. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/audit/migrations/__init__.py +0 -0
  59. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/audit/models.py +0 -0
  60. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/harness/__init__.py +0 -0
  61. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/harness/admin.py +0 -0
  62. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/harness/apps.py +0 -0
  63. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/harness/migrations/0001_v1_initial.py +0 -0
  64. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/harness/migrations/__init__.py +0 -0
  65. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/harness/models.py +0 -0
  66. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/harness/templatetags/__init__.py +0 -0
  67. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/integrations/__init__.py +0 -0
  68. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/integrations/admin.py +0 -0
  69. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/integrations/apps.py +0 -0
  70. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/integrations/migrations/0001_v1_initial.py +0 -0
  71. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/integrations/migrations/__init__.py +0 -0
  72. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/integrations/models.py +0 -0
  73. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/__init__.py +0 -0
  74. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/admin.py +0 -0
  75. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/apps.py +0 -0
  76. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/migrations/0001_v1_initial.py +0 -0
  77. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/migrations/0002_remove_external_mcp_gate.py +0 -0
  78. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/migrations/__init__.py +0 -0
  79. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/models.py +0 -0
  80. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/mcp/services.py +0 -0
  81. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/orders/__init__.py +0 -0
  82. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/orders/admin.py +0 -0
  83. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/orders/apps.py +0 -0
  84. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/orders/migrations/0001_v1_initial.py +0 -0
  85. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/orders/migrations/__init__.py +0 -0
  86. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/orders/models.py +0 -0
  87. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/orders/services.py +0 -0
  88. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/policy/__init__.py +0 -0
  89. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/policy/admin.py +0 -0
  90. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/policy/apps.py +0 -0
  91. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/policy/migrations/0001_v1_initial.py +0 -0
  92. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/policy/migrations/__init__.py +0 -0
  93. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/policy/models.py +0 -0
  94. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/policy/services.py +0 -0
  95. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/portfolio/__init__.py +0 -0
  96. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/portfolio/admin.py +0 -0
  97. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/portfolio/apps.py +0 -0
  98. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/portfolio/migrations/0001_v1_initial.py +0 -0
  99. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/portfolio/migrations/__init__.py +0 -0
  100. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/apps/portfolio/models.py +0 -0
  101. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/assets/tradingcodex-banner-v1.png +0 -0
  102. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/assets/tradingcodex-banner-v2.png +0 -0
  103. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/assets/tradingcodex-banner-v3.png +0 -0
  104. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/assets/tradingcodex-banner.svg +0 -0
  105. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/README.md +0 -0
  106. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/architecture.md +0 -0
  107. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/codex-native-orchestration.md +0 -0
  108. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/decision-memory.md +0 -0
  109. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/deployment.md +0 -0
  110. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/financial-workflow-references.md +0 -0
  111. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/guardrails.md +0 -0
  112. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/improvement-loop.md +0 -0
  113. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/interfaces-and-surfaces.md +0 -0
  114. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/investment-brain-plugins.md +0 -0
  115. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/knowledge-wikis.md +0 -0
  116. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/licensing-and-commercialization.md +0 -0
  117. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/product-direction.md +0 -0
  118. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/release-readiness.md +0 -0
  119. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/research-memory-and-artifacts.md +0 -0
  120. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/user-facing-skills.md +0 -0
  121. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/docs/validation-and-test-plan.md +0 -0
  122. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/index.html +0 -0
  123. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/package-lock.json +0 -0
  124. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/package.json +0 -0
  125. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/App.tsx +0 -0
  126. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/ViewerShell.tsx +0 -0
  127. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/api.ts +0 -0
  128. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/domain.ts +0 -0
  129. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/features/EpisodesPage.tsx +0 -0
  130. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/features/LibraryPage.tsx +0 -0
  131. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/features/SystemPage.tsx +0 -0
  132. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/features/WikiPage.tsx +0 -0
  133. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/main.tsx +0 -0
  134. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/navigation.js +0 -0
  135. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/navigation.test.js +0 -0
  136. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/styles.css +0 -0
  137. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/ui.tsx +0 -0
  138. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/src/viewer-data.js +0 -0
  139. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/tsconfig.json +0 -0
  140. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/frontend/vite.config.ts +0 -0
  141. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/install.sh +0 -0
  142. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/installation.md +0 -0
  143. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/pyproject.toml +0 -0
  144. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/setup.cfg +0 -0
  145. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_artifact_authentication.py +0 -0
  146. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_artifact_catalog.py +0 -0
  147. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_artifact_v2.py +0 -0
  148. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_broker_center_prd.py +0 -0
  149. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_build_contract_metadata.py +0 -0
  150. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_build_hook.py +0 -0
  151. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_calculation_runner.py +0 -0
  152. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_clean_v1_cli_audit.py +0 -0
  153. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_codex_capabilities.py +0 -0
  154. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_codex_cli_compat.py +0 -0
  155. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_codex_cli_contract.py +0 -0
  156. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_datasets.py +0 -0
  157. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_decision_memory_core.py +0 -0
  158. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_dev_bootstrap.py +0 -0
  159. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_dynamic_artifact_quality.py +0 -0
  160. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_e2e_user_scenarios.py +0 -0
  161. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_evaluation_lab_hardening.py +0 -0
  162. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_evaluation_profiles.py +0 -0
  163. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_guidebook_contract.py +0 -0
  164. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_investment_analysis.py +0 -0
  165. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_investment_brain_cli.py +0 -0
  166. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_investment_brain_registry.py +0 -0
  167. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_knowledge_wikis.py +0 -0
  168. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_mcp_broker_release_health.py +0 -0
  169. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_platform_runtime.py +0 -0
  170. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_provider_source_approval.py +0 -0
  171. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_research_object_catalog.py +0 -0
  172. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_research_objects.py +0 -0
  173. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_research_spec_profiles.py +0 -0
  174. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_runtime_paths.py +0 -0
  175. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_runtime_profile.py +0 -0
  176. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_security_invariants.py +0 -0
  177. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_skill_runtime_boundaries.py +0 -0
  178. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_v1_migrations.py +0 -0
  179. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_v1_state_integrity.py +0 -0
  180. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_viewer.py +0 -0
  181. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tests/test_workspace_git_contract.py +0 -0
  182. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex.egg-info/dependency_links.txt +0 -0
  183. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex.egg-info/entry_points.txt +0 -0
  184. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex.egg-info/requires.txt +0 -0
  185. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex.egg-info/top_level.txt +0 -0
  186. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/__init__.py +0 -0
  187. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/__main__.py +0 -0
  188. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/calculation-runtime-lock.json +0 -0
  189. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/calculation-runtime-requirements.txt +0 -0
  190. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/calculation_runner.py +0 -0
  191. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/__init__.py +0 -0
  192. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/bootstrap.py +0 -0
  193. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/build.py +0 -0
  194. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/connectors.py +0 -0
  195. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/data_sources.py +0 -0
  196. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/db.py +0 -0
  197. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/decision.py +0 -0
  198. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/evaluation.py +0 -0
  199. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/forecast.py +0 -0
  200. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/home.py +0 -0
  201. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/investment_brains.py +0 -0
  202. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/investor_context.py +0 -0
  203. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/mcp.py +0 -0
  204. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/orders.py +0 -0
  205. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/policy.py +0 -0
  206. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/profile.py +0 -0
  207. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/research.py +0 -0
  208. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/skills.py +0 -0
  209. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/strategies.py +0 -0
  210. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/subagents.py +0 -0
  211. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/utils.py +0 -0
  212. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/wikis.py +0 -0
  213. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/workflow.py +0 -0
  214. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/commands/workspaces.py +0 -0
  215. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/generator.py +0 -0
  216. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/mcp_stdio.py +0 -0
  217. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/package_source.py +0 -0
  218. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/service_autostart.py +0 -0
  219. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/startup_status.py +0 -0
  220. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_cli/versioning.py +0 -0
  221. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/__init__.py +0 -0
  222. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/admin.py +0 -0
  223. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/api.py +0 -0
  224. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/__init__.py +0 -0
  225. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/analysis_runs.py +0 -0
  226. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/artifact_bindings.py +0 -0
  227. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/artifact_catalog.py +0 -0
  228. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/artifact_quality.py +0 -0
  229. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/artifact_v2.py +0 -0
  230. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/audit.py +0 -0
  231. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/brokers.py +0 -0
  232. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/build_gateway.py +0 -0
  233. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/calculations.py +0 -0
  234. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/codex_capabilities.py +0 -0
  235. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/common.py +0 -0
  236. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/data_sources.py +0 -0
  237. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/datasets.py +0 -0
  238. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/decision_episodes.py +0 -0
  239. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/decision_packages.py +0 -0
  240. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/evaluation_lab.py +0 -0
  241. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/forecasting.py +0 -0
  242. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/git_subprocess.py +0 -0
  243. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/harness.py +0 -0
  244. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/health.py +0 -0
  245. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/investment_analysis.py +0 -0
  246. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/investment_brains.py +0 -0
  247. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/investor_context.py +0 -0
  248. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/judgment_postmortems.py +0 -0
  249. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/judgments.py +0 -0
  250. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/knowledge_wikis.py +0 -0
  251. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/managed_package_sources.py +0 -0
  252. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/markdown_preview.py +0 -0
  253. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/operator_authority.py +0 -0
  254. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/orders.py +0 -0
  255. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/policy.py +0 -0
  256. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/portfolio.py +0 -0
  257. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/postmortems.py +0 -0
  258. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/research.py +0 -0
  259. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/research_object_catalog.py +0 -0
  260. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/research_objects.py +0 -0
  261. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/research_specs.py +0 -0
  262. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/runtime.py +0 -0
  263. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/source_snapshots.py +0 -0
  264. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/viewer.py +0 -0
  265. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/wiki_viewer.py +0 -0
  266. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/workspace_git.py +0 -0
  267. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/application/workspaces.py +0 -0
  268. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/asgi.py +0 -0
  269. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/log_safety.py +0 -0
  270. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/runtime_profile.py +0 -0
  271. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/settings.py +0 -0
  272. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
  273. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/assets/allPaths-DTYZmYwK.js +0 -0
  274. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/assets/allPathsLoader-DcM0tTg5.js +0 -0
  275. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/assets/index-Bb8LR_4w.css +0 -0
  276. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/assets/index-C4QYjUvS.js +0 -0
  277. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/assets/paths-BOuWfKow.js +0 -0
  278. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/assets/paths-CI3Rjsyg.js +0 -0
  279. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/assets/splitPathsBySizeLoader-B1K4iYsq.js +0 -0
  280. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/static/tradingcodex_web/index.html +0 -0
  281. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/urls.py +0 -0
  282. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/viewer_api.py +0 -0
  283. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/web.py +0 -0
  284. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/tradingcodex_service/wsgi.py +0 -0
  285. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/__init__.py +0 -0
  286. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
  287. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
  288. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/audit/module.json +0 -0
  289. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +0 -0
  290. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
  291. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
  292. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
  293. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
  294. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/AGENTS.md +0 -0
  295. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
  296. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/tcx +0 -0
  297. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/tcx-calc +0 -0
  298. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/tcx-calc.cmd +0 -0
  299. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/files/tcx.cmd +0 -0
  300. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/codex-base/module.json +0 -0
  301. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
  302. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
  303. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
  304. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
  305. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
  306. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
  307. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
  308. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
  309. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
  310. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
  311. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
  312. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
  313. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
  314. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
  315. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
  316. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
  317. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
  318. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
  319. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +0 -0
  320. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
  321. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
  322. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
  323. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
  324. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
  325. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
  326. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
  327. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/fixed-subagents/module.json +0 -0
  328. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
  329. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
  330. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
  331. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
  332. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
  333. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
  334. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
  335. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
  336. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
  337. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
  338. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
  339. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
  340. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
  341. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
  342. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
  343. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
  344. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
  345. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
  346. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/information-barriers/module.json +0 -0
  347. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/paper-trading/module.json +0 -0
  348. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/SKILL.md +0 -0
  349. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/agents/openai.yaml +0 -0
  350. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/SKILL.md +0 -0
  351. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/agents/openai.yaml +0 -0
  352. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/references/bundle-contract.md +0 -0
  353. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -0
  354. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
  355. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +0 -0
  356. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/agents/openai.yaml +0 -0
  357. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/SKILL.md +0 -0
  358. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/agents/openai.yaml +0 -0
  359. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/agents/openai.yaml +0 -0
  360. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/agents/openai.yaml +0 -0
  361. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/agents/openai.yaml +0 -0
  362. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/SKILL.md +0 -0
  363. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/agents/openai.yaml +0 -0
  364. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
  365. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
  366. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/SKILL.md +0 -0
  367. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/agents/openai.yaml +0 -0
  368. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/SKILL.md +0 -0
  369. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/agents/openai.yaml +0 -0
  370. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/references/bundle-contract.md +0 -0
  371. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
  372. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/SKILL.md +0 -0
  373. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/agents/openai.yaml +0 -0
  374. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/SKILL.md +0 -0
  375. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/agents/openai.yaml +0 -0
  376. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/SKILL.md +0 -0
  377. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/agents/openai.yaml +0 -0
  378. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/SKILL.md +0 -0
  379. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/agents/openai.yaml +0 -0
  380. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/SKILL.md +0 -0
  381. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/agents/openai.yaml +0 -0
  382. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/SKILL.md +0 -0
  383. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/agents/openai.yaml +0 -0
  384. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/SKILL.md +0 -0
  385. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/agents/openai.yaml +0 -0
  386. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/SKILL.md +0 -0
  387. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/agents/openai.yaml +0 -0
  388. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/SKILL.md +0 -0
  389. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/agents/openai.yaml +0 -0
  390. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/SKILL.md +0 -0
  391. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/agents/openai.yaml +0 -0
  392. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/SKILL.md +0 -0
  393. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/agents/openai.yaml +0 -0
  394. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +0 -0
  395. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/agents/openai.yaml +0 -0
  396. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/SKILL.md +0 -0
  397. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/agents/openai.yaml +0 -0
  398. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/data-runtime.md +0 -0
  399. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/finance-methods.md +0 -0
  400. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/SKILL.md +0 -0
  401. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/agents/openai.yaml +0 -0
  402. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +0 -0
  403. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/SKILL.md +0 -0
  404. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/agents/openai.yaml +0 -0
  405. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/SKILL.md +0 -0
  406. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/agents/openai.yaml +0 -0
  407. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/agents/openai.yaml +0 -0
  408. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/references/openbb-mcp.md +0 -0
  409. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/agents/openai.yaml +0 -0
  410. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/SKILL.md +0 -0
  411. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/agents/openai.yaml +0 -0
  412. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/repo-skills/module.json +0 -0
  413. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
  414. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
  415. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
  416. {tradingcodex-2.1.1 → tradingcodex-2.1.3}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
@@ -2,6 +2,31 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2.1.3 - 2026-07-25
6
+
7
+ - Reduce always-loaded Head Manager and shared source-routing guidance, move
8
+ optional context and domain rules to their owning workflow resources, remove
9
+ producer-only dataset tools from the Head Manager, and stop additional
10
+ research when its expected decision value no longer justifies its cost.
11
+ - Refresh README onboarding around the dynamic research team, reusable
12
+ knowledge, and skill entrypoints, and recommend `gpt-5.6-sol` with `high` or
13
+ `xhigh` reasoning for full Head Manager research workflows.
14
+ - Let research answers choose a natural presentation while explaining material
15
+ results in sufficient detail, and offer a deep explanation from completed
16
+ research when the user's initial request is best answered concisely.
17
+
18
+ ## 2.1.2 - 2026-07-24
19
+
20
+ - Treat ASCII skill-name case and normalized whitespace layout as presentation
21
+ details, so Codex app skill-chip capitalization, Brain/Strategy selectors on
22
+ separate lines, and line-wrapped order arguments bind to their canonical
23
+ lowercase skills without weakening order flags, single-effect grants,
24
+ approvals, policy, idempotency, or audit enforcement.
25
+ - Let evidence-producing subagents autonomously fill newly discovered material
26
+ gaps and conflicts within their assigned question, specialty, user scope, and
27
+ read-only authority, using evidence value instead of fixed search or tool-call
28
+ counts while preserving source provenance, deduplication, and role ownership.
29
+
5
30
  ## 2.1.1 - 2026-07-24
6
31
 
7
32
  - Reframe independent judgment review as task-relative adversarial adjudication:
@@ -0,0 +1,235 @@
1
+ Metadata-Version: 2.4
2
+ Name: tradingcodex
3
+ Version: 2.1.3
4
+ Summary: Local-first investment operating system for Codex-native research and service-gated execution.
5
+ Author: TradingCodex Authors
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/monarchjuno/tradingcodex
8
+ Project-URL: Documentation, https://github.com/monarchjuno/tradingcodex/blob/main/docs/README.md
9
+ Project-URL: Repository, https://github.com/monarchjuno/tradingcodex.git
10
+ Project-URL: Issues, https://github.com/monarchjuno/tradingcodex/issues
11
+ Keywords: trading,django,codex,mcp,portfolio,research
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Framework :: Django
14
+ Classifier: Framework :: Django :: 5.2
15
+ Classifier: Intended Audience :: Financial and Insurance Industry
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Office/Business :: Financial :: Investment
22
+ Requires-Python: <3.15,>=3.11
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ License-File: NOTICE
26
+ Requires-Dist: django<5.3,>=5.2
27
+ Requires-Dist: django-ninja<2,>=1.4
28
+ Requires-Dist: markdown-it-py<5,>=3
29
+ Requires-Dist: nh3<0.4,>=0.3
30
+ Requires-Dist: packaging>=24
31
+ Requires-Dist: pydantic>=2
32
+ Requires-Dist: pyarrow==25.0.0
33
+ Requires-Dist: PyYAML>=6
34
+ Requires-Dist: whitenoise<7,>=6.12
35
+ Provides-Extra: dev
36
+ Requires-Dist: pytest>=8; extra == "dev"
37
+ Dynamic: license-file
38
+
39
+ <h1 align="center">TradingCodex: An Evolving Multi-Agent Investment Team for Codex</h1>
40
+
41
+
42
+ <p align="center">
43
+ <img src="assets/tradingcodex-banner-v3.png" alt="TradingCodex brings market context into a Codex-native investment workflow" width="100%">
44
+ </p>
45
+
46
+ <div align="center">
47
+ <a href="https://pypi.org/project/tradingcodex/"><img alt="PyPI" src="https://img.shields.io/pypi/v/tradingcodex?label=PyPI"></a>
48
+ <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue"></a>
49
+ <img alt="Python" src="https://img.shields.io/badge/python-3.11--3.14-3776AB?logo=python&amp;logoColor=white">
50
+ <img alt="Django" src="https://img.shields.io/badge/Django-5.2-092E20?logo=django&amp;logoColor=white">
51
+ </div>
52
+
53
+ <p align="center">
54
+ <a href="#dynamics">Dynamics</a> ·
55
+ <a href="#statics">Statics</a> ·
56
+ <a href="#install">Install</a> ·
57
+ <a href="https://monarchjuno.github.io/tradingcodex/">User Guide</a>
58
+ </p>
59
+
60
+ TradingCodex brings an evolving investment team into native Codex. Ask a
61
+ question in ordinary language; the right agents collaborate, challenge the
62
+ evidence, and leave behind reusable context for the next decision.
63
+
64
+ It is research-first, local-first, and paper-first. A research answer never
65
+ becomes a broker action on its own.
66
+
67
+ ## Dynamics
68
+
69
+ ### The team changes with the question
70
+
71
+ TradingCodex does not send every ticker through the same checklist. Head
72
+ Manager reads the mandate, chooses the smallest useful group of agents, runs
73
+ independent work in parallel when useful, and revises the team when accepted
74
+ evidence exposes a new gap or conflict.
75
+
76
+ <p align="center">
77
+ <img src="assets/tradingcodex-dynamics.svg" alt="Head Manager dynamically coordinates nine investment specialist agents in a research loop" width="100%">
78
+ </p>
79
+
80
+ ### The agents
81
+
82
+ | Agent | What it brings to the team |
83
+ | --- | --- |
84
+ | **Fundamental Analyst** | Business model, financials, filings, and economics. |
85
+ | **Technical Analyst** | Price, trend, momentum, volume, volatility, and liquidity. |
86
+ | **News Analyst** | Disclosures, news, chronology, and narrative change. |
87
+ | **Macro Analyst** | Rates, FX, commodities, policy, and macro transmission. |
88
+ | **Instrument Analyst** | ETF, index, options, crypto, and market-structure mechanics. |
89
+ | **Valuation Analyst** | Ranges, scenarios, sensitivities, and valuation gaps. |
90
+ | **Portfolio Manager** | Portfolio fit, sizing, concentration, and readiness. |
91
+ | **Risk Manager** | Downside, restrictions, risk checks, and approval readiness. |
92
+ | **Judgment Reviewer** | Independent challenge of evidence, conflicts, and confidence. |
93
+
94
+ ### The workflow is a loop
95
+
96
+ ```text
97
+ question
98
+ -> Head Manager
99
+ -> smallest useful specialist wave
100
+ -> accepted evidence and artifacts
101
+ -> follow up / add a role / request review / synthesize / stop
102
+ -> next question or decision
103
+ ```
104
+
105
+ The next agent is chosen by the next useful question, not by a preset research
106
+ DAG. A narrow question can stay direct. A high-consequence recommendation can
107
+ expand to independent portfolio, risk, and judgment review. There is no
108
+ execution agent.
109
+
110
+ ## Statics
111
+
112
+ ### The context that stays with you
113
+
114
+ The current workflow is dynamic. The useful work it produces is static,
115
+ readable, and reusable: files and memory that make the next analysis better
116
+ without hiding the evidence inside a chat or silently changing system rules.
117
+
118
+ <p align="center">
119
+ <img src="assets/tradingcodex-statics.svg" alt="TradingCodex stores research memory, Wiki, Brain, and Decision Memory as reusable workspace context" width="100%">
120
+ </p>
121
+
122
+ | Static layer | What remains after the run |
123
+ | --- | --- |
124
+ | **Research Memory** | Source Snapshots, Datasets, reports, forecasts, decisions, calculations, provenance, and evidence gaps. |
125
+ | **Knowledge Wiki** | Reusable company, product, technology, industry, and value-chain background. Wiki content is context, not current evidence. |
126
+ | **Investment Brain** | Inquiry principles, causal frames, falsifiers, limits, and abstention rules for a selected analysis. |
127
+ | **Decision Memory** | Prior judgments, outcomes, postmortems, lessons, and explicit improvement records for future review. |
128
+ | **Strategy** | Reusable user-owned decision rules that can shape later research without granting execution authority. |
129
+
130
+ The workspace stays inspectable and versionable:
131
+
132
+ ```text
133
+ trading/
134
+ research/ # snapshots, datasets, artifacts, calculations
135
+ reports/ # research reports and handoffs
136
+ forecasts/ # forward-looking judgments
137
+ decisions/ # decision context and review history
138
+ wikis/ # local and active Wiki knowledge
139
+ investment-brains/ # user-owned inquiry frameworks
140
+ ```
141
+
142
+ Knowledge, Brain, Strategy, and Decision Memory remain distinct. A Wiki does
143
+ not become proof, a Brain does not choose agents, and an improvement record does
144
+ not silently rewrite prompts, skills, policy, or execution gates.
145
+
146
+ ## Install
147
+
148
+ For normal use, attach TradingCodex to the folder where you want research to
149
+ live. Do not clone this source repository into that workspace.
150
+
151
+ You need Git, `uvx`, and an installed, authenticated `codex` CLI.
152
+
153
+ On macOS/Linux:
154
+
155
+ ```bash
156
+ cd /path/to/an/empty-workspace
157
+ uvx --refresh --from tradingcodex tcx attach . && ./tcx doctor
158
+ ./tcx service ensure
159
+ ```
160
+
161
+ On native Windows PowerShell:
162
+
163
+ ```powershell
164
+ cd C:\path\to\an\empty-workspace
165
+ uvx --refresh --from tradingcodex tcx attach .
166
+ .\tcx.cmd doctor
167
+ .\tcx.cmd service ensure
168
+ ```
169
+
170
+ After installation, fully restart Codex, reopen and trust the workspace, and
171
+ trust every TradingCodex hook when Codex prompts you. If hooks are presented
172
+ one at a time, approve each project hook before starting a new task. The viewer
173
+ URL is printed by `./tcx service status`; the release default is
174
+ `http://127.0.0.1:48267/`. End users do not need Node, npm, or a separate
175
+ frontend server.
176
+
177
+ The Head Manager inherits the active Codex model and reasoning setting. For
178
+ full research workflows, we recommend `gpt-5.6-sol` with `high` or `xhigh`
179
+ reasoning.
180
+
181
+ ### Start with skills
182
+
183
+ Start with the skill that matches the work. Each example is a prompt you can
184
+ paste into a new Codex task; the [full skill directory](https://monarchjuno.github.io/tradingcodex/skills.html)
185
+ has exact invocation rules, boundaries, and deeper examples.
186
+
187
+ | Skill | Use it for | Example |
188
+ | --- | --- | --- |
189
+ | [$tcx-plan](https://monarchjuno.github.io/tradingcodex/skill-plan.html) | Frame the outcome, scope, constraints, and stop conditions. | `Clarify a 3-year MSFT quality-compounder mandate. No order.` |
190
+ | [$tcx-workflow](https://monarchjuno.github.io/tradingcodex/skill-workflow.html) | Run dynamic research with the smallest useful team. | `Analyze MSFT as a medium-term quality compounder. Include contrary evidence. No order.` |
191
+ | [$tcx-memory](https://monarchjuno.github.io/tradingcodex/skill-memory.html) | Replay prior judgment and test whether lessons still hold. | `Review the last MSFT thesis against what was known then.` |
192
+ | [$tcx-wiki](https://monarchjuno.github.io/tradingcodex/skill-wiki.html) | Keep reusable company and industry context separate from live evidence. | `Put stable semiconductor value-chain facts from the latest Artifact into the Wiki.` |
193
+ | [$tcx-brain](https://monarchjuno.github.io/tradingcodex/skill-brain.html) | Shape inquiry with user-owned heuristics, falsifiers, and limits. | `Create a cautious quality-compounder inquiry framework.` |
194
+ | [$tcx-strategy](https://monarchjuno.github.io/tradingcodex/skill-strategy.html) | Turn decision rules into a reusable, reviewable method. | `Define entry, sizing, and invalidation rules for quality compounders.` |
195
+
196
+ Use the viewer to inspect the resulting Episodes, Library, Wiki, and System
197
+ posture. It is read-only; use Codex to continue, narrow, or stop the work.
198
+
199
+ ## The guardrail
200
+
201
+ Research, Wiki, Brain, Strategy, memory, and automation do not imply broker
202
+ authority. Provider connection, ticket drafting, checks, approval, and final
203
+ action remain separate checkpoints. Paper is built in; live providers require
204
+ their own installation, policy approval, explicit confirmation, sync, and audit
205
+ gates.
206
+
207
+ Raw credentials never belong in prompts, workspace files, reports, API/MCP
208
+ responses, artifacts, or audit data.
209
+
210
+ ## Learn more
211
+
212
+ - [Dynamic workflow](https://monarchjuno.github.io/tradingcodex/dynamic-workflow.html)
213
+ — evidence-driven agent selection, reassessment, and stopping.
214
+ - [Knowledge Wiki](https://monarchjuno.github.io/tradingcodex/skill-wiki.html)
215
+ — reusable background knowledge and explicit write boundaries.
216
+ - [Investment Brain](https://monarchjuno.github.io/tradingcodex/skill-brain.html)
217
+ — inquiry and interpretation frameworks.
218
+ - [Improve](https://monarchjuno.github.io/tradingcodex/improve.html) —
219
+ Decision Memory, postmortems, lessons, and controlled evolution.
220
+ - [Installation](installation.md) — updates, runtime homes, service startup,
221
+ and recovery.
222
+ - [Safety, policy, and execution](docs/safety-policy-and-execution.md) —
223
+ permissions, approvals, brokers, secrets, and final-action boundaries.
224
+ - [Documentation index](docs/README.md) — the complete product reference.
225
+
226
+ ## Developing TradingCodex
227
+
228
+ This repository is product source, not a user workspace. Start with
229
+ [CONTRIBUTING.md](CONTRIBUTING.md), then follow the validation route in
230
+ [docs/validation-and-test-plan.md](docs/validation-and-test-plan.md).
231
+
232
+ ## License
233
+
234
+ TradingCodex is an Apache-2.0 open-core project. See [LICENSE](LICENSE),
235
+ [NOTICE](NOTICE), and [TRADEMARKS.md](TRADEMARKS.md).
@@ -0,0 +1,197 @@
1
+ <h1 align="center">TradingCodex: An Evolving Multi-Agent Investment Team for Codex</h1>
2
+
3
+
4
+ <p align="center">
5
+ <img src="assets/tradingcodex-banner-v3.png" alt="TradingCodex brings market context into a Codex-native investment workflow" width="100%">
6
+ </p>
7
+
8
+ <div align="center">
9
+ <a href="https://pypi.org/project/tradingcodex/"><img alt="PyPI" src="https://img.shields.io/pypi/v/tradingcodex?label=PyPI"></a>
10
+ <a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue"></a>
11
+ <img alt="Python" src="https://img.shields.io/badge/python-3.11--3.14-3776AB?logo=python&amp;logoColor=white">
12
+ <img alt="Django" src="https://img.shields.io/badge/Django-5.2-092E20?logo=django&amp;logoColor=white">
13
+ </div>
14
+
15
+ <p align="center">
16
+ <a href="#dynamics">Dynamics</a> ·
17
+ <a href="#statics">Statics</a> ·
18
+ <a href="#install">Install</a> ·
19
+ <a href="https://monarchjuno.github.io/tradingcodex/">User Guide</a>
20
+ </p>
21
+
22
+ TradingCodex brings an evolving investment team into native Codex. Ask a
23
+ question in ordinary language; the right agents collaborate, challenge the
24
+ evidence, and leave behind reusable context for the next decision.
25
+
26
+ It is research-first, local-first, and paper-first. A research answer never
27
+ becomes a broker action on its own.
28
+
29
+ ## Dynamics
30
+
31
+ ### The team changes with the question
32
+
33
+ TradingCodex does not send every ticker through the same checklist. Head
34
+ Manager reads the mandate, chooses the smallest useful group of agents, runs
35
+ independent work in parallel when useful, and revises the team when accepted
36
+ evidence exposes a new gap or conflict.
37
+
38
+ <p align="center">
39
+ <img src="assets/tradingcodex-dynamics.svg" alt="Head Manager dynamically coordinates nine investment specialist agents in a research loop" width="100%">
40
+ </p>
41
+
42
+ ### The agents
43
+
44
+ | Agent | What it brings to the team |
45
+ | --- | --- |
46
+ | **Fundamental Analyst** | Business model, financials, filings, and economics. |
47
+ | **Technical Analyst** | Price, trend, momentum, volume, volatility, and liquidity. |
48
+ | **News Analyst** | Disclosures, news, chronology, and narrative change. |
49
+ | **Macro Analyst** | Rates, FX, commodities, policy, and macro transmission. |
50
+ | **Instrument Analyst** | ETF, index, options, crypto, and market-structure mechanics. |
51
+ | **Valuation Analyst** | Ranges, scenarios, sensitivities, and valuation gaps. |
52
+ | **Portfolio Manager** | Portfolio fit, sizing, concentration, and readiness. |
53
+ | **Risk Manager** | Downside, restrictions, risk checks, and approval readiness. |
54
+ | **Judgment Reviewer** | Independent challenge of evidence, conflicts, and confidence. |
55
+
56
+ ### The workflow is a loop
57
+
58
+ ```text
59
+ question
60
+ -> Head Manager
61
+ -> smallest useful specialist wave
62
+ -> accepted evidence and artifacts
63
+ -> follow up / add a role / request review / synthesize / stop
64
+ -> next question or decision
65
+ ```
66
+
67
+ The next agent is chosen by the next useful question, not by a preset research
68
+ DAG. A narrow question can stay direct. A high-consequence recommendation can
69
+ expand to independent portfolio, risk, and judgment review. There is no
70
+ execution agent.
71
+
72
+ ## Statics
73
+
74
+ ### The context that stays with you
75
+
76
+ The current workflow is dynamic. The useful work it produces is static,
77
+ readable, and reusable: files and memory that make the next analysis better
78
+ without hiding the evidence inside a chat or silently changing system rules.
79
+
80
+ <p align="center">
81
+ <img src="assets/tradingcodex-statics.svg" alt="TradingCodex stores research memory, Wiki, Brain, and Decision Memory as reusable workspace context" width="100%">
82
+ </p>
83
+
84
+ | Static layer | What remains after the run |
85
+ | --- | --- |
86
+ | **Research Memory** | Source Snapshots, Datasets, reports, forecasts, decisions, calculations, provenance, and evidence gaps. |
87
+ | **Knowledge Wiki** | Reusable company, product, technology, industry, and value-chain background. Wiki content is context, not current evidence. |
88
+ | **Investment Brain** | Inquiry principles, causal frames, falsifiers, limits, and abstention rules for a selected analysis. |
89
+ | **Decision Memory** | Prior judgments, outcomes, postmortems, lessons, and explicit improvement records for future review. |
90
+ | **Strategy** | Reusable user-owned decision rules that can shape later research without granting execution authority. |
91
+
92
+ The workspace stays inspectable and versionable:
93
+
94
+ ```text
95
+ trading/
96
+ research/ # snapshots, datasets, artifacts, calculations
97
+ reports/ # research reports and handoffs
98
+ forecasts/ # forward-looking judgments
99
+ decisions/ # decision context and review history
100
+ wikis/ # local and active Wiki knowledge
101
+ investment-brains/ # user-owned inquiry frameworks
102
+ ```
103
+
104
+ Knowledge, Brain, Strategy, and Decision Memory remain distinct. A Wiki does
105
+ not become proof, a Brain does not choose agents, and an improvement record does
106
+ not silently rewrite prompts, skills, policy, or execution gates.
107
+
108
+ ## Install
109
+
110
+ For normal use, attach TradingCodex to the folder where you want research to
111
+ live. Do not clone this source repository into that workspace.
112
+
113
+ You need Git, `uvx`, and an installed, authenticated `codex` CLI.
114
+
115
+ On macOS/Linux:
116
+
117
+ ```bash
118
+ cd /path/to/an/empty-workspace
119
+ uvx --refresh --from tradingcodex tcx attach . && ./tcx doctor
120
+ ./tcx service ensure
121
+ ```
122
+
123
+ On native Windows PowerShell:
124
+
125
+ ```powershell
126
+ cd C:\path\to\an\empty-workspace
127
+ uvx --refresh --from tradingcodex tcx attach .
128
+ .\tcx.cmd doctor
129
+ .\tcx.cmd service ensure
130
+ ```
131
+
132
+ After installation, fully restart Codex, reopen and trust the workspace, and
133
+ trust every TradingCodex hook when Codex prompts you. If hooks are presented
134
+ one at a time, approve each project hook before starting a new task. The viewer
135
+ URL is printed by `./tcx service status`; the release default is
136
+ `http://127.0.0.1:48267/`. End users do not need Node, npm, or a separate
137
+ frontend server.
138
+
139
+ The Head Manager inherits the active Codex model and reasoning setting. For
140
+ full research workflows, we recommend `gpt-5.6-sol` with `high` or `xhigh`
141
+ reasoning.
142
+
143
+ ### Start with skills
144
+
145
+ Start with the skill that matches the work. Each example is a prompt you can
146
+ paste into a new Codex task; the [full skill directory](https://monarchjuno.github.io/tradingcodex/skills.html)
147
+ has exact invocation rules, boundaries, and deeper examples.
148
+
149
+ | Skill | Use it for | Example |
150
+ | --- | --- | --- |
151
+ | [$tcx-plan](https://monarchjuno.github.io/tradingcodex/skill-plan.html) | Frame the outcome, scope, constraints, and stop conditions. | `Clarify a 3-year MSFT quality-compounder mandate. No order.` |
152
+ | [$tcx-workflow](https://monarchjuno.github.io/tradingcodex/skill-workflow.html) | Run dynamic research with the smallest useful team. | `Analyze MSFT as a medium-term quality compounder. Include contrary evidence. No order.` |
153
+ | [$tcx-memory](https://monarchjuno.github.io/tradingcodex/skill-memory.html) | Replay prior judgment and test whether lessons still hold. | `Review the last MSFT thesis against what was known then.` |
154
+ | [$tcx-wiki](https://monarchjuno.github.io/tradingcodex/skill-wiki.html) | Keep reusable company and industry context separate from live evidence. | `Put stable semiconductor value-chain facts from the latest Artifact into the Wiki.` |
155
+ | [$tcx-brain](https://monarchjuno.github.io/tradingcodex/skill-brain.html) | Shape inquiry with user-owned heuristics, falsifiers, and limits. | `Create a cautious quality-compounder inquiry framework.` |
156
+ | [$tcx-strategy](https://monarchjuno.github.io/tradingcodex/skill-strategy.html) | Turn decision rules into a reusable, reviewable method. | `Define entry, sizing, and invalidation rules for quality compounders.` |
157
+
158
+ Use the viewer to inspect the resulting Episodes, Library, Wiki, and System
159
+ posture. It is read-only; use Codex to continue, narrow, or stop the work.
160
+
161
+ ## The guardrail
162
+
163
+ Research, Wiki, Brain, Strategy, memory, and automation do not imply broker
164
+ authority. Provider connection, ticket drafting, checks, approval, and final
165
+ action remain separate checkpoints. Paper is built in; live providers require
166
+ their own installation, policy approval, explicit confirmation, sync, and audit
167
+ gates.
168
+
169
+ Raw credentials never belong in prompts, workspace files, reports, API/MCP
170
+ responses, artifacts, or audit data.
171
+
172
+ ## Learn more
173
+
174
+ - [Dynamic workflow](https://monarchjuno.github.io/tradingcodex/dynamic-workflow.html)
175
+ — evidence-driven agent selection, reassessment, and stopping.
176
+ - [Knowledge Wiki](https://monarchjuno.github.io/tradingcodex/skill-wiki.html)
177
+ — reusable background knowledge and explicit write boundaries.
178
+ - [Investment Brain](https://monarchjuno.github.io/tradingcodex/skill-brain.html)
179
+ — inquiry and interpretation frameworks.
180
+ - [Improve](https://monarchjuno.github.io/tradingcodex/improve.html) —
181
+ Decision Memory, postmortems, lessons, and controlled evolution.
182
+ - [Installation](installation.md) — updates, runtime homes, service startup,
183
+ and recovery.
184
+ - [Safety, policy, and execution](docs/safety-policy-and-execution.md) —
185
+ permissions, approvals, brokers, secrets, and final-action boundaries.
186
+ - [Documentation index](docs/README.md) — the complete product reference.
187
+
188
+ ## Developing TradingCodex
189
+
190
+ This repository is product source, not a user workspace. Start with
191
+ [CONTRIBUTING.md](CONTRIBUTING.md), then follow the validation route in
192
+ [docs/validation-and-test-plan.md](docs/validation-and-test-plan.md).
193
+
194
+ ## License
195
+
196
+ TradingCodex is an Apache-2.0 open-core project. See [LICENSE](LICENSE),
197
+ [NOTICE](NOTICE), and [TRADEMARKS.md](TRADEMARKS.md).
@@ -0,0 +1,109 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1400 840" role="img" aria-labelledby="title desc">
2
+ <title id="title">TradingCodex dynamic multi-agent workflow</title>
3
+ <desc id="desc">Head Manager receives a user question, selects a useful subset from nine individual agents, collects evidence, and loops back to reassess the next step.</desc>
4
+ <style>
5
+ .title { font-family: Arial, sans-serif; font-size: 36px; font-weight: 700; }
6
+ .subtitle { font-family: Arial, sans-serif; font-size: 19px; font-weight: 400; }
7
+ .label { font-family: Arial, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 1.4px; }
8
+ .box-title { font-family: Arial, sans-serif; font-size: 23px; font-weight: 700; }
9
+ .role { font-family: Arial, sans-serif; font-size: 17px; font-weight: 700; }
10
+ .body { font-family: Arial, sans-serif; font-size: 15px; font-weight: 400; }
11
+ .small { font-family: Arial, sans-serif; font-size: 14px; font-weight: 400; }
12
+ .footer { font-family: Arial, sans-serif; font-size: 18px; font-weight: 700; }
13
+ </style>
14
+
15
+ <rect width="1400" height="840" rx="28" fill="#0b1627"/>
16
+ <path d="M0 135 H1400 M0 300 H1400 M0 465 H1400 M0 630 H1400" stroke="#b5cfff" stroke-opacity="0.05"/>
17
+ <path d="M90 0 V840 M440 0 V840 M790 0 V840 M1140 0 V840" stroke="#b5cfff" stroke-opacity="0.05"/>
18
+
19
+ <text x="70" y="72" fill="#f4f8ff" class="title">Dynamics: the team changes with the question</text>
20
+ <text x="70" y="108" fill="#afc1d8" class="subtitle">Head Manager selects the smallest useful set of agents, then lets evidence choose what happens next.</text>
21
+
22
+ <!-- Connectors are deliberately drawn before the cards so no line crosses a box. -->
23
+ <g fill="none" stroke="#68ddff" stroke-width="3" stroke-opacity="0.75">
24
+ <path d="M330 190 H485"/>
25
+ <path d="M700 250 V292"/>
26
+ <path d="M255 292 H1145" stroke-dasharray="8 10"/>
27
+ <path d="M255 292 V322"/>
28
+ <path d="M700 292 V322"/>
29
+ <path d="M1145 292 V322"/>
30
+ <path d="M255 386 V397 M700 386 V397 M1145 386 V397"/>
31
+ <path d="M255 397 H1145" stroke-dasharray="8 10"/>
32
+ <path d="M255 397 V408 M700 397 V408 M1145 397 V408"/>
33
+ <path d="M255 472 V483 M700 472 V483 M1145 472 V483"/>
34
+ <path d="M255 483 H1145" stroke-dasharray="8 10"/>
35
+ <path d="M255 483 V494 M700 483 V494 M1145 483 V494"/>
36
+ </g>
37
+
38
+ <g fill="none" stroke="#66d9bf" stroke-width="3" stroke-opacity="0.8">
39
+ <path d="M255 558 V610 M700 558 V610 M1145 558 V610"/>
40
+ <path d="M255 610 H1145"/>
41
+ <path d="M600 610 V660"/>
42
+ <path d="M840 705 H900" stroke="#b493ff" stroke-dasharray="8 8"/>
43
+ <path d="M888 698 L900 705 L888 712" stroke="#b493ff"/>
44
+ </g>
45
+
46
+ <g fill="none" stroke="#b493ff" stroke-width="3" stroke-opacity="0.85" stroke-dasharray="9 8">
47
+ <path d="M1300 705 H1375 V120 H700 V128"/>
48
+ <path d="M692 116 L700 128 L708 116" stroke-dasharray="none"/>
49
+ </g>
50
+
51
+ <g>
52
+ <rect x="70" y="145" width="260" height="90" rx="18" fill="#142a40" stroke="#66d9bf" stroke-width="2"/>
53
+ <text x="96" y="176" fill="#73e2d0" class="label">START</text>
54
+ <text x="96" y="208" fill="#f4f8ff" class="box-title">User question</text>
55
+ <text x="96" y="228" fill="#c0d0e3" class="small">outcome, scope, constraints</text>
56
+
57
+ <rect x="485" y="130" width="430" height="120" rx="22" fill="#1f4162" stroke="#68ddff" stroke-width="2"/>
58
+ <text x="520" y="166" fill="#8fe8ff" class="label">COORDINATOR</text>
59
+ <text x="520" y="205" fill="#f4f8ff" class="box-title">Head Manager</text>
60
+ <text x="520" y="232" fill="#c8d7ee" class="body">interpret -> select -> reassess -> synthesize</text>
61
+
62
+ </g>
63
+
64
+ <g>
65
+ <rect x="60" y="322" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
66
+ <text x="84" y="351" fill="#f4f8ff" class="role">Fundamental Analyst</text>
67
+ <text x="84" y="373" fill="#c0d0e3" class="small">business, financials, filings</text>
68
+ <rect x="505" y="322" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
69
+ <text x="529" y="351" fill="#f4f8ff" class="role">Technical Analyst</text>
70
+ <text x="529" y="373" fill="#c0d0e3" class="small">price, trend, volatility, liquidity</text>
71
+ <rect x="950" y="322" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
72
+ <text x="974" y="351" fill="#f4f8ff" class="role">News Analyst</text>
73
+ <text x="974" y="373" fill="#c0d0e3" class="small">disclosures, chronology, narrative</text>
74
+
75
+ <rect x="60" y="408" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
76
+ <text x="84" y="437" fill="#f4f8ff" class="role">Macro Analyst</text>
77
+ <text x="84" y="459" fill="#c0d0e3" class="small">rates, FX, policy transmission</text>
78
+ <rect x="505" y="408" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
79
+ <text x="529" y="437" fill="#f4f8ff" class="role">Instrument Analyst</text>
80
+ <text x="529" y="459" fill="#c0d0e3" class="small">ETF, options, crypto mechanics</text>
81
+ <rect x="950" y="408" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
82
+ <text x="974" y="437" fill="#f4f8ff" class="role">Valuation Analyst</text>
83
+ <text x="974" y="459" fill="#c0d0e3" class="small">ranges, scenarios, sensitivities</text>
84
+
85
+ <rect x="60" y="494" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
86
+ <text x="84" y="523" fill="#f4f8ff" class="role">Portfolio Manager</text>
87
+ <text x="84" y="545" fill="#c0d0e3" class="small">fit, sizing, concentration</text>
88
+ <rect x="505" y="494" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
89
+ <text x="529" y="523" fill="#f4f8ff" class="role">Risk Manager</text>
90
+ <text x="529" y="545" fill="#c0d0e3" class="small">downside, restrictions, readiness</text>
91
+ <rect x="950" y="494" width="390" height="64" rx="16" fill="#14253c" stroke="#56dfff" stroke-width="1.5"/>
92
+ <text x="974" y="523" fill="#f4f8ff" class="role">Judgment Reviewer</text>
93
+ <text x="974" y="545" fill="#c0d0e3" class="small">independent challenge, conflicts</text>
94
+ </g>
95
+
96
+ <g>
97
+ <rect x="360" y="670" width="480" height="90" rx="20" fill="#142b40" stroke="#66d9bf" stroke-width="2"/>
98
+ <text x="395" y="704" fill="#73e2d0" class="label">SHARED OUTPUT</text>
99
+ <text x="395" y="735" fill="#f4f8ff" class="box-title">Accepted evidence + artifacts</text>
100
+ <text x="395" y="753" fill="#c0d0e3" class="small">snapshots, datasets, reports, forecasts</text>
101
+
102
+ <rect x="900" y="670" width="400" height="90" rx="20" fill="#25203a" stroke="#b493ff" stroke-width="2"/>
103
+ <text x="935" y="704" fill="#c4a9ff" class="label">LOOP BACK</text>
104
+ <text x="935" y="735" fill="#f4f8ff" class="box-title">Reassess -&gt; Head Manager</text>
105
+ <text x="935" y="753" fill="#d5c8ed" class="small">follow up / add / review / stop</text>
106
+ </g>
107
+
108
+ <text x="70" y="805" fill="#f5e8f2" class="footer">No fixed team. No preset DAG. The next useful question chooses the next useful agent.</text>
109
+ </svg>
@@ -0,0 +1,54 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1400 680" role="img" aria-labelledby="title desc">
2
+ <title id="title">TradingCodex static memory and context</title>
3
+ <desc id="desc">Research Memory, Knowledge Wiki, Investment Brain, and Decision Memory remain as reusable context for future investment work.</desc>
4
+ <style>
5
+ .title { font-family: Arial, sans-serif; font-size: 36px; font-weight: 700; }
6
+ .subtitle { font-family: Arial, sans-serif; font-size: 19px; font-weight: 400; }
7
+ .card-title { font-family: Arial, sans-serif; font-size: 23px; font-weight: 700; }
8
+ .body { font-family: Arial, sans-serif; font-size: 17px; font-weight: 400; }
9
+ .label { font-family: Arial, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 1.4px; }
10
+ </style>
11
+
12
+ <rect width="1400" height="680" rx="28" fill="#0b1627"/>
13
+ <path d="M0 135 H1400 M0 340 H1400 M0 545 H1400" stroke="#b5cfff" stroke-opacity="0.05"/>
14
+ <path d="M110 0 V680 M460 0 V680 M810 0 V680 M1160 0 V680" stroke="#b5cfff" stroke-opacity="0.05"/>
15
+
16
+ <text x="70" y="72" fill="#f4f8ff" class="title">Statics: the context that stays with you</text>
17
+ <text x="70" y="108" fill="#afc1d8" class="subtitle">The current run is dynamic. Useful memory remains readable, reusable, and yours.</text>
18
+
19
+ <g>
20
+ <rect x="54" y="155" width="610" height="205" rx="22" fill="#0e1c2e" stroke="#56dfff" stroke-width="2"/>
21
+ <circle cx="96" cy="202" r="17" fill="#56dfff"/>
22
+ <text x="130" y="210" fill="#f4f8ff" class="card-title">Research Memory</text>
23
+ <text x="96" y="255" fill="#c0d0e3" class="body">Snapshots, datasets, reports, forecasts, decisions,</text>
24
+ <text x="96" y="282" fill="#c0d0e3" class="body">calculations, provenance, and source/as-of posture.</text>
25
+ <text x="96" y="327" fill="#73e2d0" class="label">EVIDENCE THAT SURVIVES THE CHAT</text>
26
+ </g>
27
+
28
+ <g>
29
+ <rect x="736" y="155" width="610" height="205" rx="22" fill="#0e1c2e" stroke="#b493ff" stroke-width="2"/>
30
+ <circle cx="778" cy="202" r="17" fill="#b493ff"/>
31
+ <text x="812" y="210" fill="#f4f8ff" class="card-title">Knowledge Wiki</text>
32
+ <text x="778" y="255" fill="#c0d0e3" class="body">Reusable company, industry, product, technology,</text>
33
+ <text x="778" y="282" fill="#c0d0e3" class="body">and value-chain background.</text>
34
+ <text x="778" y="327" fill="#73e2d0" class="label">BACKGROUND, NOT PROOF</text>
35
+ </g>
36
+
37
+ <g>
38
+ <rect x="54" y="405" width="610" height="205" rx="22" fill="#0e1c2e" stroke="#66d9bf" stroke-width="2"/>
39
+ <circle cx="96" cy="452" r="17" fill="#66d9bf"/>
40
+ <text x="130" y="460" fill="#f4f8ff" class="card-title">Investment Brain</text>
41
+ <text x="96" y="505" fill="#c0d0e3" class="body">Inquiry principles, causal frames, falsifiers, limits,</text>
42
+ <text x="96" y="532" fill="#c0d0e3" class="body">and abstention rules for a selected run.</text>
43
+ <text x="96" y="577" fill="#73e2d0" class="label">HOW TO THINK, NOT WHAT TO CLAIM</text>
44
+ </g>
45
+
46
+ <g>
47
+ <rect x="736" y="405" width="610" height="205" rx="22" fill="#0e1c2e" stroke="#ffd27c" stroke-width="2"/>
48
+ <circle cx="778" cy="452" r="17" fill="#ffd27c"/>
49
+ <text x="812" y="460" fill="#f4f8ff" class="card-title">Decision Memory</text>
50
+ <text x="778" y="505" fill="#c0d0e3" class="body">Past judgments, forecasts, postmortems, lessons,</text>
51
+ <text x="778" y="532" fill="#c0d0e3" class="body">and explicit improvement review.</text>
52
+ <text x="778" y="577" fill="#73e2d0" class="label">HUMAN-CONTROLLED REVIEW</text>
53
+ </g>
54
+ </svg>