tradingcodex 1.0.2__tar.gz → 1.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/CHANGELOG.md +41 -0
  2. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/PKG-INFO +1 -1
  3. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/README.md +1 -1
  4. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/core-concepts-and-rules.md +4 -2
  5. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/decision-memory.md +2 -2
  6. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/deployment.md +13 -3
  7. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/execution-without-subagent-plan.md +23 -17
  8. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/generated-workspaces.md +148 -46
  9. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/harness.md +20 -13
  10. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/interfaces-and-surfaces.md +44 -22
  11. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/investment-brain-plugins.md +4 -3
  12. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/product-direction.md +1 -1
  13. tradingcodex-1.1.0/docs/release-readiness.md +181 -0
  14. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/roles-skills-and-workflows.md +54 -19
  15. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/safety-policy-and-execution.md +94 -34
  16. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/system-architecture.md +3 -3
  17. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/user-facing-skills.md +42 -20
  18. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/validation-and-test-plan.md +116 -14
  19. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/installation.md +59 -3
  20. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_brain_skill.py +1 -1
  21. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_broker_center_prd.py +28 -0
  22. tradingcodex-1.1.0/tests/test_build_hook.py +2385 -0
  23. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_build_turn_grant.py +94 -14
  24. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_clean_v1_cli_audit.py +1 -0
  25. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_prompt_layers.py +6 -1
  26. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_provenance.py +39 -1
  27. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investor_context.py +76 -0
  28. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_native_execution_gateway.py +101 -11
  29. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_order_turn_grant.py +29 -9
  30. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_platform_runtime.py +459 -7
  31. tradingcodex-1.1.0/tests/test_provider_source_approval.py +1041 -0
  32. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_release_contract.py +25 -4
  33. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/PKG-INFO +1 -1
  34. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/SOURCES.txt +1 -0
  35. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/build.py +5 -4
  36. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/connectors.py +7 -0
  37. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/doctor.py +75 -14
  38. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/mcp.py +2 -1
  39. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/mode.py +1 -1
  40. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/generator.py +236 -14
  41. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/startup_status.py +15 -5
  42. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/analysis_runs.py +71 -13
  43. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/brokers.py +570 -48
  44. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/build_gateway.py +129 -79
  45. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/components.py +1 -1
  46. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/customization.py +6 -0
  47. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/execution_gateway.py +105 -40
  48. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/runtime_mode.py +4 -1
  49. tradingcodex-1.1.0/tradingcodex_service/application/skill_invocations.py +354 -0
  50. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/mcp_runtime.py +3 -3
  51. tradingcodex-1.1.0/tradingcodex_service/version.py +1 -0
  52. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/config.toml +71 -4
  53. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +1900 -35
  54. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks.json +1 -1
  55. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +101 -41
  56. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -7
  57. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/AGENTS.md +41 -20
  58. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/SKILL.md +24 -14
  59. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/SKILL.md +13 -7
  60. tradingcodex-1.1.0/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +195 -0
  61. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/SKILL.md +12 -7
  62. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/SKILL.md +7 -3
  63. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/SKILL.md +7 -3
  64. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +5 -3
  65. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/SKILL.md +14 -8
  66. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +12 -6
  67. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/references/context-and-override.md +4 -1
  68. tradingcodex-1.0.2/docs/release-readiness.md +0 -288
  69. tradingcodex-1.0.2/tests/test_build_hook.py +0 -1283
  70. tradingcodex-1.0.2/tests/test_provider_source_approval.py +0 -413
  71. tradingcodex-1.0.2/tradingcodex_service/version.py +0 -1
  72. tradingcodex-1.0.2/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -94
  73. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/CONTRIBUTING.md +0 -0
  74. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/LICENSE +0 -0
  75. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/MANIFEST.in +0 -0
  76. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/NOTICE +0 -0
  77. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/README.md +0 -0
  78. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/TRADEMARKS.md +0 -0
  79. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/__init__.py +0 -0
  80. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/__init__.py +0 -0
  81. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/admin.py +0 -0
  82. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/apps.py +0 -0
  83. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/migrations/0001_v1_initial.py +0 -0
  84. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/migrations/__init__.py +0 -0
  85. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/models.py +0 -0
  86. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/__init__.py +0 -0
  87. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/admin.py +0 -0
  88. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/apps.py +0 -0
  89. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/migrations/0001_v1_initial.py +0 -0
  90. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/migrations/__init__.py +0 -0
  91. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/models.py +0 -0
  92. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/templatetags/__init__.py +0 -0
  93. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/__init__.py +0 -0
  94. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/admin.py +0 -0
  95. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/apps.py +0 -0
  96. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/migrations/0001_v1_initial.py +0 -0
  97. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/migrations/__init__.py +0 -0
  98. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/models.py +0 -0
  99. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/__init__.py +0 -0
  100. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/admin.py +0 -0
  101. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/apps.py +0 -0
  102. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/migrations/0001_v1_initial.py +0 -0
  103. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/migrations/__init__.py +0 -0
  104. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/models.py +0 -0
  105. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/services.py +0 -0
  106. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/__init__.py +0 -0
  107. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/admin.py +0 -0
  108. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/apps.py +0 -0
  109. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/migrations/0001_v1_initial.py +0 -0
  110. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/migrations/__init__.py +0 -0
  111. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/models.py +0 -0
  112. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/services.py +0 -0
  113. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/__init__.py +0 -0
  114. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/admin.py +0 -0
  115. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/apps.py +0 -0
  116. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/migrations/0001_v1_initial.py +0 -0
  117. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/migrations/__init__.py +0 -0
  118. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/models.py +0 -0
  119. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/services.py +0 -0
  120. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/__init__.py +0 -0
  121. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/admin.py +0 -0
  122. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/apps.py +0 -0
  123. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/migrations/0001_v1_initial.py +0 -0
  124. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/migrations/__init__.py +0 -0
  125. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/models.py +0 -0
  126. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/assets/tradingcodex-banner.svg +0 -0
  127. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/codex-native-orchestration.md +0 -0
  128. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/components.md +0 -0
  129. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/financial-workflow-references.md +0 -0
  130. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/guardrails.md +0 -0
  131. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/improvement-loop.md +0 -0
  132. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/licensing-and-commercialization.md +0 -0
  133. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/research-memory-and-artifacts.md +0 -0
  134. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/index.html +0 -0
  135. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/package-lock.json +0 -0
  136. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/package.json +0 -0
  137. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/App.tsx +0 -0
  138. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/api.ts +0 -0
  139. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/domain.ts +0 -0
  140. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/features/LibraryPage.tsx +0 -0
  141. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/features/SkillsPage.tsx +0 -0
  142. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/features/SystemPage.tsx +0 -0
  143. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/main.tsx +0 -0
  144. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/navigation.js +0 -0
  145. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/navigation.test.js +0 -0
  146. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/styles.css +0 -0
  147. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/ui.tsx +0 -0
  148. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/viewer-data.js +0 -0
  149. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/tsconfig.json +0 -0
  150. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/vite.config.ts +0 -0
  151. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/install.sh +0 -0
  152. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/pyproject.toml +0 -0
  153. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/setup.cfg +0 -0
  154. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_artifact_authentication.py +0 -0
  155. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_build_contract_metadata.py +0 -0
  156. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_codex_cli_compat.py +0 -0
  157. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_codex_cli_contract.py +0 -0
  158. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_codex_native_orchestration.py +0 -0
  159. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_dashboard_skill.py +0 -0
  160. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_decision_memory_core.py +0 -0
  161. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_dev_bootstrap.py +0 -0
  162. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_dynamic_artifact_quality.py +0 -0
  163. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_e2e_user_scenarios.py +0 -0
  164. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_evaluation_lab_hardening.py +0 -0
  165. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_evaluation_profiles.py +0 -0
  166. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_guidebook_contract.py +0 -0
  167. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_analysis.py +0 -0
  168. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_cli.py +0 -0
  169. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_registry.py +0 -0
  170. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_mcp_broker_release_health.py +0 -0
  171. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_mcp_operator_authority.py +0 -0
  172. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_research_forecast_surfaces.py +0 -0
  173. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_research_spec_profiles.py +0 -0
  174. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_runtime_paths.py +0 -0
  175. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_runtime_profile.py +0 -0
  176. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_security_invariants.py +0 -0
  177. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_skill_runtime_boundaries.py +0 -0
  178. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_source_snapshot_agent_contract.py +0 -0
  179. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_v1_migrations.py +0 -0
  180. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_v1_state_integrity.py +0 -0
  181. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_viewer.py +0 -0
  182. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_workspace_git_contract.py +0 -0
  183. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/dependency_links.txt +0 -0
  184. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/entry_points.txt +0 -0
  185. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/requires.txt +0 -0
  186. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/top_level.txt +0 -0
  187. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/__init__.py +0 -0
  188. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/__main__.py +0 -0
  189. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/__init__.py +0 -0
  190. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/bootstrap.py +0 -0
  191. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/db.py +0 -0
  192. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/decision.py +0 -0
  193. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/evaluation.py +0 -0
  194. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/forecast.py +0 -0
  195. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/home.py +0 -0
  196. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/investment_brains.py +0 -0
  197. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/investor_context.py +0 -0
  198. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/orders.py +0 -0
  199. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/policy.py +0 -0
  200. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/profile.py +0 -0
  201. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/research.py +0 -0
  202. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/skills.py +0 -0
  203. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/strategies.py +0 -0
  204. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/subagents.py +0 -0
  205. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/utils.py +0 -0
  206. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/workflow.py +0 -0
  207. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/workspaces.py +0 -0
  208. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/mcp_stdio.py +0 -0
  209. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/package_source.py +0 -0
  210. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/service_autostart.py +0 -0
  211. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/versioning.py +0 -0
  212. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/__init__.py +0 -0
  213. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/admin.py +0 -0
  214. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/api.py +0 -0
  215. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/__init__.py +0 -0
  216. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/agents.py +0 -0
  217. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/artifact_bindings.py +0 -0
  218. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/artifact_quality.py +0 -0
  219. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/audit.py +0 -0
  220. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/common.py +0 -0
  221. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/context_budget.py +0 -0
  222. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/decision_packages.py +0 -0
  223. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/evaluation_lab.py +0 -0
  224. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/forecasting.py +0 -0
  225. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/git_subprocess.py +0 -0
  226. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/harness.py +0 -0
  227. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/health.py +0 -0
  228. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/investment_analysis.py +0 -0
  229. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/investment_brains.py +0 -0
  230. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/investor_context.py +0 -0
  231. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/markdown_preview.py +0 -0
  232. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/operator_authority.py +0 -0
  233. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/orders.py +0 -0
  234. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/policy.py +0 -0
  235. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/portfolio.py +0 -0
  236. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/postmortems.py +0 -0
  237. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/research.py +0 -0
  238. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/research_specs.py +0 -0
  239. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/runtime.py +0 -0
  240. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/source_snapshots.py +0 -0
  241. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/viewer.py +0 -0
  242. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/workspace_git.py +0 -0
  243. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/workspaces.py +0 -0
  244. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/asgi.py +0 -0
  245. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/log_safety.py +0 -0
  246. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/runtime_profile.py +0 -0
  247. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/settings.py +0 -0
  248. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
  249. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_web/assets/index-CFoXYUtq.js +0 -0
  250. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_web/assets/index-DYzj_xRR.css +0 -0
  251. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_web/index.html +0 -0
  252. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/urls.py +0 -0
  253. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/viewer_api.py +0 -0
  254. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/web.py +0 -0
  255. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/wsgi.py +0 -0
  256. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/__init__.py +0 -0
  257. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
  258. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
  259. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/audit/module.json +0 -0
  260. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
  261. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
  262. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
  263. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/tcx +0 -0
  264. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/tcx.cmd +0 -0
  265. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/module.json +0 -0
  266. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
  267. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
  268. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
  269. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
  270. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
  271. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
  272. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
  273. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
  274. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
  275. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
  276. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
  277. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
  278. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
  279. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
  280. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
  281. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
  282. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
  283. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
  284. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +0 -0
  285. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
  286. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
  287. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
  288. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
  289. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
  290. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
  291. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
  292. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/module.json +0 -0
  293. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
  294. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
  295. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
  296. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
  297. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
  298. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
  299. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
  300. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
  301. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
  302. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
  303. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
  304. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
  305. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
  306. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
  307. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
  308. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
  309. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
  310. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
  311. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/module.json +0 -0
  312. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/paper-trading/module.json +0 -0
  313. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/agents/openai.yaml +0 -0
  314. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/agents/openai.yaml +0 -0
  315. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/references/bundle-contract.md +0 -0
  316. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
  317. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-dashboard/SKILL.md +0 -0
  318. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-dashboard/agents/openai.yaml +0 -0
  319. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +0 -0
  320. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/agents/openai.yaml +0 -0
  321. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/SKILL.md +0 -0
  322. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/agents/openai.yaml +0 -0
  323. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/agents/openai.yaml +0 -0
  324. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/agents/openai.yaml +0 -0
  325. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/agents/openai.yaml +0 -0
  326. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/SKILL.md +0 -0
  327. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/agents/openai.yaml +0 -0
  328. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
  329. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/agents/openai.yaml +0 -0
  330. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
  331. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/references/decision-quality-spine.md +0 -0
  332. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/SKILL.md +0 -0
  333. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/agents/openai.yaml +0 -0
  334. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/SKILL.md +0 -0
  335. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/agents/openai.yaml +0 -0
  336. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/SKILL.md +0 -0
  337. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/agents/openai.yaml +0 -0
  338. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/SKILL.md +0 -0
  339. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/agents/openai.yaml +0 -0
  340. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/SKILL.md +0 -0
  341. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/agents/openai.yaml +0 -0
  342. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/SKILL.md +0 -0
  343. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/agents/openai.yaml +0 -0
  344. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/SKILL.md +0 -0
  345. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/agents/openai.yaml +0 -0
  346. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/SKILL.md +0 -0
  347. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/agents/openai.yaml +0 -0
  348. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/SKILL.md +0 -0
  349. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/agents/openai.yaml +0 -0
  350. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/SKILL.md +0 -0
  351. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/agents/openai.yaml +0 -0
  352. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/SKILL.md +0 -0
  353. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/agents/openai.yaml +0 -0
  354. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +0 -0
  355. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/agents/openai.yaml +0 -0
  356. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/SKILL.md +0 -0
  357. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/agents/openai.yaml +0 -0
  358. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +0 -0
  359. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +0 -0
  360. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/SKILL.md +0 -0
  361. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/agents/openai.yaml +0 -0
  362. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/SKILL.md +0 -0
  363. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/agents/openai.yaml +0 -0
  364. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/SKILL.md +0 -0
  365. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/agents/openai.yaml +0 -0
  366. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/SKILL.md +0 -0
  367. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/agents/openai.yaml +0 -0
  368. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/SKILL.md +0 -0
  369. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/agents/openai.yaml +0 -0
  370. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/module.json +0 -0
  371. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
  372. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
  373. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
  374. {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
@@ -2,6 +2,47 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 1.1.0 - 2026-07-16
6
+
7
+ - Make managed skill invocation resilient without weakening authority: Build,
8
+ Brain, Strategy, and native order entrypoints now share one lexical parser
9
+ that accepts the first meaningful line, matching projected-skill Markdown
10
+ links, same-line requests, BOMs, and cross-platform newline forms. Prompt
11
+ proofs remain bound to the original bytes, and order flags, approvals,
12
+ confirmations, one-effect limits, and replay protection remain strict.
13
+ - Give `trading-build` credential-free, limited public HTTP(S) and HTTPS Git
14
+ retrieval while keeping root native web search disabled. Public source files
15
+ are staged only below the workspace-specific cache-backed scratch provider
16
+ directory, remain inert, and may be hashed, diffed, inspected, or
17
+ syntax-checked but not installed or executed. The proxy uses full HTTP
18
+ transport only for Git Smart HTTP's read-only protocol POST; ordinary HTTP
19
+ remains GET/HEAD-only and general POST stays blocked. Authentication,
20
+ model-authored request bodies, private/local targets, shell pipelines,
21
+ dependency installation, direct `trading/` downloads, Git publication, and
22
+ broker effects remain blocked.
23
+ - Make the active Build-turn shell a narrow, non-extensible review lane. Edits
24
+ use `apply_patch`; admitted commands are public GET/HEAD, enumerated read-only
25
+ HTTPS Git, limited workspace reads, inert provider hash/diff/Git inspection,
26
+ exact isolated `py_compile`, and allowlisted workspace-launcher operations.
27
+ General interpreters, helper scripts, test runners, build systems, shell
28
+ composition, model-authored POST, and native browser/web/network tools now
29
+ fail closed during Build while Research browser behavior remains unchanged.
30
+ - Add provider source provenance, full bundle hashing, secret/VCS/symlink
31
+ rejection, immutable approval snapshots, and provider-first connector
32
+ onboarding. Build-side inspection can return an inert bundle-only hash and
33
+ `service_check_required` posture without reading the central ledger; only the
34
+ interactive operator path resolves canonical approval state. Missing-provider
35
+ connection requests no longer leave dead-end connector scaffolds; explicit
36
+ scaffold-only requests remain available.
37
+ - Preserve the v1 update contract for existing workspaces. `tcx update`
38
+ refreshes the generated invocation, permission, hook, and skill surfaces
39
+ without a database migration, keeps workspace identity and user-owned
40
+ artifacts, and retains the existing explicit home, database, and service
41
+ address. Fully restart Codex and open a new task after updating so an older
42
+ task cannot retain its prior hook snapshot. Existing manual provider bundles
43
+ may omit provenance, while changed or newly unsafe bundles must be reviewed
44
+ and approved again.
45
+
5
46
  ## 1.0.2 - 2026-07-15
6
47
 
7
48
  - Preserve an attached release workspace's explicit `TRADINGCODEX_HOME`,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tradingcodex
3
- Version: 1.0.2
3
+ Version: 1.1.0
4
4
  Summary: Local-first investment operating system for Codex-native research and service-gated execution.
5
5
  Author: TradingCodex Authors
6
6
  License-Expression: Apache-2.0
@@ -47,7 +47,7 @@ If these layers disagree, treat `docs/` as the durable product intent and fix th
47
47
 
48
48
  | Document | Purpose |
49
49
  | --- | --- |
50
- | [release-readiness.md](./release-readiness.md) | v1.0.1 source readiness, final-commit and exact-artifact validation, and pending tag, publication, and post-publish gates. |
50
+ | [release-readiness.md](./release-readiness.md) | Current v1 release readiness, prior-version update compatibility, exact-artifact validation, and tag, publication, and post-publish gates. |
51
51
 
52
52
  ## Workflow And Agent Documents
53
53
 
@@ -122,7 +122,7 @@ exact root native action -> deterministic hook parse -> native-user permission
122
122
  -> policy -> payload validation -> approval/duplicate-request check
123
123
  -> mandatory intent audit -> connection -> finalized/uncertain audit
124
124
 
125
- exact first-line $tcx-order-allow -> workspace/session/turn/prompt/mode grant
125
+ exact first-meaningful-line $tcx-order-allow -> workspace/session/turn/prompt/mode grant
126
126
  -> protected use_order_turn_grant + PreToolUse proof -> consume once
127
127
  -> the same canonical policy/approval/idempotency/live/audit gates
128
128
  ```
@@ -131,8 +131,10 @@ The root `tcx-order-submit` and `tcx-order-cancel` skill bundles
131
131
  carry no tools. Their complete exact prompt grammar is intercepted by
132
132
  `UserPromptSubmit` and dispatched in-process to the service gateway before any
133
133
  model runs. The separate `tcx-order-allow` bundle documents current-turn admission:
134
- an exact physical first line issues one `OrderTurnGrant`, and only root Head
134
+ an exact first meaningful line issues one `OrderTurnGrant`, and only root Head
135
135
  Manager can select one later submit or cancel through `use_order_turn_grant`.
136
+ The leading skill may be a plain token or its matching projected Markdown link;
137
+ the order mode and immediate action grammars remain literal.
136
138
  `PreToolUse` injects proof that model input and direct MCP callers cannot supply.
137
139
  The browser viewer has no mutation route. Fixed roles, public REST, generic
138
140
  CLI, and unproven direct MCP calls cannot invoke the final mutation.
@@ -355,8 +355,8 @@ Memory remains independent of the Brain that produced a decision:
355
355
  provenance.
356
356
 
357
357
  Learning from memory into a Brain is a separate user-controlled curation path.
358
- Writing requires a root native Codex prompt whose exact physical first line is
359
- `$tcx-brain`, an explicit source-authoring request below it, an
358
+ Writing requires a root native Codex prompt whose first meaningful invocation
359
+ is `$tcx-brain`, an explicit source-authoring request on that line or below it, an
360
360
  actual Codex sandbox that permits the required workspace-local writes, exact
361
361
  user-selected source episodes, and counterexamples. The Brain-scoped grant is
362
362
  bound to that turn, cannot authorize Build or Strategy work, and does not carry
@@ -150,12 +150,20 @@ find . -maxdepth 1 -name '*.egg-info' -type d -exec rm -rf {} +
150
150
  python3.11 -m build
151
151
  python3.11 -m twine check dist/*
152
152
  python3.11 tests/platform_wheel_smoke.py --wheel-dir dist
153
+ python3.11 tests/release_upgrade_smoke.py --wheel-dir dist --from-version 1.0.2
153
154
  ```
154
155
 
155
156
  The wheel smoke installs only the built wheel into a clean virtual environment,
156
157
  checks distribution metadata against the runtime version, attaches a workspace,
157
158
  validates native launchers and generated configuration, runs hooks and MCP
158
159
  stdio, exercises the local service, and loads the packaged SPA and assets.
160
+ The release-upgrade smoke starts from the published `1.0.2` package, updates
161
+ that attached workspace with the built candidate wheel, and verifies preserved
162
+ workspace and runtime identity, user-owned state, and explicit home, DB, and
163
+ service-address settings alongside the refreshed generated contract. It also
164
+ preserves the exact provider approval identity and timestamp, compares every
165
+ byte in the immutable provider snapshot, and proves that the candidate runtime
166
+ loads that approved snapshot after the update.
159
167
 
160
168
  Harness, role, prompt, skill, hook, policy, MCP, or generated-template changes
161
169
  also require the disposable-workspace and Codex-native checks documented in
@@ -165,7 +173,8 @@ also require the disposable-workspace and Codex-native checks documented in
165
173
 
166
174
  `.github/workflows/ci.yml` is test-only. One Ubuntu/Python 3.11 job runs the
167
175
  frontend build, complete Python suite and framework gates, clean package
168
- construction, and the wheel smoke. Guide-only pushes skip this workflow because
176
+ construction, the wheel smoke, and the prior-release update smoke. Guide-only
177
+ pushes skip this workflow because
169
178
  the Pages workflow validates and deploys only static guide files. CI never
170
179
  publishes.
171
180
 
@@ -179,7 +188,8 @@ publishes.
179
188
  - the workflow ref is exactly `refs/tags/v<release_version>`
180
189
  - the tagged commit is on `origin/main`
181
190
  - the wheel and source-distribution filenames carry the same version
182
- - the built wheel passes the Ubuntu smoke
191
+ - `dist/` contains exactly that one wheel and one source distribution
192
+ - the built wheel passes the Ubuntu wheel and prior-release update smokes
183
193
  - the protected `pypi` environment approves Trusted Publishing
184
194
 
185
195
  The release workflow has one build/verification job. When publication is
@@ -261,7 +271,7 @@ sh "$SOURCE_ROOT/install.sh" \
261
271
  On native Windows PowerShell:
262
272
 
263
273
  ```powershell
264
- $ReleaseVersion = "1.0.2"
274
+ $ReleaseVersion = "1.1.0"
265
275
  $Workspace = Join-Path $env:TEMP "tcx-pypi-$ReleaseVersion"
266
276
  New-Item -ItemType Directory -Force $Workspace | Out-Null
267
277
  Set-Location $Workspace
@@ -26,7 +26,7 @@ design, migration, and validation evidence.
26
26
  author every class of Codex app Scheduled Task, from simple research and
27
27
  monitoring through optional turn-authorized execution.
28
28
  - [x] Issue a workspace-, session-, turn-, prompt-, and mode-bound single-use
29
- grant only for an exact physical first line `$tcx-order-allow --mode
29
+ grant only for an exact first meaningful line `$tcx-order-allow --mode
30
30
  paper|validation|live`; revoke it after one submit or cancel, after one hour,
31
31
  on `Stop`, or when the next user turn starts.
32
32
  - [x] Protect `use_order_turn_grant` so only root Head Manager can select the
@@ -82,9 +82,9 @@ Remove `execution-operator` from the fixed-role roster. Native Codex keeps the
82
82
  exact immediate submit/cancel path for already-known canonical identifiers and
83
83
  adds a separate single-turn path for workflows that create the ticket or
84
84
  approval during the turn. The immediate path executes in `UserPromptSubmit`
85
- before Head Manager runs. The turn path begins only when the physical first
86
- line is exact `$tcx-order-allow --mode paper|validation|live`, then continues the
87
- normal workflow with a single-use service grant.
85
+ before Head Manager runs. The turn path begins only when the first meaningful
86
+ line is exactly `$tcx-order-allow --mode paper|validation|live`, then continues
87
+ the normal workflow with a single-use service grant.
88
88
 
89
89
  `tcx-automate` authors Codex app Scheduled Tasks; it is not a scheduler or
90
90
  the skill invoked recursively by each run. Research, monitoring, recurring
@@ -109,7 +109,7 @@ UserPromptSubmit -> deterministic parse and native-user mandate
109
109
  Django service -> authorize, reserve, audit, invoke adapter, finalize
110
110
  Head Manager -> summarize the already-recorded result; no action authority
111
111
 
112
- native/scheduled user -> exact physical first-line $tcx-order-allow mode
112
+ native/scheduled user -> exact first-meaningful-line $tcx-order-allow mode
113
113
  UserPromptSubmit -> bind one grant to workspace + session + turn + prompt + mode
114
114
  roles/services -> create and approve canonical ticket state
115
115
  Head Manager -> call protected use_order_turn_grant once
@@ -152,7 +152,8 @@ Each bundle follows the normal TradingCodex skill shape, including `SKILL.md`
152
152
  and `agents/openai.yaml`, but contains no tool authority. The skill documents an
153
153
  action syntax intercepted by the hook before the model runs.
154
154
 
155
- The complete trimmed user prompt must have one of these forms:
155
+ The complete meaningful user prompt must have one of these canonical plain
156
+ forms:
156
157
 
157
158
  ```text
158
159
  $tcx-order-submit --ticket-id <ticket-id> --approval-receipt-id <receipt-id>
@@ -162,10 +163,13 @@ $tcx-order-cancel --ticket-id <ticket-id> --broker-order-id <broker-order-id> --
162
163
  $tcx-order-cancel --ticket-id <ticket-id> --broker-order-id <broker-order-id> --approval-receipt-id <receipt-id> --live-confirmation <token>
163
164
  ```
164
165
 
165
- Parsing rules are intentionally strict:
166
+ Parsing rules are intentionally strict. One UTF-8 BOM, normalized CRLF/CR/NEL/
167
+ Unicode line separators, leading/trailing blank lines, and a Markdown link whose
168
+ label and target match the projected workspace action skill are presentation
169
+ variants only:
166
170
 
167
171
  - Parse with `shlex.split`; never use a shell or evaluate prompt content.
168
- - Require the skill token to be the first token and the entire prompt to be the
172
+ - Require the skill invocation to be first and the entire meaningful prompt to be the
169
173
  action. Free-form prefixes, suffixes, comments, quotations, or a second skill
170
174
  invocation are invalid.
171
175
  - Accept only the documented `--name value` form. Reject `--name=value`, unknown
@@ -191,8 +195,8 @@ must not fall through to Head Manager as ordinary analysis.
191
195
 
192
196
  ## Turn-Scoped Order Allow Contract
193
197
 
194
- For a workflow that may create its final identifiers during the turn, the
195
- physical first line must be exactly one of:
198
+ For a workflow that may create its final identifiers during the turn, the first
199
+ meaningful line must be exactly one of:
196
200
 
197
201
  ```text
198
202
  $tcx-order-allow --mode paper
@@ -200,9 +204,10 @@ $tcx-order-allow --mode validation
200
204
  $tcx-order-allow --mode live
201
205
  ```
202
206
 
203
- The rest of the prompt is the ordinary interactive or Codex app Scheduled Task
204
- request. The line accepts no aliases, comments, quotes, extra flags, embedded
205
- prose, or `--mode=value` form. A free-form mention or later-line occurrence
207
+ The skill token may be its matching projected Markdown link. The rest of the
208
+ prompt is a non-empty ordinary interactive or Codex app Scheduled Task request.
209
+ The line accepts no aliases, comments, quotes, extra flags, embedded prose, or
210
+ `--mode=value` form. A free-form mention or later-meaningful-line occurrence
206
211
  does not grant authority. Scheduled and interactive turns use the same parser;
207
212
  there is no Automation-origin branch.
208
213
 
@@ -264,7 +269,7 @@ normal analysis context:
264
269
  The existing provider-call idempotency remains the replay defense if the hook
265
270
  event is delivered more than once.
266
271
 
267
- For `$tcx-order-allow`, `UserPromptSubmit` instead validates the exact first line,
272
+ For `$tcx-order-allow`, `UserPromptSubmit` instead validates the exact first meaningful line,
268
273
  requires root native `session_id` and `turn_id`, revokes the session's older
269
274
  grant, issues the new bounded grant, and continues normal analysis allocation.
270
275
  The additional context contains only mode, expiry, single-use posture, and the
@@ -400,8 +405,9 @@ map, or safety routing would otherwise become misleading.
400
405
  - Prove that unavailable hook audit blocks before reservation/provider use.
401
406
  - Prove that hook result projection contains no raw prompt, reasoning, secrets,
402
407
  credentials, raw provider payload, or unallowlisted error text.
403
- - Accept only the three exact physical-first-line `$tcx-order-allow` modes; reject
404
- later-line, malformed, subagent, Workbench, missing-session, and missing-turn
408
+ - Accept only the three exact first-meaningful-line `$tcx-order-allow` modes;
409
+ reject later-meaningful-line, malformed, subagent, Workbench,
410
+ missing-session, and missing-turn
405
411
  forms without issuing a grant.
406
412
  - Prove grant binding to workspace, session, turn, prompt hash, mode, and
407
413
  tool-use id; prove one-hour, `Stop`, next-turn, and consumption revocation.
@@ -465,7 +471,7 @@ The change is complete only when all of the following are true:
465
471
  8. Generated workspace update safely retires unmodified agent files and
466
472
  preserves modified-file conflict protection.
467
473
  9. A saved Scheduled Task prompt is processed as an ordinary root turn on each
468
- run; only an exact `$tcx-order-allow` physical first line can create one bounded
474
+ run; only an exact `$tcx-order-allow` first meaningful line can create one bounded
469
475
  effect grant, and no Automation-origin detector is involved.
470
476
 
471
477
  ## Explicit Non-Goals
@@ -13,6 +13,12 @@ apply the current central runtime schema, and record workspace provenance in
13
13
  the central local Django DB. Pre-v1 workspace and database state is rejected
14
14
  before mutation rather than converted.
15
15
 
16
+ Generated invocation, permission, hook, and skill changes are not retroactive
17
+ inside an already attached workspace. Apply them with `tcx update`, then fully
18
+ restart Codex so the refreshed project config, prompts, skills, hooks, and MCP
19
+ binding load together. Start a new task after restart rather than resuming an
20
+ already-open task, which can retain the prior generated hook snapshot.
21
+
16
22
  The template source tree may be refactored for maintainability, but generated
17
23
  output paths are the v1 release contract. Module ids, module dependency
18
24
  resolution, and rendered paths such as `.codex/config.toml`, `.agents/skills/*`,
@@ -276,21 +282,23 @@ Generated workspaces contain:
276
282
  `$tcx-order-cancel`, accepts only their complete exact `--name value`
277
283
  grammar from a root native user turn, creates a workspace-bound `native-user`
278
284
  mandate, and calls the canonical Django execution gateway in-process. It also
279
- reserves a physical-first-line `$tcx-order-allow --mode
285
+ reserves a first-meaningful-line `$tcx-order-allow --mode
280
286
  paper|validation|live`, issues one workspace/session/turn/prompt/mode-bound
281
287
  `OrderTurnGrant`, and then continues the normal workflow. Malformed reserved
282
288
  actions, subagent actions, and retired
283
289
  `$execute-paper-order` actions fail closed
284
- - deterministic Build-turn admission: a root native prompt whose exact physical
285
- first line is `$tcx-build` and whose remaining body is non-empty issues a
290
+ - deterministic Build-turn admission: a root native prompt whose first
291
+ meaningful invocation is a plain or matching projected-link `$tcx-build` and
292
+ whose same-line or following body is non-empty issues a
286
293
  DB-canonical workspace/session/turn/cwd/prompt-bound `BuildTurnGrant` with
287
294
  `authority_scope=build`;
288
295
  `PreToolUse` requires it for direct writes and injects one-time proof into
289
296
  protected build MCP calls, while later turns and subagents cannot
290
297
  inherit it; Codex Plan mode cannot issue or use it, and the grant is bound to
291
298
  its issue-time permission mode
292
- - deterministic managed-skill admission: an exact first-line `$tcx-brain` or
293
- `$tcx-strategy` root prompt issues the same DB-canonical grant shape with a
299
+ - deterministic managed-skill admission: a plain or matching projected-link
300
+ `$tcx-brain` or `$tcx-strategy` on the first meaningful line of a root prompt
301
+ issues the same DB-canonical grant shape with a
294
302
  distinct `brain` or `strategy` scope. The normal Research profile remains
295
303
  active, source/launcher use is allowlisted to that capability, cross-scope
296
304
  calls fail, and Build or order markers cannot be combined
@@ -409,11 +417,11 @@ Generated workspaces contain:
409
417
  - decision-quality skill bundles for forecasting discipline, thesis scenario
410
418
  trees, numeric data QC, and anti-overfit validation, plus role-owned
411
419
  `tcx-judgment` for the independent `judgment-reviewer` gate
412
- - standalone `strategy-*` skills under `.agents/skills/strategy-*` for user-approved agent-readable investment strategies, created from native Codex only in an exact first-line `$tcx-strategy` root `trading-research` turn through the managed lifecycle service, or through an explicitly authenticated user/operator API surface, then exposed to the root `head-manager` through the strategy marker block in `.codex/config.toml`
420
+ - standalone `strategy-*` skills under `.agents/skills/strategy-*` for user-approved agent-readable investment strategies, created from native Codex only in a matching first-meaningful-line `$tcx-strategy` root `trading-research` turn through the managed lifecycle service, or through an explicitly authenticated user/operator API surface, then exposed to the root `head-manager` through the strategy marker block in `.codex/config.toml`
413
421
  - built-in `tcx-brain` projected only to Head Manager as the single source and
414
422
  managed-plugin entrypoint; source create/inspect/revise/validate/delete and
415
423
  managed list/inspect/install/update/activate/deactivate/rollback/remove stay
416
- distinct, tool-using management needs an exact first-line `$tcx-brain` root
424
+ distinct, tool-using management needs a matching first-meaningful-line `$tcx-brain` root
417
425
  `trading-research` turn, source
418
426
  authoring stops before lifecycle work, installation begins inactive, and no
419
427
  path implies Git/publication actions
@@ -704,7 +712,8 @@ intermediates belong under `$TRADINGCODEX_SCRATCH`. They cannot modify
704
712
  runtime, protected artifact paths, credential files, local/private
705
713
  destinations, or Unix sockets. Authenticated service/MCP tools own durable
706
714
  TradingCodex writes. Harness update is either an explicit user-terminal
707
- operation or a root native Codex turn whose exact first line is `$tcx-build`,
715
+ operation or a root native Codex turn whose first meaningful invocation is
716
+ `$tcx-build`,
708
717
  because it rewrites the generated `.codex` prompt/config/hook surfaces that
709
718
  define the current agent. The marker records current-turn intent but cannot
710
719
  widen the active native profile. For already-installed packages, the wrapper
@@ -750,9 +759,13 @@ See the [Codex permissions reference](https://learn.chatgpt.com/docs/permissions
750
759
  overrides `trading/`, generated
751
760
  control files, Git metadata, launchers, and sensitive paths with more-specific
752
761
  read or deny rules. User-owned paths outside `trading/` can therefore be used
753
- as inputs or outputs without a Build turn. One generated, workspace-id-scoped
754
- temp path is writable as `$TRADINGCODEX_SCRATCH` and is projected as
755
- `TMPDIR`/`TEMP`/`TMP`; the broader temp roots are denied.
762
+ as inputs or outputs without a Build turn. One generated, workspace-id-scoped,
763
+ cache-backed path is writable as `$TRADINGCODEX_SCRATCH` and is projected as
764
+ `TMPDIR`/`TEMP`/`TMP`; the broader temp roots are denied. The scratch root lives
765
+ under the platform cache tree (`~/Library/Caches/TradingCodex` on macOS,
766
+ `$XDG_CACHE_HOME/tradingcodex` or `~/.cache/tradingcodex` on Linux, and
767
+ `%LOCALAPPDATA%\TradingCodex` on Windows), not inside the workspace and not in
768
+ the broad OS temporary tree.
756
769
  Credential-bearing home paths such as Codex auth state, SSH/cloud/CLI config,
757
770
  keyrings, credential files, and shell histories are explicitly denied. The
758
771
  narrow read-only `~/.codex/packages/standalone` exception permits the installed
@@ -764,7 +777,8 @@ More-specific rules deny the rest of `.codex`, canonical
764
777
  TradingCodex home/DB/runtime paths, `.env` patterns, protected TradingCodex
765
778
  workspace state, and durable research/report/forecast/decision paths. Research
766
779
  does not reopen `.tradingcodex/cli.py` or the attached runtime for managed
767
- lifecycle work. Exact `$tcx-brain` and `$tcx-strategy` first lines create
780
+ lifecycle work. Matching `$tcx-brain` and `$tcx-strategy` invocations on the
781
+ first meaningful line create
768
782
  separate current-turn scopes; the hook injects proof only into
769
783
  `manage_investment_brain` or `manage_strategy`, and neither scope requires or
770
784
  accepts `$tcx-build`.
@@ -776,9 +790,32 @@ local/private destinations blocked, upstream proxying disabled, and no Unix
776
790
  sockets. Public reachability does not grant credentials or broker authority.
777
791
 
778
792
  `trading-build` uses the same credential and protected-state denials, writes the ordinary
779
- workspace and the dedicated scratch path, but keeps `.git`,
793
+ workspace through admitted edit/service surfaces and the dedicated scratch path, but keeps `.git`,
780
794
  `.agents`, and `AGENTS.md` read-only, denies `.codex`, TradingCodex home/DB/
781
- runtime, `.env` files, and audit/approval/order state, and disables network.
795
+ runtime state, `.env` files, and audit/approval/order state. The exact managed
796
+ launcher runtime is reopened read-only so hook-admitted `./tcx` validation and
797
+ inspection commands can run. Across every active Build turn/profile, the hook
798
+ admits only a narrow shell review lane: limited workspace `pwd`/`cat`/`ls`,
799
+ inert provider-source reads/hash/diff/Git inspection, exact isolated
800
+ `python -I -S -m py_compile`, allowlisted workspace-launcher commands, and the
801
+ public retrieval forms below. General interpreters, helper scripts, test
802
+ runners, build systems, shell composition, and direct runtime commands remain
803
+ blocked. Its limited-public
804
+ network permits credential-free HTTP(S) GET/HEAD and public HTTPS Git retrieval
805
+ while blocking authenticated requests, bodies/uploads, local/private targets,
806
+ non-HTTP(S) transports, package installation, fetch-to-execute pipelines,
807
+ remote mutation, and broker access. Native `web_search` remains disabled.
808
+ The generated `PreToolUse` matcher covers every tool name, then policy remains
809
+ a no-op for ordinary Research tools while an active Build grant rejects native
810
+ browser, web, HTTP, fetch, and navigation tools,
811
+ so retrieval cannot reuse authenticated browser state; Research browser
812
+ behavior is unchanged.
813
+ The Build profile uses the proxy's full HTTP transport mode because Git Smart
814
+ HTTP needs a small POST exchange even for read-only clone/fetch/ls-remote.
815
+ That does not open general POST access: the Build hook admits only public
816
+ GET/HEAD curl or wget commands and the enumerated read-only HTTPS Git commands,
817
+ while rejecting general interpreters, shell composition, and other network
818
+ clients.
782
819
  Durable research, report, forecast, and decision paths are denied in Build as
783
820
  well because those writes remain authenticated service operations.
784
821
  The root `$tcx-build` marker and hook remain required for controlled
@@ -950,6 +987,13 @@ or performs package refresh on its own. The emitted context uses marker
950
987
  `build_authorization`, `permission_status`, `update_status`, `server_status`,
951
988
  `allowed_next_actions`, and `routing_status`.
952
989
 
990
+ Build authorization retains `exact_first_line` and managed-skill authorization
991
+ retains `exact_first_lines` as canonical plain-token examples for copy/paste
992
+ compatibility. Both also report `invocation_position=first_meaningful_line`,
993
+ `accepted_forms`, and `same_line_request_allowed`.
994
+ These fields describe lexical admission only; the grant remains bound to the
995
+ original unnormalized prompt hash and current workspace/session/turn/profile.
996
+
953
997
  `head-manager` uses `$tcx-dashboard` to open the read-only workspace viewer and
954
998
  provide a compact orientation, and `$tcx-server` for diagnostics and recovery.
955
999
  Dashboard uses hook startup context plus the smallest relevant read-only
@@ -977,7 +1021,7 @@ Startup health may compare the generated workspace version in
977
1021
  `.tradingcodex/generated/module-lock.json` with the installed/running `tcx`
978
1022
  package version and the latest known TradingCodex release. For a workspace-only
979
1023
  refresh, `head-manager` explains two paths: start a new `trading-build` root
980
- native turn whose exact physical first line is `$tcx-build` and run the non-empty
1024
+ native turn whose first meaningful invocation is `$tcx-build` and run the non-empty
981
1025
  `update_status.command`, or run that workspace command from a terminal.
982
1026
  Self-update is allowed only in that explicit current turn and only when the user
983
1027
  asks for it. When `package_refresh_user_terminal_required=true`,
@@ -992,15 +1036,19 @@ and should recommend package/workspace refresh before service stop.
992
1036
  ## Build Turn Authorization
993
1037
 
994
1038
  Mutating Codex build work uses an exact prompt contract, not a persistent
995
- workspace mode. The physical first line must be exactly:
1039
+ workspace mode. The first meaningful line must invoke:
996
1040
 
997
1041
  ```text
998
1042
  $tcx-build
999
1043
  ```
1000
1044
 
1001
- A non-empty, concrete build request follows on later lines. `UserPromptSubmit`
1002
- parses the complete root native prompt deterministically and issues a
1003
- DB-canonical grant bound to the workspace, session, turn, cwd, and prompt.
1045
+ A non-empty, concrete build request may share that line or follow it. The skill
1046
+ may be a plain token or a Markdown link whose label and target match the
1047
+ projected workspace `tcx-build/SKILL.md`. One UTF-8 BOM, normalized line
1048
+ endings, and leading/trailing blank lines do not change admission; mixed or
1049
+ duplicate managed markers still fail. `UserPromptSubmit` parses the complete
1050
+ root native prompt deterministically and issues a DB-canonical grant bound to
1051
+ the workspace, session, turn, cwd, and original prompt hash.
1004
1052
  `PreToolUse` enforces that grant for controlled `trading/` edits and injects a
1005
1053
  one-time internal proof into protected build MCP calls. Ordinary `apply_patch`
1006
1054
  edits outside `trading/` do not need the grant; generic Write/Edit tools remain
@@ -1012,8 +1060,10 @@ grant.
1012
1060
  The marker and hook never elevate Codex permissions. The active Codex profile
1013
1061
  remains the filesystem and network authority. Use `trading-build` for
1014
1062
  controlled `trading/` and managed lifecycle Build work; it opens connector and
1015
- build paths but keeps
1016
- TradingCodex runtime/DB, credentials, ledgers, and network access denied.
1063
+ build paths but keeps TradingCodex runtime/DB, credentials, and ledgers denied.
1064
+ Only credential-free limited-public retrieval is available; local/private or
1065
+ authenticated network access, uploads, package installs, fetch-to-execute
1066
+ pipelines, remote mutation, and broker calls remain denied.
1017
1067
  Codex Plan mode cannot issue or use a Build grant, and the grant is bound
1018
1068
  to its issue-time permission mode; changing modes requires a new root turn and
1019
1069
  fresh marker. Full access is not implied by the skill. Build work defaults to
@@ -1024,13 +1074,28 @@ credential files, policy or approval state, or order execution.
1024
1074
  External MCP mutation/consent and provider-source approval use separate,
1025
1075
  interactive user-terminal commands; they are not synthetic Build turns.
1026
1076
 
1027
- Within `trading-build`, Codex may use general workspace-local shell, Python,
1028
- scripts, and test runners for implementation and validation. Native
1029
- `apply_patch` remains the reviewable edit tool. The hook routes every direct
1030
- edit and trusted `./tcx`/`tcx.cmd` lifecycle command through the current-turn
1031
- grant, and retains hard stops for protected paths, credentials, External MCP
1032
- lifecycle or consent, global config, Git publication, and order effects. The
1033
- native profile supplies the lower-level filesystem and network boundary.
1077
+ Within `trading-build`, native `apply_patch` is the reviewable edit tool. Shell
1078
+ access is intentionally non-general: Codex may use public HTTP(S) GET/HEAD,
1079
+ enumerated read-only HTTPS Git retrieval, limited workspace `pwd`/`cat`/`ls`,
1080
+ inert provider-source reads/hash/diff/Git inspection, exact isolated
1081
+ `python -I -S -m py_compile`, and allowlisted `./tcx`/`tcx.cmd` commands.
1082
+ Provider source retrieval is confined to
1083
+ `$TRADINGCODEX_SCRATCH/provider-sources/<provider-id>/` and remains inert there.
1084
+ The Build-turn context advertises an absolute command-proof form for native
1085
+ Codex transports that do not include their actual shell workdir in hook input:
1086
+ that form requires the recorded absolute executable, absolute staged operands,
1087
+ and an absolute Git `-C` staging/repository root, so authorization never relies
1088
+ on an opaque cwd, repository-local configuration, or cwd executable lookup.
1089
+ Relative workspace commands remain valid only with the exact generated
1090
+ workspace workdir; Git clone uses `--no-checkout`, and curl uses `--globoff`.
1091
+ General interpreters, helper scripts, test runners, build systems, shell
1092
+ composition, and model-authored POST are blocked throughout the active Build
1093
+ turn/profile. Broader unit, smoke, or build validation belongs to an explicit
1094
+ user-terminal or maintainer flow. The hook routes every direct edit and trusted
1095
+ workspace-launcher lifecycle command through the current-turn grant and retains
1096
+ hard stops for protected paths, credentials, External MCP lifecycle or consent,
1097
+ global config, Git publication, and order effects. The native profile supplies
1098
+ the lower-level filesystem and network boundary.
1034
1099
 
1035
1100
  Persistent `tcx mode` is retired. `./tcx mode status` remains only as an inert
1036
1101
  compatibility diagnostic, `tcx mode set ...` cannot enable Build, and any old
@@ -1060,34 +1125,71 @@ canonical DB services. Plan mode blocks every managed workspace grant.
1060
1125
  Prefer an isolated worktree or workspace and retain a reviewable diff for every
1061
1126
  recurring run. Never combine Build, Brain, Strategy, or order markers.
1062
1127
 
1063
- In a Build turn, Head Manager first uses the read-only
1128
+ In a Build turn, Head Manager first inspects available providers. When the
1129
+ requested provider is missing, it develops that provider before rendering or
1130
+ registering a connector. A `provider_development_required` connector is created
1131
+ first only when the user explicitly requests scaffold-only output; an
1132
+ implementation or connection request does not leave behind a dead-end scaffold
1133
+ as apparent progress.
1134
+
1135
+ Credential-free public HTTP(S) and HTTPS Git sources may be retrieved only into
1136
+ `$TRADINGCODEX_SCRATCH/provider-sources/<provider-id>/`. The staging tree is for
1137
+ read, hash, diff, and static validation only; fetched code is not executed or
1138
+ installed. For a new provider sourced by direct HTTP(S) rather than Git, the
1139
+ hook admits one canonical directory-creating fetch: one curl command with
1140
+ `--create-dirs`, one URL, and one explicit
1141
+ `--output <provider-id>/<file>` relative to the provider-sources staging root
1142
+ (or the equivalent absolute staged output when hook input omits workdir). It
1143
+ may create only that one fresh direct provider-id directory. It does not admit
1144
+ general directory creation, a nested output path,
1145
+ `--remote-name`/`--output-dir` forms, a repeated `--create-dirs`, or an
1146
+ already-existing destination directory. Later HTTP(S) files require an
1147
+ existing real direct provider parent and omit `--create-dirs`. Final provider
1148
+ files are authored with `apply_patch`, never by downloading, redirecting,
1149
+ copying, or moving content directly into `trading/`.
1150
+ Externally informed bundles include `source-provenance.json` with
1151
+ `schema_version: 1` and per-source `kind` (`https` or `git`), a public
1152
+ credential-free HTTPS `url` without userinfo/query/fragment, optional
1153
+ `requested_ref`, and exactly one resolved identifier: HTTPS uses
1154
+ `resolved_ref`, while Git uses `resolved_ref` or `resolved_commit`. Each entry
1155
+ also includes `fetched_content_sha256` and RFC 3339 `retrieved_at`. Existing manually
1156
+ authored providers remain compatible without that optional file. Provider
1157
+ bundles reject `.git`, `.hg`, `.svn`, credential/key/`.env` material, and
1158
+ symlinks. AST/syntax, `py_compile`, and static contract checks do not import the
1159
+ provider.
1160
+
1161
+ After the provider is approved, the service is restarted, and a fresh Build
1162
+ turn begins, Head Manager uses the read-only
1064
1163
  `render_broker_connector_scaffold` MCP tool. Its content-addressed result
1065
1164
  contains each workspace target, rendered content/hash, and exact preimage
1066
1165
  existence/hash/size metadata but never existing file content. It performs no
1067
- workspace write. Head Manager verifies the
1068
- preimages and applies the files with `apply_patch`, so Codex's native workspace
1069
- permission remains the filesystem authority. Only the DB-backed
1070
- `register_broker_connector`, `validate_broker_connector_build`, and
1071
- `record_broker_mapping_review` calls consume protected Build proof. Direct
1072
- connector `connect` and write-style `scaffold` remain explicit user-terminal
1073
- operator flows and are absent from the agent MCP surface. If the requested
1074
- provider is not installed, the rendered profile records
1075
- `provider_development_required` instead of pretending the broker is already
1076
- supported.
1166
+ workspace write. Head Manager verifies the preimages and applies the files with
1167
+ `apply_patch`, so Codex's native workspace permission remains the filesystem
1168
+ authority. Only the DB-backed `register_broker_connector`,
1169
+ `validate_broker_connector_build`, and `record_broker_mapping_review` calls
1170
+ consume protected Build proof. Direct connector `connect` and write-style
1171
+ `scaffold` remain explicit user-terminal operator flows and are absent from the
1172
+ agent MCP surface.
1077
1173
 
1078
1174
  Broker provider build work is separate from the running operate server. A
1079
1175
  generated workspace may already have TradingCodex MCP autostarting the Django
1080
1176
  service; mutable workspace `provider.py` files are untrusted and are never
1081
- loaded merely by listing providers. The user must inspect the bundle and approve
1177
+ loaded merely by listing providers. `inspect-provider` reports the secret-free
1178
+ source provenance summary and final bundle hash. When Build's central-ledger
1179
+ filesystem denial prevents an approval-state read, it falls back to an inert
1180
+ bundle-only result marked `service_check_required`; the later interactive
1181
+ operator inspection and approval still resolve canonical approval state from
1182
+ the service ledger. The user must inspect the bundle and approve
1082
1183
  its exact bundle hash from an interactive terminal with `./tcx connectors
1083
1184
  approve-provider <provider-id>`; piped stdin and agent, MCP, API, Admin,
1084
1185
  browser viewer, or Automation calls cannot approve or revoke source. Approval copies
1085
- the reviewed `provider.py` plus its symlink-free supporting source bundle to an
1186
+ the reviewed `provider.py`, optional provenance, and its symlink-free supporting source bundle to an
1086
1187
  immutable managed snapshot but executes no code, and any bundle or workspace
1087
- path change invalidates it. Runtime imports only the rehashed snapshot after a
1188
+ path, provenance, or helper change invalidates it. Runtime imports only the rehashed snapshot after a
1088
1189
  restart, never the mutable workspace copy. Connector profiles record provider
1089
1190
  hashes, status calls report `service_restart_required`, and live execution
1090
- remains blocked until the service is restarted and the connector is revalidated.
1191
+ remains blocked until the service is restarted and connector render,
1192
+ registration, and validation complete in a fresh Build turn.
1091
1193
 
1092
1194
  ## Hooks
1093
1195
 
@@ -1108,16 +1210,16 @@ because hook policy is an agent-runtime boundary.
1108
1210
  tokens before analysis-run allocation; an exact full-prompt grammar
1109
1211
  dispatches the service-owned gateway as `native-user`, while malformed,
1110
1212
  subagent, and retired action forms fail closed
1111
- - deterministic parsing of physical-first-line `$tcx-order-allow --mode
1213
+ - deterministic parsing of first-meaningful-line `$tcx-order-allow --mode
1112
1214
  paper|validation|live`; it requires current root `session_id` and `turn_id`,
1113
1215
  revokes an older session grant, issues a workspace/session/turn/full-prompt/
1114
1216
  mode-bound single-use `OrderTurnGrant`, and continues normal analysis
1115
- - deterministic parsing of exact physical-first-line `$tcx-build` with a
1217
+ - deterministic parsing of matching first-meaningful-line `$tcx-build` with a
1116
1218
  non-empty body; it requires the current root session/turn/cwd, revokes an
1117
1219
  older session Build grant, and issues a DB-canonical current-turn grant that
1118
1220
  never elevates the Codex sandbox; Plan mode cannot issue the grant and tool
1119
1221
  use must match its bound permission mode
1120
- - deterministic parsing of exact physical-first-line `$tcx-brain` and
1222
+ - deterministic parsing of matching first-meaningful-line `$tcx-brain` and
1121
1223
  `$tcx-strategy` prompts with non-empty bodies; each issues only its own
1122
1224
  managed capability scope in `trading-research`, rejects marker combinations,
1123
1225
  and bypasses investment-analysis run allocation