tradingcodex 0.2.3__tar.gz → 0.2.5__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 (325) hide show
  1. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/MANIFEST.in +1 -1
  2. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/PKG-INFO +1 -1
  3. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/deployment.md +31 -3
  4. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/generated-workspaces.md +85 -26
  5. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/interfaces-and-surfaces.md +16 -4
  6. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/roles-skills-and-workflows.md +23 -25
  7. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/validation-and-test-plan.md +3 -1
  8. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/installation.md +17 -0
  9. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/pyproject.toml +2 -1
  10. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tests/test_e2e_user_scenarios.py +11 -5
  11. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tests/test_python_migration.py +302 -213
  12. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex.egg-info/PKG-INFO +1 -1
  13. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex.egg-info/SOURCES.txt +15 -29
  14. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/__main__.py +11 -2
  15. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/bootstrap.py +25 -0
  16. tradingcodex-0.2.5/tradingcodex_cli/commands/connectors.py +66 -0
  17. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/doctor.py +7 -6
  18. tradingcodex-0.2.5/tradingcodex_cli/commands/mode.py +39 -0
  19. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/generator.py +4 -1
  20. tradingcodex-0.2.5/tradingcodex_cli/startup_status.py +445 -0
  21. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/agents.py +9 -16
  22. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/brokers.py +196 -4
  23. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/components.py +25 -6
  24. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/harness.py +120 -11
  25. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/orders.py +13 -10
  26. tradingcodex-0.2.5/tradingcodex_service/application/runtime_mode.py +107 -0
  27. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/mcp_runtime.py +41 -1
  28. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/settings.py +3 -2
  29. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/fragments/starter_prompt.html +1 -1
  30. tradingcodex-0.2.5/tradingcodex_service/version.py +1 -0
  31. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.codex/config.toml +16 -2
  32. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +53 -24
  33. tradingcodex-0.2.5/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +122 -0
  34. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/AGENTS.md +5 -0
  35. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/tcx +21 -1
  36. tradingcodex-0.2.5/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +31 -0
  37. tradingcodex-0.2.5/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +6 -0
  38. tradingcodex-0.2.5/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +23 -0
  39. tradingcodex-0.2.5/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +6 -0
  40. tradingcodex-0.2.5/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +23 -0
  41. tradingcodex-0.2.5/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +6 -0
  42. tradingcodex-0.2.3/tradingcodex_cli/startup_status.py +0 -254
  43. tradingcodex-0.2.3/tradingcodex_service/version.py +0 -1
  44. tradingcodex-0.2.3/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +0 -202
  45. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/investment-workflow-map/SKILL.md +0 -77
  46. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/investment-workflow-map/agents/openai.yaml +0 -6
  47. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/manage-optional-skills/SKILL.md +0 -101
  48. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/manage-optional-skills/agents/openai.yaml +0 -6
  49. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/manage-subagents/SKILL.md +0 -75
  50. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/manage-subagents/agents/openai.yaml +0 -6
  51. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/orchestrate-workflow/SKILL.md +0 -54
  52. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/orchestrate-workflow/agents/openai.yaml +0 -6
  53. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/scenario-quality-gates/SKILL.md +0 -154
  54. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/scenario-quality-gates/agents/openai.yaml +0 -6
  55. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/synthesize-decision/SKILL.md +0 -63
  56. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/synthesize-decision/agents/openai.yaml +0 -6
  57. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/tradingcodex-operator/SKILL.md +0 -17
  58. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/tradingcodex-operator/agents/openai.yaml +0 -6
  59. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/SKILL.md +0 -99
  60. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/agents/openai.yaml +0 -6
  61. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/asset-classes.md +0 -43
  62. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/capability-profile.md +0 -51
  63. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/connector-templates.md +0 -70
  64. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/safety-runbook.md +0 -31
  65. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/references/troubleshooting.md +0 -50
  66. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/scripts/summarize_connector_status.py +0 -39
  67. tradingcodex-0.2.3/workspace_templates/modules/repo-skills/files/.agents/skills/use-tradingcodex-server/scripts/validate_connector_profile.py +0 -80
  68. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/CONTRIBUTING.md +0 -0
  69. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/LICENSE +0 -0
  70. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/NOTICE +0 -0
  71. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/README.md +0 -0
  72. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/TRADEMARKS.md +0 -0
  73. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/__init__.py +0 -0
  74. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/audit/__init__.py +0 -0
  75. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/audit/admin.py +0 -0
  76. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/audit/apps.py +0 -0
  77. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/audit/migrations/0001_initial.py +0 -0
  78. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/audit/migrations/__init__.py +0 -0
  79. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/audit/models.py +0 -0
  80. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/harness/__init__.py +0 -0
  81. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/harness/admin.py +0 -0
  82. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/harness/apps.py +0 -0
  83. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/harness/migrations/0001_initial.py +0 -0
  84. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/harness/migrations/__init__.py +0 -0
  85. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/harness/models.py +0 -0
  86. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/harness/templatetags/__init__.py +0 -0
  87. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/__init__.py +0 -0
  88. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/admin.py +0 -0
  89. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/apps.py +0 -0
  90. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/migrations/0001_initial.py +0 -0
  91. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/migrations/0002_brokerconnection_brokeraccount_instrumentmap.py +0 -0
  92. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/migrations/__init__.py +0 -0
  93. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/models.py +0 -0
  94. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/integrations/services.py +0 -0
  95. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/mcp/__init__.py +0 -0
  96. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/mcp/admin.py +0 -0
  97. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/mcp/apps.py +0 -0
  98. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/mcp/migrations/0001_initial.py +0 -0
  99. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/mcp/migrations/__init__.py +0 -0
  100. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/mcp/models.py +0 -0
  101. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/mcp/services.py +0 -0
  102. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/__init__.py +0 -0
  103. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/admin.py +0 -0
  104. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/apps.py +0 -0
  105. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/migrations/0001_initial.py +0 -0
  106. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/migrations/0002_approvalreceipt_approved_order_type_and_more.py +0 -0
  107. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/migrations/0003_migrate_orderintent_to_orderticket.py +0 -0
  108. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/migrations/0004_remove_order_intent_compat_fields.py +0 -0
  109. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/migrations/__init__.py +0 -0
  110. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/models.py +0 -0
  111. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/orders/services.py +0 -0
  112. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/policy/__init__.py +0 -0
  113. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/policy/admin.py +0 -0
  114. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/policy/apps.py +0 -0
  115. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/policy/migrations/0001_initial.py +0 -0
  116. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/policy/migrations/__init__.py +0 -0
  117. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/policy/models.py +0 -0
  118. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/policy/services.py +0 -0
  119. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/portfolio/__init__.py +0 -0
  120. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/portfolio/admin.py +0 -0
  121. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/portfolio/apps.py +0 -0
  122. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/portfolio/migrations/0001_initial.py +0 -0
  123. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/portfolio/migrations/0002_brokersyncrun_portfolioledgerevent_reconciliationrun.py +0 -0
  124. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/portfolio/migrations/__init__.py +0 -0
  125. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/portfolio/models.py +0 -0
  126. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/research/__init__.py +0 -0
  127. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/research/admin.py +0 -0
  128. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/research/apps.py +0 -0
  129. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/research/migrations/__init__.py +0 -0
  130. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/research/models.py +0 -0
  131. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/workflows/__init__.py +0 -0
  132. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/workflows/admin.py +0 -0
  133. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/workflows/apps.py +0 -0
  134. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/workflows/migrations/0001_initial.py +0 -0
  135. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/workflows/migrations/__init__.py +0 -0
  136. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/apps/workflows/models.py +0 -0
  137. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/assets/tradingcodex-banner.svg +0 -0
  138. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/README.md +0 -0
  139. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/components.md +0 -0
  140. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/core-concepts-and-rules.md +0 -0
  141. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/financial-workflow-references.md +0 -0
  142. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/guardrails.md +0 -0
  143. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/harness.md +0 -0
  144. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/improvement-loop.md +0 -0
  145. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/licensing-and-commercialization.md +0 -0
  146. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/product-direction.md +0 -0
  147. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/research-memory-and-artifacts.md +0 -0
  148. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/safety-policy-and-execution.md +0 -0
  149. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/docs/system-architecture.md +0 -0
  150. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/install.sh +0 -0
  151. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/setup.cfg +0 -0
  152. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tests/test_broker_center_prd.py +0 -0
  153. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex.egg-info/dependency_links.txt +0 -0
  154. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex.egg-info/entry_points.txt +0 -0
  155. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex.egg-info/requires.txt +0 -0
  156. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex.egg-info/top_level.txt +0 -0
  157. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/__init__.py +0 -0
  158. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/__init__.py +0 -0
  159. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/db.py +0 -0
  160. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/mcp.py +0 -0
  161. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/orders.py +0 -0
  162. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/policy.py +0 -0
  163. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/profile.py +0 -0
  164. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/research.py +0 -0
  165. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/skills.py +0 -0
  166. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/strategies.py +0 -0
  167. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/subagents.py +0 -0
  168. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/utils.py +0 -0
  169. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/commands/workspaces.py +0 -0
  170. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/mcp_stdio.py +0 -0
  171. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_cli/service_autostart.py +0 -0
  172. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/__init__.py +0 -0
  173. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/admin.py +0 -0
  174. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/api.py +0 -0
  175. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/__init__.py +0 -0
  176. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/artifact_quality.py +0 -0
  177. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/audit.py +0 -0
  178. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/common.py +0 -0
  179. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/context_budget.py +0 -0
  180. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/markdown_preview.py +0 -0
  181. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/policy.py +0 -0
  182. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/portfolio.py +0 -0
  183. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/research.py +0 -0
  184. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/application/runtime.py +0 -0
  185. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/asgi.py +0 -0
  186. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/mcp_http.py +0 -0
  187. {tradingcodex-0.2.3 → tradingcodex-0.2.5/tradingcodex_service}/static/tradingcodex_admin/favicon.svg +0 -0
  188. {tradingcodex-0.2.3 → tradingcodex-0.2.5/tradingcodex_service}/static/tradingcodex_web/app.css +0 -0
  189. {tradingcodex-0.2.3 → tradingcodex-0.2.5/tradingcodex_service}/static/tradingcodex_web/app.js +0 -0
  190. {tradingcodex-0.2.3 → tradingcodex-0.2.5/tradingcodex_service}/static/tradingcodex_web/workbench.css +0 -0
  191. {tradingcodex-0.2.3 → tradingcodex-0.2.5/tradingcodex_service}/static/vendor/alpine/alpine.min.js +0 -0
  192. {tradingcodex-0.2.3 → tradingcodex-0.2.5/tradingcodex_service}/static/vendor/htmx/htmx.min.js +0 -0
  193. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/activity.html +0 -0
  194. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/agent_skills.html +0 -0
  195. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/agents.html +0 -0
  196. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/base.html +0 -0
  197. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/brokers.html +0 -0
  198. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/dashboard.html +0 -0
  199. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/fragments/role_inspector.html +0 -0
  200. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/fragments/topology_canvas.html +0 -0
  201. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/fragments/workspace_card.html +0 -0
  202. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/harness.html +0 -0
  203. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/mcp_router.html +0 -0
  204. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/orders.html +0 -0
  205. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/policy.html +0 -0
  206. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/portfolio.html +0 -0
  207. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/research.html +0 -0
  208. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/starter_prompt.html +0 -0
  209. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/templates/web/strategies.html +0 -0
  210. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/urls.py +0 -0
  211. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/web.py +0 -0
  212. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/tradingcodex_service/wsgi.py +0 -0
  213. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/__init__.py +0 -0
  214. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
  215. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
  216. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/audit/module.json +0 -0
  217. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
  218. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
  219. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.tradingcodex/capabilities.yaml +0 -0
  220. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
  221. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
  222. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/policy-bindings.yaml +0 -0
  223. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/principals.yaml +0 -0
  224. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/roles.yaml +0 -0
  225. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
  226. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/codex-base/module.json +0 -0
  227. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/access-policies.yaml +0 -0
  228. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
  229. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
  230. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
  231. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
  232. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
  233. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
  234. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
  235. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
  236. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
  237. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
  238. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
  239. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
  240. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
  241. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
  242. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
  243. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
  244. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/execution-operator.toml +0 -0
  245. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
  246. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
  247. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
  248. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
  249. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
  250. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
  251. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
  252. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
  253. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/head-manager.yaml +0 -0
  254. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
  255. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/subagent-registry.yaml +0 -0
  256. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/fixed-subagents/module.json +0 -0
  257. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
  258. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
  259. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
  260. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/.tradingcodex/policies/information-barriers.yaml +0 -0
  261. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
  262. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/approvals/.gitkeep +0 -0
  263. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
  264. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/orders/approved/.gitkeep +0 -0
  265. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/orders/draft/.gitkeep +0 -0
  266. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/orders/executed/.gitkeep +0 -0
  267. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/orders/rejected/.gitkeep +0 -0
  268. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
  269. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
  270. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
  271. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
  272. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
  273. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
  274. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
  275. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
  276. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
  277. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
  278. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
  279. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
  280. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/information-barriers/module.json +0 -0
  281. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/paper-trading/files/.tradingcodex/mcp/adapters/paper-trading.py +0 -0
  282. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/paper-trading/module.json +0 -0
  283. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/postmortem/files/.tradingcodex/workflows/postmortem.yaml +0 -0
  284. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/postmortem/module.json +0 -0
  285. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/SKILL.md +0 -0
  286. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/agents/openai.yaml +0 -0
  287. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/SKILL.md +0 -0
  288. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/agents/openai.yaml +0 -0
  289. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/SKILL.md +0 -0
  290. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/agents/openai.yaml +0 -0
  291. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/SKILL.md +0 -0
  292. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/agents/openai.yaml +0 -0
  293. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/SKILL.md +0 -0
  294. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/agents/openai.yaml +0 -0
  295. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/SKILL.md +0 -0
  296. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/agents/openai.yaml +0 -0
  297. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/SKILL.md +0 -0
  298. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/agents/openai.yaml +0 -0
  299. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/SKILL.md +0 -0
  300. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/agents/openai.yaml +0 -0
  301. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/SKILL.md +0 -0
  302. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/agents/openai.yaml +0 -0
  303. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/SKILL.md +0 -0
  304. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/agents/openai.yaml +0 -0
  305. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/SKILL.md +0 -0
  306. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/agents/openai.yaml +0 -0
  307. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/SKILL.md +0 -0
  308. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/agents/openai.yaml +0 -0
  309. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/SKILL.md +0 -0
  310. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/agents/openai.yaml +0 -0
  311. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/SKILL.md +0 -0
  312. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/agents/openai.yaml +0 -0
  313. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/SKILL.md +0 -0
  314. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/agents/openai.yaml +0 -0
  315. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/SKILL.md +0 -0
  316. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/agents/openai.yaml +0 -0
  317. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/repo-skills/module.json +0 -0
  318. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/stub-execution/files/.tradingcodex/mcp/adapters/stub-execution.py +0 -0
  319. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/stub-execution/module.json +0 -0
  320. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/adapters/live-adapter.contract.md +0 -0
  321. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
  322. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
  323. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
  324. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/smoke-call.py +0 -0
  325. {tradingcodex-0.2.3 → tradingcodex-0.2.5}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
@@ -9,5 +9,5 @@ recursive-include docs *
9
9
  recursive-include workspace_templates *
10
10
  recursive-include workspace_templates .*
11
11
  recursive-include tradingcodex_service/templates *
12
- recursive-include static *
12
+ recursive-include tradingcodex_service/static *
13
13
  global-exclude *.py[cod]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tradingcodex
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: Codex-native trading harness with a Django service plane and approved action boundary.
5
5
  Author: TradingCodex Authors
6
6
  License-Expression: Apache-2.0
@@ -140,7 +140,7 @@ python3.11 -m venv /tmp/tcx-testpypi
140
140
  /tmp/tcx-testpypi/bin/pip install \
141
141
  --index-url https://test.pypi.org/simple/ \
142
142
  --extra-index-url https://pypi.org/simple/ \
143
- tradingcodex==0.2.3
143
+ tradingcodex==0.2.5
144
144
  rm -rf /tmp/tcx-testpypi-smoke
145
145
  mkdir -p /tmp/tcx-testpypi-smoke
146
146
  cd /tmp/tcx-testpypi-smoke
@@ -169,7 +169,7 @@ After the PyPI workflow completes:
169
169
 
170
170
  ```bash
171
171
  python3.11 -m venv /tmp/tcx-pypi
172
- /tmp/tcx-pypi/bin/pip install tradingcodex==0.2.3
172
+ /tmp/tcx-pypi/bin/pip install tradingcodex==0.2.5
173
173
  rm -rf /tmp/tcx-pypi-smoke
174
174
  mkdir -p /tmp/tcx-pypi-smoke
175
175
  cd /tmp/tcx-pypi-smoke
@@ -204,6 +204,30 @@ TradingCodex has two update layers:
204
204
  generated files, generated indexes, project MCP config, hook scripts, and
205
205
  central DB schema
206
206
 
207
+ Generated workspace `./tcx update` normally refreshes through `uvx` first so
208
+ stale recorded Python paths do not rewrite templates. In restricted Codex
209
+ permissions, `head-manager` should not run the update itself because it rewrites
210
+ protected `.codex` prompt/config/hook surfaces. When the package is already
211
+ installed and Codex startup health reports `workspace_update_allowed=true`,
212
+ `head-manager` should tell the user to switch to full access plus TradingCodex
213
+ build mode, or run the workspace-only path from a terminal:
214
+
215
+ ```bash
216
+ ./tcx update --skip-refresh
217
+ ```
218
+
219
+ `head-manager` may run the update directly only when
220
+ `update_status.can_self_update=true`, which requires Codex full access,
221
+ unexpired TradingCodex build mode, and an explicit user request. After a
222
+ self-update it must stop and tell the user to fully restart Codex. The terminal
223
+ path avoids package-cache or user-tool writes and keeps self-modifying `.codex`
224
+ prompt/config/hook updates outside a restricted active Codex agent sandbox.
225
+ Generated Codex config declares the bounded `~/.tradingcodex` writable root so
226
+ central DB migrations, lock files, and update preferences can still work
227
+ without disabling the sandbox when the active Codex surface honors
228
+ project-scoped sandbox roots. If a package update is required first, the user
229
+ should run the package-refresh command from a terminal instead.
230
+
207
231
  `tcx update` must preserve `.tradingcodex/workspace.json` identity fields,
208
232
  including `workspace_id` and active profile. It may overwrite generated paths
209
233
  owned by `workspace_templates/modules/*/files`, and it must not overwrite
@@ -225,7 +249,11 @@ Use PEP 440 versions:
225
249
  - `0.2.2` for dashboard startup behavior fixes after `0.2.1`
226
250
  - `0.2.3` for workflow-planner UX, fixed strategy authoring, profile-scoped
227
251
  ticket isolation, workspace-scoped transition audit, and startup/status fixes
228
- - later patch releases for compatible fixes after `0.2.3`
252
+ - `0.2.4` for the operate/build/execution plane rewrite, compact startup
253
+ context, build-mode updates, and connector scaffold workflow
254
+ - `0.2.5` for packaged web static assets and startup service mismatch notices
255
+ reaching head-manager compact context
256
+ - later patch releases for compatible fixes after `0.2.5`
229
257
  - pre-releases such as `0.3.0a1`, `0.3.0b1`, or `0.3.0rc1` when preparing
230
258
  the next minor contract
231
259
 
@@ -195,6 +195,28 @@ The generated `./tcx` wrapper special-cases `update` to prefer
195
195
  prevents an old recorded Python path from refreshing the workspace with stale
196
196
  template code.
197
197
 
198
+ Inside a Codex-generated workspace, `head-manager` runs under a workspace
199
+ permission profile. It can write workspace files and TradingCodex home state,
200
+ but it should not update the generated harness itself: workspace update rewrites
201
+ protected `.codex` prompt/config/hook surfaces and generated files that define
202
+ the current agent. For already-installed packages, the wrapper supports a
203
+ user-terminal workspace-only path:
204
+
205
+ ```bash
206
+ ./tcx update --skip-refresh
207
+ ```
208
+
209
+ `--skip-refresh` uses the recorded Python/package and avoids the `uvx` refresh
210
+ step. If startup health reports `update_status.workspace_update_allowed=true`,
211
+ `head-manager` should tell the user to run
212
+ `update_status.workspace_update_command` from their terminal. If startup health
213
+ reports `update_status.package_update_required_first=true`, package refresh is
214
+ also a user-terminal action, normally:
215
+
216
+ ```bash
217
+ uvx --refresh --from tradingcodex tcx update .
218
+ ```
219
+
198
220
  ## Project-Scoped MCP Config
199
221
 
200
222
  Generated Codex workspaces render a project-scoped
@@ -232,6 +254,18 @@ Broker APIs are attached through native TradingCodex connector profiles using
232
254
  canonical MCP tools such as `list_broker_connector_templates`,
233
255
  `register_broker_connector`, `get_broker_capability_profile`,
234
256
  `get_broker_instrument_constraints`, and `preview_order_translation`.
257
+
258
+ Generated Codex config declares the TradingCodex home directory, normally
259
+ `~/.tradingcodex`, in `sandbox_workspace_write.writable_roots`. This bounded
260
+ writable root is required for the central local DB, migration lock, service
261
+ status, and update preference files when the active Codex surface honors
262
+ project-scoped sandbox roots. It is narrower than disabling the sandbox, and
263
+ generated permission rules continue to deny `.env`, secret, and
264
+ broker-credential-shaped paths under both the workspace and TradingCodex home.
265
+ If a Codex CLI or app run still reports `~/.tradingcodex` outside writable
266
+ roots, the user should add it through user-level Codex config or CLI `--add-dir`
267
+ before running service recovery or update-adjacent commands.
268
+
235
269
  Broker/data MCP servers, when explicitly needed for reviewed read-only
236
270
  discovery, are registered inside TradingCodex External MCP Gate with
237
271
  `./tcx mcp external ...`, not directly in `.codex/config.toml` or
@@ -258,36 +292,58 @@ The autostart path must be:
258
292
  - silent on MCP stdout except for MCP protocol messages
259
293
  - not required for direct `./tcx mcp stdio` smoke checks
260
294
 
261
- Generated workspaces also support startup health for Codex sessions. Bootstrap
262
- writes an initial compact diagnostic cache at
295
+ Generated workspaces also support startup context for Codex sessions.
296
+ Bootstrap writes an initial compact diagnostic cache at
263
297
  `.tradingcodex/mainagent/server-status.json`, and the `SessionStart` hook
264
- refreshes it; neither path starts services, updates workspaces, or opens
265
- browsers. `head-manager` then uses
266
- `$use-tradingcodex-server` to run service/MCP doctor checks, call
267
- `./tcx service status` to explain current reachability/version/DB posture, call
268
- `./tcx service ensure` when recovery is possible, and tell the user that the
269
- local dashboard is available at `http://127.0.0.1:48267/`. It opens the
270
- dashboard in a browser only when the user explicitly asks, and it should provide
271
- the URL only if browser control is unavailable rather than inferring a browser
272
- security-policy reason. If project MCP config was created or changed, the user
298
+ refreshes it; neither path starts services, updates workspaces, opens browsers,
299
+ or performs package refresh on its own. The emitted context uses marker
300
+ `tradingcodex-session-context` and keeps only compact fields for
301
+ `mode_status`, `permission_status`, `update_status`, `server_status`,
302
+ `allowed_next_actions`, and `routing_status`.
303
+
304
+ `head-manager` uses `$tcx-server` for service/MCP doctor checks,
305
+ `./tcx service status`, and `./tcx service ensure`. It tells the user that the
306
+ local dashboard is available at `http://127.0.0.1:48267/` and opens it only
307
+ when explicitly asked. If project MCP config was created or changed, the user
273
308
  must fully quit and restart Codex and start a new thread because Codex may not
274
309
  hot reload project MCP config.
275
310
 
276
- Startup health may also compare the generated workspace version in
277
- `.tradingcodex/generated/module-lock.json` with the currently installed/running
278
- `tcx` package version. The workspace version is the local baseline: if it
279
- differs from the installed `tcx` version, `head-manager` may recommend aligning
280
- the workspace to the installed version. If the installed `tcx` is known to be
281
- older than the latest TradingCodex release, workspace update is blocked until
282
- the package is updated first, so an old package does not refresh the workspace
283
- with stale templates. Update recommendations are scoped to the
284
- new-conversation health pass, not every user turn. If the user declines update
285
- prompts, `head-manager` records the TradingCodex home preference file, normally
286
- `~/.tradingcodex/preferences/update.json`, with
311
+ Startup context preserves incompatible service detail from `./tcx service
312
+ status`, including `service_issue`, service/package versions, DB paths, and the
313
+ recorded next action. If the issue is `version_mismatch`, `db_mismatch`, or
314
+ `port_occupied`, `head-manager` must mention the startup notice in its first
315
+ user-facing response and avoid presenting the dashboard as ready until the
316
+ recovery path is handled.
317
+
318
+ Startup health may compare the generated workspace version in
319
+ `.tradingcodex/generated/module-lock.json` with the installed/running `tcx`
320
+ package version and the latest known TradingCodex release. If update is needed
321
+ while Codex is running under restricted TradingCodex permissions, `head-manager`
322
+ must explain the two supported paths: switch Codex to full access and enable
323
+ TradingCodex build mode, or run the recommended `update_status.command` from a
324
+ terminal. Self-update is allowed only when Codex full access and explicit
325
+ workspace build mode are both active and the user asks for the update. After
326
+ self-update, `head-manager` stops and tells the user to restart Codex.
327
+
328
+ Build mode is per workspace and explicit:
329
+
330
+ - `./tcx mode status`
331
+ - `./tcx mode set build --reason "<reason>"`
332
+ - `./tcx mode set operate`
333
+
334
+ Build mode may update TradingCodex, templates, and broker/API adapter
335
+ scaffolds. It never enables live execution. Update recommendations are scoped
336
+ to the new-conversation health pass, not every user turn. If the user declines
337
+ update prompts, `head-manager` records the TradingCodex home preference file,
338
+ normally `~/.tradingcodex/preferences/update.json`, with
287
339
  `suppress_update_recommendation=true`; future new conversations should not
288
340
  recommend automatic workspace updates unless the user removes or changes that
289
341
  flag, or explicitly asks for an update.
290
342
 
343
+ Connector scaffold commands accept short aliases such as `binance`, `kis`,
344
+ `한투`, `upbit`, and `alpaca`; the generated connector profile still records
345
+ the canonical template ID.
346
+
291
347
  ## Hooks
292
348
 
293
349
  Generated hooks are Python scripts. Hook behavior is guidance, not final
@@ -308,14 +364,17 @@ enforcement.
308
364
  - execution negation routing such as "no order" and "no trading"
309
365
  - strategy authoring prompts remain in `strategy-creator`/strategy CRUD scope
310
366
  instead of auto-dispatching fixed investment subagents
367
+ - connector implementation prompts such as "binance 붙여줘" or "connect KIS"
368
+ route to the `connector_build` lane and `$tcx-build`, not investment
369
+ dispatch
311
370
  - secret-only routing: credential, token, password, broker-key, or `.env`
312
371
  storage/read/rotation prompts create warning context without activating
313
372
  investment subagent dispatch unless a separate investment or execution
314
373
  request remains
315
- - startup server diagnostics: `SessionStart` records compact service and MCP
316
- config status for `head-manager` to repair through `$use-tradingcodex-server`
317
- - update recommendation diagnostics: `SessionStart` records generated workspace
318
- version drift and respects the TradingCodex home update preference file
374
+ - startup diagnostics: `SessionStart` records compact mode, permission,
375
+ update, service, and routing status for `head-manager`
376
+ - update recommendation diagnostics: `SessionStart` records package/workspace
377
+ drift and respects the TradingCodex home update preference file
319
378
 
320
379
  Hooks load only in trusted projects and may be disabled when
321
380
  `features.hooks=false`.
@@ -358,12 +358,24 @@ Top-level commands:
358
358
  Generated workspace wrapper commands:
359
359
 
360
360
  - `./tcx doctor`
361
- - `./tcx update [--no-doctor]`
361
+ - `./tcx update [--no-doctor] [--skip-refresh]`
362
+ - `./tcx update status [--json]`
363
+ - `./tcx mode status`
364
+ - `./tcx mode set build --reason "<reason>"`
365
+ - `./tcx mode set operate`
366
+ - `./tcx connectors status`
367
+ - `./tcx connectors scaffold <template-or-alias> --broker-id <id>`
368
+ - `./tcx connectors register <template-or-alias> --broker-id <id> --credential-ref <ref> --environment <paper|sandbox|testnet>`
369
+ - `./tcx connectors validate <broker-id>`
362
370
  - `./tcx workspace status|list`
363
371
  - `./tcx profile status|list|create|select|update`
364
372
  - `./tcx subagents status`
365
373
  - `./tcx subagents prompt [--json|--explain] "<request>"`
366
374
  - `./tcx skills optional list|inspect|create|update|activate|archive|delete`
375
+
376
+ Short aliases such as `binance`, `kis`, `한투`, `upbit`, and `alpaca` resolve
377
+ to canonical connector templates while generated profiles keep the canonical
378
+ template ID.
367
379
  - `./tcx strategies list|inspect|create|update|activate|archive|delete`
368
380
  - `./tcx validate order <path>`
369
381
  - `./tcx approve <path>`
@@ -373,9 +385,9 @@ Generated workspace wrapper commands:
373
385
  - `./tcx research create|append|get|list|search|export`
374
386
 
375
387
  Default main-agent skill listing is user-facing, not exhaustive. It shows only
376
- direct user entrypoints: `orchestrate-workflow`,
377
- `use-tradingcodex-server`, `strategy-creator`, `postmortem`, and active
378
- `strategy-*` skills. Full inspection is available through
388
+ direct user entrypoints: `tcx-workflow`, `tcx-server`, `tcx-build`,
389
+ `strategy-creator`, `postmortem`, and active `strategy-*` skills. Full
390
+ inspection is available through
379
391
  `./tcx skills list --all` and role-specific `./tcx subagents skills <role>`.
380
392
 
381
393
  Optional-skill and strategy CRUD CLI commands call the same shared application
@@ -93,13 +93,15 @@ dispatch gate.
93
93
 
94
94
  Natural-language investment requests are sufficient workflow activation for
95
95
  fixed-role dispatch. Explicit subagent, parallel, delegated-agent, and
96
- `$orchestrate-workflow` requests remain supported as manual-control entrypoints,
97
- but they are not required before `head-manager` routes the work.
96
+ `$tcx-workflow` requests remain supported as manual-control entrypoints, but
97
+ they are not required before `head-manager` routes the work.
98
98
 
99
99
  | Trigger | Handling |
100
100
  | --- | --- |
101
101
  | General investment request, such as "Analyze Apple stock" | `UserPromptSubmit` injects compact auto-dispatch context with lane, selected team, blocked actions, and the persisted prompt-gate path; `head-manager` dispatches or reuses selected subagents before analysis. |
102
- | Explicit `$orchestrate-workflow` request | The representative workflow skill becomes the primary manual-control orchestrator and dispatches selected subagents. |
102
+ | Explicit `$tcx-workflow` request | The workflow skill becomes the primary manual-control orchestrator and dispatches selected subagents. |
103
+ | Connector build request, such as "binance 붙여줘" or "connect KIS API" | Route to the `connector_build` lane and `$tcx-build`; scaffold/register/validate read/test connector metadata only, without investment dispatch or live execution. |
104
+ | Runtime/server request, such as "open dashboard" or "check TradingCodex status" | Route to `$tcx-server`; report service/MCP/update posture and use CLI recovery commands without changing execution authority. |
103
105
  | Explicit subagent/parallel/delegated request | `UserPromptSubmit` records the explicit activation source; the skill checks existing subagent state before creating/reusing sessions. |
104
106
  | Strategy authoring request, such as "Create a quality income strategy" | Do not auto-dispatch investment subagents. Route through `strategy-creator`, CLI, API, or service-layer flows so the strategy skill is created and projected as a root/head-manager strategy entry. Django web previews strategies read-only. |
105
107
  | Non-investment repository, docs, or harness administration request | No investment dispatch is required; `head-manager` follows normal Codex coding-agent behavior while preserving execution and secret guardrails. |
@@ -144,7 +146,8 @@ boundary, approval requirements, or information barriers.
144
146
  | Situation | Allowed response | Forbidden response |
145
147
  | --- | --- | --- |
146
148
  | Broad analysis such as "Analyze Apple stock" | auto-dispatch or reuse selected subagents, then wait for outputs before synthesis | Direct business/price/news/recommendation analysis |
147
- | Explicit workflow request such as "$orchestrate-workflow analyze Apple" | Spawn selected team or reuse active/completed roles, wait for outputs, then synthesize | Analyze without dispatch |
149
+ | Explicit workflow request such as "$tcx-workflow analyze Apple" | Spawn selected team or reuse active/completed roles, wait for outputs, then synthesize | Analyze without dispatch |
150
+ | Connector build request such as "binance 붙여줘" | Check full-access plus TCX build mode, scaffold/register/validate connector metadata through `$tcx-build`, and keep `live_order` disabled | Dispatch investment subagents, ask for raw secrets, or expose raw broker SDK tools |
148
151
  | Decision support such as "Should I buy?" | Dispatch analyst/valuation/portfolio/risk team and explain required artifacts/gates | Offer buy/sell opinion without subagent output |
149
152
  | Dispatch unavailable, role routing unverified, or dispatch failed | Provide `waiting_for_subagent_dispatch` state and task briefs only | Switch to "I will analyze it myself" |
150
153
  | Subagent artifacts exist | Summarize role outputs, conflicts, confidence/missing evidence, and next allowed action | Override subagent evidence with unsupported certainty |
@@ -161,7 +164,7 @@ Instruction/skill separation:
161
164
  | Surface | Owns | Must not own |
162
165
  | --- | --- | --- |
163
166
  | `head-manager` base instructions | durable identity, safety invariants, dispatch fail-closed rule, role boundaries, approved action boundary, skill routing | workflow templates, scenario tables, long checklists, subagent message bodies |
164
- | Head-manager skills | repeatable workflow procedures, universe maps, scenario gates, subagent briefing/reuse mechanics, synthesis, strategy creation, postmortem workflow | role identity, durable routing authority, MCP allowlists, weakening base guardrails, bypassing role-owned skills, approving or executing directly |
167
+ | Head-manager skills | compact repeatable procedures for workflow routing, server/runtime recovery, build-mode work, strategy creation, and postmortems | role identity, durable routing authority, MCP allowlists, weakening base guardrails, bypassing role-owned skills, approving or executing directly |
165
168
  | Fixed subagent TOML | standing role identity, role purpose, artifact wall, model/tool config, MCP allowlist, single-item display nickname candidates, and always-on prohibitions | per-request user intent, workflow lane decisions, source selection, or temporary task-specific context |
166
169
  | Role-owned skills | capability procedure, artifact expectations, quality checks, and local output rules | role eligibility, work for other roles, self-approval, execution outside MCP |
167
170
  | Main-to-subagent briefs | request-specific assignment envelope: verbatim user request, explicit constraints, workflow consent posture, research artifact language, lane, artifact path, `context_summary`, data-cutoff needs, request-specific out-of-scope items, and return contract | standing role manuals, model/tool config, MCP allowlists, long method checklists, long source-class lists, full artifacts, or repeated guardrail prose |
@@ -192,17 +195,17 @@ role work directly.
192
195
  User-visible skill lists are not the same as enabled or installed skills. The
193
196
  main-agent user surface should show only direct user entrypoints by default:
194
197
 
195
- - `orchestrate-workflow`
196
- - `use-tradingcodex-server`
198
+ - `tcx-workflow`
199
+ - `tcx-server`
200
+ - `tcx-build`
197
201
  - `strategy-creator`
198
202
  - `postmortem`
199
203
 
200
- Internal head-manager harness skills such as `investment-workflow-map`,
201
- `scenario-quality-gates`, `manage-subagents`, `manage-optional-skills`, and
202
- `synthesize-decision` remain enabled for `head-manager`; they are hidden from
203
- the default user-facing list and must not allow implicit invocation from user
204
- prompts. Compatibility skills such as `tradingcodex-operator` may remain
205
- installed for explicit older `$skill` prompts, but should not be part of the
204
+ The root context does not load long workflow maps, scenario-quality gates,
205
+ or connector runbooks as always-visible prompt bulk. Those concerns move into
206
+ service-generated compact context, projected role indexes, and the short
207
+ `tcx-*` skills above. Compatibility skills may remain hidden for one release
208
+ cycle for older generated workspaces, but they should not be part of the
206
209
  default user-facing or implicit skill surface.
207
210
 
208
211
  ## Additional Agent Instructions
@@ -224,16 +227,11 @@ Head-manager skill responsibilities:
224
227
 
225
228
  | Skill | Responsibility |
226
229
  | --- | --- |
227
- | `orchestrate-workflow` | stage sequencing, lane escalation, and movement across research, thesis, portfolio, risk, order, approval, execution, and postmortem |
228
- | `investment-workflow-map` | universe/workflow classification, source/as-of posture, support gaps, hero/support artifacts, and readiness labels |
229
- | `scenario-quality-gates` | scenario selection, minimum useful role-team shape, artifact expectations, blocked actions, and quality gates |
230
- | `use-tradingcodex-server` | Startup health, local dashboard URL guidance, explicit user-requested dashboard opening, Codex restart guidance, TradingCodex MCP setup, native broker connector template registration, capability-profile inspection, order-translation previews, read-only sync, and troubleshooting without granting execution authority |
231
- | `tradingcodex-operator` | Compatibility entrypoint for one release cycle; redirects users to `$use-tradingcodex-server` and must not add separate broker, approval, or execution authority |
230
+ | `tcx-workflow` | compact workflow routing, selected-team dispatch/reuse, handoff quality states, and synthesis after accepted artifacts |
231
+ | `tcx-server` | startup health, local dashboard URL guidance, explicit user-requested dashboard opening, Codex restart guidance, TradingCodex MCP setup, update-status explanation, read-only broker/status inspection, and service troubleshooting without granting execution authority |
232
+ | `tcx-build` | full-access plus TCX-build-mode gated self-update, template/harness edits, broker/API connector scaffold/register/validate flows, credential-ref handling, and live-order blocking |
232
233
  | `external-data-source-gate` | read-only external evidence-source constraints and External MCP Gate honesty |
233
- | `manage-subagents` | fixed-role dispatch mechanics, runtime state/reuse checks, compact briefs, artifact review, and conflict handling |
234
- | `manage-optional-skills` | file-native optional skill create/update/archive guidance for fixed subagents; use `$skill-creator` for skill authoring while preserving core skills, MCP allowlists, permission profiles, and role identity |
235
234
  | `strategy-creator` | create, update, validate, and activate user-approved `strategy-*` skills as strategy library entries without granting policy, approval, execution, MCP, or role-boundary authority |
236
- | `synthesize-decision` | user-facing decision state after required artifacts or outputs exist |
237
235
  | `postmortem` | audit-backed process review and improvement proposals after failures, thesis changes, rejected orders, or executions |
238
236
 
239
237
  ## Strategy Skills
@@ -286,9 +284,9 @@ deleted, overwritten, or reassigned by user customization. User customization
286
284
  starts with optional, role-local skills for fixed subagents.
287
285
 
288
286
  Optional skill CRUD is managed by the shared application service used by the
289
- `head-manager`, Django web, Django Ninja, and CLI. `manage-optional-skills`
290
- should route generic `SKILL.md` authoring through `$skill-creator`, then use
291
- the shared service path for validation, status, and TOML projection.
287
+ `head-manager`, Django web, Django Ninja, and CLI. Generic `SKILL.md`
288
+ authoring should still follow `$skill-creator` discipline, then use the shared
289
+ service path for validation, status, and TOML projection.
292
290
  Optional skill `name` and `description` are read from `SKILL.md` frontmatter;
293
291
  the sidecar `agents/tradingcodex.json` stores lifecycle metadata such as role,
294
292
  scope, status, and timestamps only.
@@ -354,7 +352,7 @@ and service-layer policy.
354
352
  ## Hooks Are Guidance
355
353
 
356
354
  - `UserPromptSubmit` handles prompt classification, secret warnings, direct-answer prevention context, and duplicate marker management.
357
- - `SessionStart` writes compact TradingCodex server/MCP diagnostics for `head-manager`; startup recovery and dashboard URL guidance stay in `$use-tradingcodex-server`, while browser opening happens only after an explicit user request.
355
+ - `SessionStart` writes compact TradingCodex mode, permission, update, server/MCP, and routing diagnostics for `head-manager`; incompatible service details such as version mismatch, DB mismatch, and occupied ports must survive into compact context so `head-manager` can mention the startup notice before claiming dashboard readiness. Startup recovery and dashboard URL guidance stay in `$tcx-server`, while self-update and connector implementation stay in `$tcx-build`.
358
356
  - Official `UserPromptSubmit` matchers are ignored, so classification happens inside the hook script.
359
357
  - Hooks use command type only and do not rely on ordering or concurrency between hooks.
360
358
  - Project-local hooks load only in trusted projects and may be disabled when `features.hooks=false`.
@@ -223,7 +223,9 @@ logs/results rather than relying only on static checks.
223
223
  Scenarios should include:
224
224
 
225
225
  - broad investment request asks for workflow confirmation or starter prompt
226
- - explicit `$orchestrate-workflow` routes to selected role team
226
+ - explicit `$tcx-workflow` routes to the selected role team
227
+ - connector build prompts such as "binance 붙여줘" route to `connector_build`
228
+ and do not dispatch investment subagents
227
229
  - negated execution wording such as "no order" stays out of execution routing
228
230
  - guardrail-verification wording does not trigger execution
229
231
  - secret-only credential, token, broker-key, password, or `.env` prompts create
@@ -82,6 +82,23 @@ uvx --refresh --from tradingcodex tcx update .
82
82
  refreshes generated indexes, applies central DB migrations, records workspace
83
83
  provenance, and runs `./tcx doctor` unless `--no-doctor` is passed.
84
84
 
85
+ Inside a generated Codex workspace, restricted Codex permissions should not run
86
+ workspace updates because update rewrites protected `.codex`
87
+ prompt/config/hook surfaces. If TradingCodex is already installed and startup
88
+ health says the workspace can be aligned to that installed version,
89
+ `head-manager` will ask you either to switch Codex to full access and enable
90
+ TradingCodex build mode, or run this workspace-only update from your terminal:
91
+
92
+ ```bash
93
+ ./tcx update --skip-refresh
94
+ ```
95
+
96
+ If `update_status.can_self_update=true` and you explicitly ask for the update,
97
+ `head-manager` can run it directly, then it will stop and tell you to fully
98
+ restart Codex. If a package update is required first, run the
99
+ `uvx --refresh ... tcx update .` or installer-script update command from your
100
+ terminal, then fully restart Codex.
101
+
85
102
  After update, runtime order flows use central DB `OrderTicket` records directly.
86
103
 
87
104
  After update, fully quit and restart Codex, then start from a new thread in the
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tradingcodex"
7
- version = "0.2.3"
7
+ version = "0.2.5"
8
8
  description = "Codex-native trading harness with a Django service plane and approved action boundary."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
@@ -50,6 +50,7 @@ include-package-data = true
50
50
  include = ["tradingcodex_cli*", "tradingcodex_service*", "apps*", "workspace_templates*"]
51
51
 
52
52
  [tool.setuptools.package-data]
53
+ tradingcodex_service = ["templates/**/*", "static/**/*"]
53
54
  workspace_templates = ["**/*", "**/.*", "**/.*/**/*"]
54
55
 
55
56
  [tool.setuptools.exclude-package-data]
@@ -81,9 +81,9 @@ def test_generated_workspace_codex_cli_user_scenario_matrix(tmp_path: Path) -> N
81
81
  False,
82
82
  ),
83
83
  (
84
- "$orchestrate-workflow NVDA earnings preview and catalyst review, no order and no trading",
84
+ "$tcx-workflow NVDA earnings preview and catalyst review, no order and no trading",
85
85
  "thesis_review",
86
- ["fundamental-analyst", "technical-analyst", "news-analyst", "macro-analyst", "valuation-analyst"],
86
+ ["fundamental-analyst", "technical-analyst", "news-analyst", "valuation-analyst"],
87
87
  False,
88
88
  ),
89
89
  (
@@ -128,6 +128,12 @@ def test_generated_workspace_codex_cli_user_scenario_matrix(tmp_path: Path) -> N
128
128
  [],
129
129
  True,
130
130
  ),
131
+ (
132
+ "binance 붙여줘. no order, no execution, do not read secrets.",
133
+ "connector_build",
134
+ [],
135
+ False,
136
+ ),
131
137
  ]
132
138
  for index, (prompt, lane, roles, secret_warning) in enumerate(prompt_cases):
133
139
  gate = hook_context(workspace, prompt, env_extra, via_hooks_json=index == 0)
@@ -136,10 +142,10 @@ def test_generated_workspace_codex_cli_user_scenario_matrix(tmp_path: Path) -> N
136
142
  assert gate["required_subagents"] == roles
137
143
  assert gate["secret_warning"] is secret_warning
138
144
  assert gate["confirmation_required"] is False
139
- assert gate["context_mode"] == "compact_workflow_gate_v1"
145
+ assert gate["context_mode"] == "compact_workflow_gate"
140
146
  assert gate["starter_prompt_path"] == ".tradingcodex/mainagent/latest-user-prompt-gate.json"
141
147
  assert "starter_prompt" not in gate
142
- assert len(json.dumps(gate, ensure_ascii=False)) < 1600
148
+ assert len(json.dumps(gate, ensure_ascii=False)) < 1800
143
149
  if roles:
144
150
  persisted_gate = json.loads((workspace / ".tradingcodex" / "mainagent" / "latest-user-prompt-gate.json").read_text(encoding="utf-8"))
145
151
  starter = persisted_gate["starter_prompt"]
@@ -165,7 +171,7 @@ def test_generated_workspace_codex_cli_user_scenario_matrix(tmp_path: Path) -> N
165
171
  status = json.loads(tcx(workspace, env_extra, "subagents", "status").stdout)
166
172
  assert status["installed_count"] == 9
167
173
  assert status["fixed_roster_ok"] is True
168
- assert status["skills_installed"] == 24
174
+ assert status["skills_installed"] == 19
169
175
  plan = json.loads(tcx(workspace, env_extra, "subagents", "plan", "--all").stdout)
170
176
  assert plan["requested_count"] == 9
171
177
  assert plan["parallel_spawn_ok"] is True