tradingcodex 1.2.2__tar.gz → 2.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/CHANGELOG.md +26 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/PKG-INFO +1 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/README.md +10 -10
- tradingcodex-1.2.2/docs/system-architecture.md → tradingcodex-2.1.0/docs/architecture.md +104 -43
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/codex-native-orchestration.md +1 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/data-sources-and-openbb.md +28 -5
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/decision-memory.md +41 -13
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/deployment.md +22 -16
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/generated-workspaces.md +23 -19
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/interfaces-and-surfaces.md +33 -23
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/investment-brain-plugins.md +1 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/product-direction.md +1 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/research-memory-and-artifacts.md +129 -165
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/roles-skills-and-workflows.md +60 -15
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/safety-policy-and-execution.md +1 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/validation-and-test-plan.md +45 -21
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/App.tsx +6 -3
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/ViewerShell.tsx +3 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/domain.ts +9 -8
- tradingcodex-2.1.0/frontend/src/features/EpisodesPage.tsx +105 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/features/LibraryPage.tsx +13 -5
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/navigation.js +3 -3
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/navigation.test.js +18 -4
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/styles.css +16 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/installation.md +9 -3
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_artifact_authentication.py +228 -48
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_artifact_catalog.py +9 -9
- tradingcodex-2.1.0/tests/test_artifact_v2.py +829 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_build_hook.py +38 -3
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_calculation_runner.py +31 -28
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_clean_v1_cli_audit.py +3 -3
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_codex_native_orchestration.py +338 -106
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_decision_memory_core.py +46 -43
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_dev_bootstrap.py +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_dynamic_artifact_quality.py +89 -100
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_e2e_user_scenarios.py +91 -83
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_investment_brain_prompt_layers.py +39 -20
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_investment_brain_provenance.py +42 -41
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_platform_runtime.py +23 -5
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_release_contract.py +7 -8
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_research_forecast_surfaces.py +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_security_invariants.py +60 -20
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_source_snapshot_agent_contract.py +25 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_viewer.py +33 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex.egg-info/PKG-INFO +1 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex.egg-info/SOURCES.txt +15 -8
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/bootstrap.py +4 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/decision.py +32 -10
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/doctor.py +41 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/orders.py +10 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/research.py +32 -65
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/utils.py +1 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/generator.py +45 -10
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/startup_status.py +5 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/api.py +81 -68
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/agents.py +5 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/artifact_bindings.py +114 -8
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/artifact_catalog.py +39 -5
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/artifact_quality.py +102 -0
- tradingcodex-2.1.0/tradingcodex_service/application/artifact_v2.py +571 -0
- tradingcodex-2.1.0/tradingcodex_service/application/decision_episodes.py +226 -0
- tradingcodex-2.1.0/tradingcodex_service/application/judgment_postmortems.py +370 -0
- tradingcodex-2.1.0/tradingcodex_service/application/judgments.py +349 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/postmortems.py +17 -5
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/research.py +132 -24
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/viewer.py +17 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/mcp_runtime.py +337 -235
- tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/allPaths-DTYZmYwK.js +1 -0
- tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/allPathsLoader-DcM0tTg5.js +2 -0
- tradingcodex-1.2.2/tradingcodex_service/static/tradingcodex_web/assets/index-y2v9zCLQ.css → tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/index-Bb8LR_4w.css +1 -1
- tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/index-C4QYjUvS.js +9 -0
- tradingcodex-1.2.2/tradingcodex_service/static/tradingcodex_web/assets/paths-CoispWSv.js → tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/paths-BOuWfKow.js +1 -1
- tradingcodex-1.2.2/tradingcodex_service/static/tradingcodex_web/assets/paths-BDuITqPr.js → tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/paths-CI3Rjsyg.js +1 -1
- tradingcodex-2.1.0/tradingcodex_service/static/tradingcodex_web/assets/splitPathsBySizeLoader-B1K4iYsq.js +2 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/static/tradingcodex_web/index.html +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/urls.py +2 -0
- tradingcodex-2.1.0/tradingcodex_service/version.py +1 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/viewer_api.py +22 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +3 -0
- tradingcodex-2.1.0/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/fixed-role.md +28 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +7 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/AGENTS.md +10 -7
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +1 -1
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +2 -2
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/SKILL.md +17 -17
- tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +148 -0
- tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/playbooks/research-framing.md +49 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/SKILL.md +9 -8
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/SKILL.md +1 -3
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/SKILL.md +19 -9
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/SKILL.md +6 -4
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/SKILL.md +3 -5
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/SKILL.md +1 -3
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/SKILL.md +1 -4
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/SKILL.md +1 -3
- tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +67 -0
- tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +62 -0
- tradingcodex-2.1.0/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +6 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/SKILL.md +24 -6
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/SKILL.md +6 -4
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/SKILL.md +15 -9
- tradingcodex-1.2.2/tradingcodex_service/static/tradingcodex_web/assets/allPaths-DJ5oy6Ot.js +0 -1
- tradingcodex-1.2.2/tradingcodex_service/static/tradingcodex_web/assets/allPathsLoader-CRlwLu1z.js +0 -2
- tradingcodex-1.2.2/tradingcodex_service/static/tradingcodex_web/assets/index-c5e0ZsDr.js +0 -9
- tradingcodex-1.2.2/tradingcodex_service/static/tradingcodex_web/assets/splitPathsBySizeLoader-x57jFwA3.js +0 -2
- tradingcodex-1.2.2/tradingcodex_service/version.py +0 -1
- tradingcodex-1.2.2/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/fixed-role.md +0 -16
- tradingcodex-1.2.2/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +0 -161
- tradingcodex-1.2.2/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +0 -70
- tradingcodex-1.2.2/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +0 -41
- tradingcodex-1.2.2/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +0 -6
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/CONTRIBUTING.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/LICENSE +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/MANIFEST.in +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/NOTICE +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/README.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/TRADEMARKS.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/audit/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/audit/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/audit/apps.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/audit/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/audit/migrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/audit/models.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/harness/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/harness/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/harness/apps.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/harness/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/harness/migrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/harness/models.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/harness/templatetags/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/integrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/integrations/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/integrations/apps.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/integrations/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/integrations/migrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/integrations/models.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/apps.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/migrations/0002_remove_external_mcp_gate.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/migrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/models.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/mcp/services.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/orders/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/orders/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/orders/apps.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/orders/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/orders/migrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/orders/models.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/orders/services.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/policy/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/policy/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/policy/apps.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/policy/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/policy/migrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/policy/models.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/policy/services.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/portfolio/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/portfolio/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/portfolio/apps.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/portfolio/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/portfolio/migrations/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/apps/portfolio/models.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/assets/tradingcodex-banner-v1.png +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/assets/tradingcodex-banner-v2.png +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/assets/tradingcodex-banner-v3.png +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/assets/tradingcodex-banner.svg +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/financial-workflow-references.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/guardrails.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/harness.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/improvement-loop.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/knowledge-wikis.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/licensing-and-commercialization.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/release-readiness.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/docs/user-facing-skills.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/index.html +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/package-lock.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/package.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/api.ts +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/features/SystemPage.tsx +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/features/WikiPage.tsx +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/main.tsx +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/ui.tsx +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/src/viewer-data.js +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/tsconfig.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/frontend/vite.config.ts +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/install.sh +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/pyproject.toml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/setup.cfg +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_brain_skill.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_broker_center_prd.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_build_contract_metadata.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_build_turn_grant.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_codex_capabilities.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_codex_cli_compat.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_codex_cli_contract.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_datasets.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_evaluation_lab_hardening.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_evaluation_profiles.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_guidebook_contract.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_investment_analysis.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_investment_brain_cli.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_investment_brain_registry.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_investor_context.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_knowledge_wikis.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_mcp_broker_release_health.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_native_execution_gateway.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_order_turn_grant.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_provider_source_approval.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_research_object_catalog.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_research_objects.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_research_spec_profiles.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_runtime_paths.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_runtime_profile.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_skill_runtime_boundaries.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_v1_migrations.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_v1_state_integrity.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tests/test_workspace_git_contract.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex.egg-info/dependency_links.txt +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex.egg-info/entry_points.txt +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex.egg-info/requires.txt +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex.egg-info/top_level.txt +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/__main__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/calculation-runtime-lock.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/calculation-runtime-requirements.txt +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/calculation_runner.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/build.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/connectors.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/data_sources.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/db.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/evaluation.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/forecast.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/home.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/investment_brains.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/investor_context.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/mcp.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/policy.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/profile.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/skills.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/strategies.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/subagents.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/wikis.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/workflow.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/commands/workspaces.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/mcp_stdio.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/package_source.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/service_autostart.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_cli/versioning.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/admin.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/analysis_runs.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/audit.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/brokers.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/build_gateway.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/calculations.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/codex_capabilities.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/common.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/data_sources.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/datasets.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/decision_packages.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/evaluation_lab.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/execution_gateway.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/forecasting.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/git_subprocess.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/harness.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/health.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/investment_analysis.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/investment_brains.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/investor_context.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/knowledge_wikis.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/managed_package_sources.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/markdown_preview.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/operator_authority.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/orders.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/policy.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/portfolio.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/research_object_catalog.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/research_objects.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/research_specs.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/runtime.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/skill_invocations.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/source_snapshots.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/wiki_viewer.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/workspace_git.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/application/workspaces.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/asgi.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/log_safety.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/runtime_profile.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/settings.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/web.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/tradingcodex_service/wsgi.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/__init__.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/audit/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/config.toml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx-calc +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx-calc.cmd +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/files/tcx.cmd +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/codex-base/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/fixed-subagents/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/information-barriers/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/paper-trading/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/references/bundle-contract.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-wiki/references/bundle-contract.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/data-runtime.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/finance-methods.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/SKILL.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/references/openbb-mcp.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/agents/openai.yaml +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/repo-skills/module.json +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
- {tradingcodex-1.2.2 → tradingcodex-2.1.0}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 2.1.0 - 2026-07-23
|
|
6
|
+
|
|
7
|
+
- Ship the complete compact Artifact v2, receipt v4, canonical synthesis,
|
|
8
|
+
JudgmentSnapshot/User Adoption, and Decision Episode vertical slice across
|
|
9
|
+
CLI, MCP, REST, generated workspaces, and the read-only Viewer.
|
|
10
|
+
- Make outcome-blind process review ordering enforceable, bind JudgmentSnapshot
|
|
11
|
+
Forecast posture to the authenticated synthesis, and retain durable blocked
|
|
12
|
+
abstentions without granting action authority.
|
|
13
|
+
- Fail closed on unauthenticated run-bound cards and Episode lineage, expose
|
|
14
|
+
locked process reviews and bounded lifecycle records in Episodes, reject
|
|
15
|
+
unknown nested REST envelope fields, and document the explicit v1-to-v2
|
|
16
|
+
workspace transition.
|
|
17
|
+
|
|
18
|
+
## 2.0.0 - 2026-07-23
|
|
19
|
+
|
|
20
|
+
- Replace the public research-artifact write and read contracts with compact v2
|
|
21
|
+
envelopes, two-axis readiness, receipt v4 provenance, and one canonical Head
|
|
22
|
+
Manager synthesis identity per analysis run while preserving authenticated v1
|
|
23
|
+
files and receipts byte-for-byte through an explicit v1-to-v2 update path.
|
|
24
|
+
- Add evidence-only JudgmentSnapshots, explicit terminal-recorded User Adoption
|
|
25
|
+
events, judgment-bound postmortems, and read-only Decision Episode projections
|
|
26
|
+
across MCP, API, CLI, and the workspace Viewer.
|
|
27
|
+
- Make final Head Manager answers self-contained and decision-focused; durable
|
|
28
|
+
reports retain full provenance and are linked as supporting records instead of
|
|
29
|
+
being restated as a table of contents in chat.
|
|
30
|
+
|
|
5
31
|
## 1.2.2 - 2026-07-22
|
|
6
32
|
|
|
7
33
|
- Validate Codex CLI 0.145.0 as the current reference while retaining 0.144.4
|
|
@@ -5,9 +5,9 @@ the reasons behind it; it is not a second user guide or a source-file index.
|
|
|
5
5
|
|
|
6
6
|
- New users start with the [User Guide](https://monarchjuno.github.io/tradingcodex/).
|
|
7
7
|
- Operators start with [installation.md](../installation.md).
|
|
8
|
-
- Maintainers start with [AGENTS.md](../AGENTS.md) and
|
|
9
|
-
[
|
|
10
|
-
|
|
8
|
+
- Maintainers start with [AGENTS.md](../AGENTS.md) and the codebase
|
|
9
|
+
[Architecture](architecture.md), then read the owning page below before
|
|
10
|
+
changing behavior.
|
|
11
11
|
|
|
12
12
|
## Documentation Ownership
|
|
13
13
|
|
|
@@ -17,7 +17,6 @@ the reasons behind it; it is not a second user guide or a source-file index.
|
|
|
17
17
|
| `installation.md` | Setup, update, and operator recovery. |
|
|
18
18
|
| `docs/` | Canonical product behavior, architecture, safety, and rationale. |
|
|
19
19
|
| `guidebook/` | Short task-first instructions for end users. |
|
|
20
|
-
| `openwiki/` | Source ownership and validation routing for coding agents. |
|
|
21
20
|
| `AGENTS.md` | Repository-wide development rules. |
|
|
22
21
|
|
|
23
22
|
Keep a concept in one owning document and link to it elsewhere. Update another
|
|
@@ -29,14 +28,14 @@ into every layer. If two layers disagree, fix the owning `docs/` page first.
|
|
|
29
28
|
| Goal | Canonical page | Useful follow-up |
|
|
30
29
|
| --- | --- | --- |
|
|
31
30
|
| Understand the product and its design posture | [Product Direction](product-direction.md) | [Harness](harness.md) |
|
|
32
|
-
| Understand runtime and source ownership | [
|
|
31
|
+
| Understand runtime and source ownership | [Architecture](architecture.md) | [Interfaces And Surfaces](interfaces-and-surfaces.md) |
|
|
33
32
|
| Change Head Manager, roles, skills, or research flow | [Roles, Skills, And Workflows](roles-skills-and-workflows.md) | [Codex-Native Orchestration](codex-native-orchestration.md) |
|
|
34
33
|
| Work with research evidence, datasets, and artifacts | [Research Memory And Artifacts](research-memory-and-artifacts.md) | [Data Sources And OpenBB](data-sources-and-openbb.md) |
|
|
35
34
|
| Work with reusable company, product, technology, science, industry, or value-chain knowledge | [Knowledge Wikis](knowledge-wikis.md) | [Investment Brain Plugins](investment-brain-plugins.md) |
|
|
36
35
|
| Understand saved decisions and improvement | [Decision Memory](decision-memory.md) | [Improvement Loop](improvement-loop.md) |
|
|
37
36
|
| Change policy, approvals, brokers, or execution | [Safety, Policy, And Execution](safety-policy-and-execution.md) | [Guardrails](guardrails.md) |
|
|
38
37
|
| Change attach/update or generated workspace files | [Generated Workspaces](generated-workspaces.md) | [Deployment](deployment.md) |
|
|
39
|
-
| Change the viewer, API, MCP, Admin, or CLI | [Interfaces And Surfaces](interfaces-and-surfaces.md) | [
|
|
38
|
+
| Change the viewer, API, MCP, Admin, or CLI | [Interfaces And Surfaces](interfaces-and-surfaces.md) | [Architecture](architecture.md) |
|
|
40
39
|
| Choose or verify validation | [Validation And Test Plan](validation-and-test-plan.md) | [Release Readiness](release-readiness.md) |
|
|
41
40
|
|
|
42
41
|
## Reference By Domain
|
|
@@ -70,8 +69,8 @@ into every layer. If two layers disagree, fix the owning `docs/` page first.
|
|
|
70
69
|
sensitive-action, approval, broker, secret, and audit boundary.
|
|
71
70
|
- [Guardrails](guardrails.md) — guidance, enforcement, and information-barrier
|
|
72
71
|
taxonomy.
|
|
73
|
-
- [
|
|
74
|
-
app boundaries, and service ownership.
|
|
72
|
+
- [Architecture](architecture.md) — codebase map, consequential request flow,
|
|
73
|
+
runtime planes, central DB, app boundaries, and service ownership.
|
|
75
74
|
- [Interfaces And Surfaces](interfaces-and-surfaces.md) — viewer, Admin, API,
|
|
76
75
|
MCP, CLI, and generated wrapper boundaries.
|
|
77
76
|
- [Generated Workspaces](generated-workspaces.md) — attach/update, generated
|
|
@@ -94,8 +93,9 @@ into every layer. If two layers disagree, fix the owning `docs/` page first.
|
|
|
94
93
|
|
|
95
94
|
- Document durable behavior, not temporary implementation plans or completed
|
|
96
95
|
checklists; Git history preserves those.
|
|
97
|
-
- Prefer links to repeated explanations.
|
|
98
|
-
|
|
96
|
+
- Prefer links to repeated explanations. Keep the codebase map in
|
|
97
|
+
`architecture.md` and validation routing in `AGENTS.md`, not in parallel
|
|
98
|
+
documentation layers.
|
|
99
99
|
- Keep user procedures in `guidebook/`; keep internal source paths out of it.
|
|
100
100
|
- Keep product copy in English unless a reviewed localization layer is added.
|
|
101
101
|
- A behavior change updates its owning page in the same change. A code-only
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# TradingCodex Architecture
|
|
2
2
|
|
|
3
|
-
This document
|
|
4
|
-
|
|
3
|
+
This document is the codebase map and canonical architecture reference for
|
|
4
|
+
TradingCodex. It owns runtime and dependency boundaries, source and state
|
|
5
|
+
ownership, Django app boundaries, central DB ownership, service-layer use
|
|
6
|
+
cases, and core model ownership. Repository-wide development constraints and
|
|
7
|
+
the minimum validation route remain in [`AGENTS.md`](../AGENTS.md).
|
|
5
8
|
|
|
6
9
|
## Architecture Summary
|
|
7
10
|
|
|
@@ -31,43 +34,82 @@ optional role skills, and `strategy-*` skills are managed user overlays. The
|
|
|
31
34
|
harness coordinates those layers; it is not the product definition and an
|
|
32
35
|
overlay never replaces the kernel.
|
|
33
36
|
|
|
34
|
-
##
|
|
37
|
+
## Model-Aware Consequence Flow
|
|
38
|
+
|
|
39
|
+
The Codex agent changing this repository and agents running inside a
|
|
40
|
+
TradingCodex workspace may use the same GPT/Codex model family. The
|
|
41
|
+
implementing agent's own likely interpretation and behavior are therefore a
|
|
42
|
+
useful design signal, especially when reviewing prompts, skills, tool exposure,
|
|
43
|
+
and delegation. They are not proof of identical runtime behavior: system
|
|
44
|
+
instructions, context, enabled capabilities, permissions, model versions, and
|
|
45
|
+
reasoning settings may differ.
|
|
46
|
+
|
|
47
|
+
Trace consequential behavior end to end before adding or changing harness
|
|
48
|
+
machinery:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
user request
|
|
52
|
+
-> model interpretation and chosen response path
|
|
53
|
+
-> prompt, skill, and available-context guidance
|
|
54
|
+
-> tool or subagent selection
|
|
55
|
+
-> TradingCodex interface and application-service boundary
|
|
56
|
+
-> workspace artifact, durable record, or external action
|
|
57
|
+
-> safety, audit, latency, context, and user-visible consequences
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Fix behavior at the earliest canonical layer that causes it. Do not add a
|
|
61
|
+
router, validator, retry loop, registry, or state machine merely to compensate
|
|
62
|
+
for behavior native Codex already handles or that clearer context and guidance
|
|
63
|
+
can resolve. For consequential prompt, skill, tool, or orchestration changes,
|
|
64
|
+
observe the actual generated TradingCodex harness; unit tests and assumptions
|
|
65
|
+
about the model cover deterministic contracts but do not replace runtime
|
|
66
|
+
evidence.
|
|
67
|
+
|
|
68
|
+
## Codebase Map
|
|
69
|
+
|
|
70
|
+
Use this map to find the canonical owner, then inspect that owner, its callers,
|
|
71
|
+
and focused tests. It intentionally lists stable directories and entrypoints
|
|
72
|
+
rather than every file.
|
|
73
|
+
|
|
74
|
+
| Path | Ownership |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `tradingcodex_service/application/` | Canonical durable use cases, state transitions, provenance, projections, and sensitive-action gates. |
|
|
77
|
+
| `apps/*/models.py`, `apps/*/admin.py` | Central Django ledger models, migrations, and local Admin inspection. Thin `services.py` modules re-export canonical application services where required. |
|
|
78
|
+
| `tradingcodex_service/api.py`, `viewer_api.py`, `web.py` | Local API and read-only web surfaces; these call application services and own no parallel business logic. |
|
|
79
|
+
| `tradingcodex_service/mcp_runtime.py` | TradingCodex MCP definitions, role visibility, validation, and dispatch into application services. |
|
|
80
|
+
| `tradingcodex_cli/` | Attach/update, generated-workspace lifecycle, operator commands, service startup, and the isolated calculation runner. |
|
|
81
|
+
| `workspace_templates/modules/*/files/` | Source templates for projected prompts, skills, agents, hooks, policies, launchers, and workspace contracts. Generated copies are not edited directly. |
|
|
82
|
+
| `frontend/` | Maintainer-only React/TypeScript viewer source. |
|
|
83
|
+
| `tradingcodex_service/static/tradingcodex_web/` | Deterministic generated frontend build served by Django; never hand-edited. |
|
|
84
|
+
| `tests/` | Unit, contract, safety, generated-workspace, platform, and native Codex validation. |
|
|
85
|
+
| `docs/` | Canonical product behavior, architecture, safety, workflow, validation, and release rationale. |
|
|
86
|
+
| `guidebook/` | Concise, task-first user instructions. |
|
|
87
|
+
| `README.md`, `installation.md`, `install.sh` | Product entrypoint, installation contract, and source-development bootstrap. |
|
|
88
|
+
|
|
89
|
+
### Domain Owners
|
|
90
|
+
|
|
91
|
+
| Concern | Primary source |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| Runtime home, workspace identity, and service lifecycle | `tradingcodex_service/application/runtime.py`, `workspaces.py`, `health.py`; `tradingcodex_cli/generator.py`, `startup_status.py` |
|
|
94
|
+
| Agent roles, skills, analysis runs, and harness display | `tradingcodex_service/application/agents.py`, `analysis_runs.py`, `harness.py`; `workspace_templates/modules/` |
|
|
95
|
+
| File-native research, datasets, calculations, and provenance | `tradingcodex_service/application/artifact_v2.py`, `research.py`, `research_objects.py`, `datasets.py`, `calculations.py`, `artifact_bindings.py`, `artifact_catalog.py` |
|
|
96
|
+
| Judgments, adoption, forecasts, postmortems, and episode projection | `tradingcodex_service/application/judgments.py`, `decision_episodes.py`, `judgment_postmortems.py`, `forecasting.py`; `decision_packages.py` and `postmortems.py` remain legacy read paths |
|
|
97
|
+
| Knowledge Wikis and managed packages | `tradingcodex_service/application/knowledge_wikis.py`, `managed_package_sources.py`, `wiki_viewer.py` |
|
|
98
|
+
| Policy, orders, approvals, brokers, and final execution | `tradingcodex_service/application/policy.py`, `orders.py`, `execution_gateway.py`, `brokers.py`, plus the corresponding `apps/` models |
|
|
99
|
+
| Viewer, API, Admin, CLI, and MCP surfaces | Interface entrypoints above; all durable behavior remains in `application/` |
|
|
100
|
+
| Generated workspace projection | `tradingcodex_cli/generator.py`, module manifests, and `workspace_templates/modules/*/files/` |
|
|
101
|
+
|
|
102
|
+
## Conceptual Source Tree
|
|
35
103
|
|
|
36
104
|
```text
|
|
105
|
+
README.md / installation.md / install.sh
|
|
37
106
|
pyproject.toml
|
|
38
107
|
manage.py
|
|
39
108
|
frontend/
|
|
40
|
-
package.json
|
|
41
109
|
src/
|
|
42
|
-
vite.config.ts
|
|
43
110
|
tradingcodex_service/
|
|
44
|
-
static/tradingcodex_web/
|
|
45
111
|
application/
|
|
46
|
-
|
|
47
|
-
build_gateway.py
|
|
48
|
-
common.py
|
|
49
|
-
execution_gateway.py
|
|
50
|
-
runtime.py
|
|
51
|
-
orders.py
|
|
52
|
-
portfolio.py
|
|
53
|
-
policy.py
|
|
54
|
-
research.py
|
|
55
|
-
research_objects.py
|
|
56
|
-
research_object_catalog.py
|
|
57
|
-
datasets.py
|
|
58
|
-
calculations.py
|
|
59
|
-
research_specs.py
|
|
60
|
-
investment_analysis.py
|
|
61
|
-
forecasting.py
|
|
62
|
-
evaluation_lab.py
|
|
63
|
-
audit.py
|
|
64
|
-
harness.py
|
|
65
|
-
analysis_runs.py
|
|
66
|
-
investment_brains.py
|
|
67
|
-
viewer.py
|
|
68
|
-
workspace_git.py
|
|
69
|
-
workspaces.py
|
|
70
|
-
health.py
|
|
112
|
+
static/tradingcodex_web/ # generated frontend build
|
|
71
113
|
tradingcodex_cli/
|
|
72
114
|
commands/
|
|
73
115
|
apps/
|
|
@@ -78,16 +120,16 @@ apps/
|
|
|
78
120
|
orders/
|
|
79
121
|
policy/
|
|
80
122
|
portfolio/
|
|
81
|
-
research/
|
|
82
|
-
workflows/
|
|
83
123
|
workspace_templates/
|
|
124
|
+
modules/
|
|
84
125
|
tests/
|
|
85
126
|
docs/
|
|
127
|
+
guidebook/
|
|
86
128
|
```
|
|
87
129
|
|
|
88
130
|
The source tree above is conceptual. Large service modules may be refactored
|
|
89
131
|
into packages under `tradingcodex_service/application/` when that improves
|
|
90
|
-
maintainability. For the
|
|
132
|
+
maintainability. For the current release contract, implementation should split by
|
|
91
133
|
durable service use case rather than by interface surface. Web, API, CLI, MCP,
|
|
92
134
|
and generated hooks should continue calling the
|
|
93
135
|
same application services instead of growing separate policy, execution,
|
|
@@ -102,7 +144,7 @@ update` never run npm.
|
|
|
102
144
|
|
|
103
145
|
Durable service implementation lives under
|
|
104
146
|
`tradingcodex_service/application/`. CLI command implementations live under
|
|
105
|
-
`tradingcodex_cli/commands/`. The
|
|
147
|
+
`tradingcodex_cli/commands/`. The codebase uses these canonical modules
|
|
106
148
|
directly.
|
|
107
149
|
|
|
108
150
|
## Runtime Planes
|
|
@@ -280,11 +322,15 @@ refuses remote hosts or an unverified listener PID.
|
|
|
280
322
|
| `policy` | Principals, capabilities, restricted list, limits, policy decisions. |
|
|
281
323
|
| `orders` | Canonical order tickets, order checks, approval receipts, current-turn order grants, broker order timeline, fills, and execution attempts/results. |
|
|
282
324
|
| `portfolio` | Cash, positions, exposure snapshots, normalized ledger events, broker sync runs, reconciliation runs, paper portfolio state. |
|
|
283
|
-
| `research` | Workspace markdown research artifacts, artifact versions, evidence packs, report metadata, file-native source/as-of snapshots, immutable Dataset and Calculation objects, and rebuildable catalog projections. No Django DB models or Admin DB surface. |
|
|
284
325
|
| `audit` | Append-only audit events, request hashes, result hashes, policy/action provenance. |
|
|
285
326
|
| `mcp` | Protocol adapter metadata, tool registry, and non-research tool call ledger. |
|
|
286
327
|
| `integrations` | Broker connections, broker accounts, instrument maps, paper and validation-only execution paths, read-only data adapters, future broker adapter definitions. |
|
|
287
328
|
|
|
329
|
+
File-native research has no Django app, DB models, or Admin DB surface.
|
|
330
|
+
Workspace markdown artifacts, versions, evidence packs, source/as-of snapshots,
|
|
331
|
+
immutable Dataset and Calculation objects, and rebuildable catalog projections
|
|
332
|
+
are owned by `tradingcodex_service/application/` services.
|
|
333
|
+
|
|
288
334
|
## Service Layer Rules
|
|
289
335
|
|
|
290
336
|
Interfaces must call shared service functions rather than duplicating durable
|
|
@@ -394,18 +440,26 @@ Read/write research and audit use cases:
|
|
|
394
440
|
- `get_forecast`
|
|
395
441
|
- `list_forecasts`
|
|
396
442
|
- `calibration_report`
|
|
443
|
+
- `record_judgment_snapshot`
|
|
444
|
+
- `get_judgment_snapshot`
|
|
445
|
+
- `list_judgment_snapshots`
|
|
446
|
+
- `record_decision_adoption`
|
|
447
|
+
- `record_judgment_process_review`
|
|
448
|
+
- `create_judgment_postmortem`
|
|
449
|
+
- `list_decision_episodes`
|
|
450
|
+
- `get_decision_episode`
|
|
397
451
|
- `create_evaluation_corpus`
|
|
398
452
|
- `record_evaluation_run`
|
|
399
453
|
- `record_blind_human_review`
|
|
400
454
|
- `compare_evaluation_runs`
|
|
401
455
|
- `record_audit_event`
|
|
402
456
|
|
|
403
|
-
Research artifact writes preserve workspace markdown as the source of truth
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
contract, Evidence Run Card shape, and
|
|
408
|
-
research memory into the central DB.
|
|
457
|
+
Research artifact writes preserve workspace markdown as the source of truth.
|
|
458
|
+
V2 stores a compact identity, status, summary, requirement, and lineage
|
|
459
|
+
envelope in Markdown; receipt v4 seals the exact versions, hashes, and run
|
|
460
|
+
context omitted from that reader-facing file. `quality-check --strict`
|
|
461
|
+
validates the markdown handoff contract, Evidence Run Card shape, and
|
|
462
|
+
Validation Card shape without moving research memory into the central DB.
|
|
409
463
|
|
|
410
464
|
Dataset manifests and Calculation specs/runs use the same immutable research-
|
|
411
465
|
object primitives as Source Snapshots, ResearchSpecs, and ExperimentRuns.
|
|
@@ -462,6 +516,13 @@ producer, exact inputs, and Brain/Strategy/Investor Context lineage. Synthesis,
|
|
|
462
516
|
forecasts, and Decision Memory reverify receipts instead of trusting Markdown
|
|
463
517
|
frontmatter or caller-supplied lineage.
|
|
464
518
|
|
|
519
|
+
The Decision Episode viewer is a read projection, not another workflow state
|
|
520
|
+
store. It joins the run, authenticated synthesis and role artifacts, forecasts,
|
|
521
|
+
JudgmentSnapshot, explicit User Adoption, process review/Postmortem, and lesson
|
|
522
|
+
status by `workflow_run_id`. Each lifecycle dimension remains independently
|
|
523
|
+
projected, and ambiguous legacy synthesis candidates are surfaced rather than
|
|
524
|
+
chosen by the viewer.
|
|
525
|
+
|
|
465
526
|
The viewer adds no run state beside the lightweight native run under
|
|
466
527
|
`.tradingcodex/mainagent/runs/<analysis-run-id>/` and launches no Codex process.
|
|
467
528
|
It reads canonical activity and accepted artifacts through the shared service
|
|
@@ -34,11 +34,34 @@ attempted before that fallback unless the user selected another provider.
|
|
|
34
34
|
Evidence is fit to a claim and intended use rather than accepted or rejected by
|
|
35
35
|
provider class. Original public records remain preferred when a claim requires
|
|
36
36
|
source-of-record authority, but attributable non-primary evidence may support
|
|
37
|
-
the fields and periods it actually covers.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
the fields and periods it actually covers. OpenBB is an access layer, not a
|
|
38
|
+
source class: judge a result by its returned provider, identifiers, periods,
|
|
39
|
+
units, adjustments, freshness, and coverage. Current attributable data from a
|
|
40
|
+
credible OpenBB provider is usable on the same terms as data retrieved from
|
|
41
|
+
that provider directly.
|
|
42
|
+
|
|
43
|
+
Use source-of-record evidence when exact legal, regulatory, contractual,
|
|
44
|
+
accounting, filing, or official-policy status is itself material. For market
|
|
45
|
+
prices, normalized fundamentals, estimates, industry developments, event
|
|
46
|
+
chronology, and interpretation, a credible institutional provider or reputable
|
|
47
|
+
secondary publication may support a conclusion when it is attributable,
|
|
48
|
+
current for the claim, within the source's competence, and free of unresolved
|
|
49
|
+
material conflict. Secondary does not mean screen-only. Corroborate in
|
|
50
|
+
proportion to consequence: independently check a conclusion-driving claim when
|
|
51
|
+
it is surprising, disputed, transformed from raw data, or weakly attributed;
|
|
52
|
+
do not impose a fixed source count on ordinary well-supported facts.
|
|
53
|
+
|
|
54
|
+
Missing or ambiguous coverage limits only dependent claims and actions; it
|
|
55
|
+
does not erase independent valid fields or automatically downgrade the whole
|
|
56
|
+
artifact. `decision-grade` evidence may use a mixture of official records,
|
|
57
|
+
OpenBB/provider data, and reputable secondary evidence when every
|
|
58
|
+
conclusion-driving claim has fit-for-purpose support, a current market anchor
|
|
59
|
+
exists when relevant, and material conflicts and gaps are explicit.
|
|
60
|
+
`screen` evidence readiness is for a gap that materially prevents responsible decision
|
|
61
|
+
support, not for the mere absence of a primary source. Confidence records the
|
|
62
|
+
strength and independence of support separately from readiness. This preserves
|
|
63
|
+
evidence usability and decision readiness without adding a provider trust
|
|
64
|
+
score, allowlist, or routing registry.
|
|
42
65
|
|
|
43
66
|
Freshness is relative to the requested as-of, the source's observation or
|
|
44
67
|
publication cadence, the relevant instrument or venue session, and the claim.
|
|
@@ -34,13 +34,13 @@ tools, persistence, memory, policy, approval, broker, order, or execution.
|
|
|
34
34
|
## Canonical Architecture
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
|
-
|
|
37
|
+
Research Artifacts
|
|
38
38
|
|
|
|
39
|
-
|
|
39
|
+
point-in-time Synthesis
|
|
40
40
|
|
|
|
41
|
-
|
|
41
|
+
Judgment Snapshot + optional User Adoption
|
|
42
42
|
|
|
|
43
|
-
|
|
43
|
+
Forecast outcome + proper score
|
|
44
44
|
|
|
|
45
45
|
two-pass postmortem
|
|
46
46
|
|
|
|
@@ -61,8 +61,9 @@ The source of truth is the existing file-native record:
|
|
|
61
61
|
- immutable ResearchSpecs and replay manifests;
|
|
62
62
|
- experiment runs that bind code, data, config, model, prompt, tool, and trial
|
|
63
63
|
provenance;
|
|
64
|
-
-
|
|
65
|
-
|
|
64
|
+
- accepted role artifacts and canonical synthesis, immutable JudgmentSnapshots,
|
|
65
|
+
explicit User Adoption events, and legacy DecisionSnapshots retained
|
|
66
|
+
read-only;
|
|
66
67
|
- append-only forecast issue, revision, resolution, dispute, and score events;
|
|
67
68
|
- audit-backed postmortems and append-only improve records; and
|
|
68
69
|
- Investment Brain id/version/content digest, Strategy hash, and Investor
|
|
@@ -71,7 +72,7 @@ The source of truth is the existing file-native record:
|
|
|
71
72
|
Existing events are not edited to make history look cleaner. Corrections,
|
|
72
73
|
revisions, supersession, disputes, and retirement are new records.
|
|
73
74
|
|
|
74
|
-
The rebuildable
|
|
75
|
+
The rebuildable v3 artifact catalog provides a discovery projection across
|
|
75
76
|
these file-native records without becoming Decision Memory itself. New
|
|
76
77
|
type-specific service output projects with full canonical identity metadata;
|
|
77
78
|
older files remain unchanged and may project as `legacy_partial`. Malformed
|
|
@@ -260,16 +261,43 @@ selection bias.
|
|
|
260
261
|
A good process can have a bad outcome, and a poor process can have a profitable
|
|
261
262
|
outcome. Outcome knowledge must not rewrite what was reasonably knowable.
|
|
262
263
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
264
|
+
Head Manager autonomously seals an evaluable accepted synthesis with the
|
|
265
|
+
role-scoped `record_judgment_snapshot` MCP tool. Factual and screening synthesis
|
|
266
|
+
is not frozen. A durable `insufficient` abstention may still be frozen when its
|
|
267
|
+
future process or outcome is worth evaluating; it remains action-blocked. The
|
|
268
|
+
snapshot binds the canonical synthesis receipt, analysis run context, cutoff,
|
|
269
|
+
and Forecast refs or the canonical reason Forecast was inapplicable. Caller
|
|
270
|
+
input cannot contradict the synthesis Forecast posture. It has
|
|
271
|
+
`authority: evidence_only` and creates no execution permission.
|
|
272
|
+
|
|
273
|
+
User Adoption is separate. TradingCodex never infers it from conversation,
|
|
274
|
+
viewer activity, a recommendation, or order preparation. The user explicitly
|
|
275
|
+
records an immutable event with `./tcx decision adopt <payload.json|->`; it
|
|
276
|
+
binds the Judgment hash and user's decision statement and may supersede an
|
|
277
|
+
earlier Adoption. Adoption still is not order approval or execution authority.
|
|
278
|
+
|
|
279
|
+
Postmortem locks the outcome-blind first pass with `./tcx postmortem
|
|
280
|
+
process-review`, then creates the outcome-attached report with `./tcx
|
|
281
|
+
postmortem create`. Process quality can be assessed against Judgment alone;
|
|
282
|
+
claims about what the user actually decided require an Adoption ref. Lesson
|
|
269
283
|
promotion has no direct or generic CLI path: an authenticated
|
|
270
284
|
`judgment-reviewer` performs it through the role-scoped `promote_lesson` MCP
|
|
271
285
|
tool.
|
|
272
286
|
|
|
287
|
+
### Decision Episode projection
|
|
288
|
+
|
|
289
|
+
`Decision Episode` is a read model, not stored workflow state. It groups by
|
|
290
|
+
`workflow_run_id`: run record, verified synthesis and role artifacts, Forecast
|
|
291
|
+
events, JudgmentSnapshot, User Adoption, process review/Postmortem, and Lesson
|
|
292
|
+
status. Analysis, judgment, adoption, forecast, postmortem, and lesson keep
|
|
293
|
+
separate statuses; there is no lifecycle enum that falsely implies a single
|
|
294
|
+
linear state machine. Legacy runs with one synthesis use it; multiple legacy
|
|
295
|
+
synthesis candidates produce `ambiguous_legacy_synthesis` and are never
|
|
296
|
+
resolved by guessing. Public cards, search, Library, and Episode projections
|
|
297
|
+
verify every run-bound artifact receipt before displaying its fields or using
|
|
298
|
+
its Dataset and Calculation lineage. The Episode exposes a locked process
|
|
299
|
+
review independently from a completed Postmortem.
|
|
300
|
+
|
|
273
301
|
### Separate error loops
|
|
274
302
|
|
|
275
303
|
Do not combine every failure into one Error Book:
|
|
@@ -8,18 +8,24 @@ templates, Django Admin, MCP gateway, and the committed React viewer build.
|
|
|
8
8
|
Django and WhiteNoise serve the viewer. End users and generated workspaces
|
|
9
9
|
do not need Node or npm.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## v2 Release Contract
|
|
12
12
|
|
|
13
|
-
`
|
|
14
|
-
|
|
15
|
-
and
|
|
13
|
+
`2.0.0` introduced the breaking public contract for compact Artifact v2,
|
|
14
|
+
receipt v4,
|
|
15
|
+
JudgmentSnapshot/User Adoption, and Decision Episode reads across Web, API,
|
|
16
|
+
CLI, MCP, and application services. Existing authenticated v1 Markdown,
|
|
17
|
+
version archives, and receipts remain byte-preserved and readable through the
|
|
18
|
+
v2 projection; all new artifact writes use v2. `2.1.0` is the first hardened
|
|
19
|
+
minor release of that contract, adding fail-closed public projections,
|
|
20
|
+
outcome-blind ordering enforcement, and complete Episode lifecycle detail.
|
|
16
21
|
|
|
17
|
-
The
|
|
22
|
+
The release baseline is intentionally clean:
|
|
18
23
|
|
|
19
24
|
- new installations attach an empty workspace with `tcx attach`
|
|
20
|
-
- v1 workspaces
|
|
21
|
-
|
|
22
|
-
-
|
|
25
|
+
- v1 workspaces upgrade only through the explicit documented v1-to-v2 update
|
|
26
|
+
path; other major-version mismatches fail closed
|
|
27
|
+
- generated files, runtime state, and database schema use the v2 contract
|
|
28
|
+
- old public artifact request fields are rejected rather than accepted as aliases
|
|
23
29
|
- paper execution is built in; live execution remains disabled by default and
|
|
24
30
|
requires an installed provider plus every policy, approval, idempotency,
|
|
25
31
|
connection, confirmation, sync, and audit gate
|
|
@@ -28,7 +34,7 @@ If the selected runtime database contains prerelease migrations or project
|
|
|
28
34
|
tables without clean v1 migration history, startup and bootstrap fail closed.
|
|
29
35
|
The error reports the selected `TRADINGCODEX_HOME` and database path.
|
|
30
36
|
TradingCodex does not migrate, delete, archive, or back up incompatible
|
|
31
|
-
prerelease
|
|
37
|
+
prerelease state.
|
|
32
38
|
|
|
33
39
|
The operator must choose one explicit recovery path:
|
|
34
40
|
|
|
@@ -38,7 +44,7 @@ The operator must choose one explicit recovery path:
|
|
|
38
44
|
2. Stop every TradingCodex process, then archive or remove the old selected
|
|
39
45
|
home/database manually before retrying.
|
|
40
46
|
|
|
41
|
-
There is no automatic prerelease migration or fallback path
|
|
47
|
+
There is no automatic prerelease migration or fallback path.
|
|
42
48
|
|
|
43
49
|
TradingCodex releases software; they do not promote a model policy or establish
|
|
44
50
|
investment-performance claims. Those claims require the independent evidence
|
|
@@ -183,8 +189,8 @@ also require the disposable-workspace and Codex-native checks documented in
|
|
|
183
189
|
`.github/workflows/ci.yml` is test-only. Parallel Ubuntu jobs run the frontend
|
|
184
190
|
determinism check and the Python 3.11 source/framework gates. It does
|
|
185
191
|
not construct or upload a wheel or source distribution, run release-upgrade or
|
|
186
|
-
native-runtime matrices, or publish anything. Documentation-, guide-,
|
|
187
|
-
|
|
192
|
+
native-runtime matrices, or publish anything. Documentation-, guide-, and
|
|
193
|
+
asset-only pushes or pull requests skip this workflow. Source-bearing pull
|
|
188
194
|
requests and pushes still receive the normal source-quality checks.
|
|
189
195
|
|
|
190
196
|
`.github/workflows/release.yml` is manual-only. Every run requires an explicit
|
|
@@ -297,14 +303,14 @@ uvx --refresh --from "tradingcodex==$ReleaseVersion" tcx attach . --from "tradin
|
|
|
297
303
|
Verify the PyPI project page, filenames, metadata, and release notes after the
|
|
298
304
|
smokes pass.
|
|
299
305
|
|
|
300
|
-
##
|
|
306
|
+
## v2 Update Policy
|
|
301
307
|
|
|
302
|
-
TradingCodex has two update layers within the
|
|
308
|
+
TradingCodex has two update layers within the v2 line:
|
|
303
309
|
|
|
304
310
|
- package update: run the desired package with `uvx --refresh`, upgrade an
|
|
305
311
|
installed `uv` tool, or use `install.sh --update`
|
|
306
312
|
- workspace update: run `tcx update <workspace>` from that package to refresh
|
|
307
|
-
generated files, indexes, project MCP configuration, hooks, and the
|
|
313
|
+
generated files, indexes, project MCP configuration, hooks, and the v2 schema
|
|
308
314
|
|
|
309
315
|
`tcx update` preserves workspace identity and workspace-native user artifacts.
|
|
310
316
|
It may replace only generated paths owned by
|
|
@@ -313,7 +319,7 @@ Codex and open a new task so project configuration, prompts, skills, hooks, and
|
|
|
313
319
|
MCP state reload together.
|
|
314
320
|
|
|
315
321
|
A future major-version migration requires its own explicit product contract and
|
|
316
|
-
validation.
|
|
322
|
+
validation. Release automation does not infer one.
|
|
317
323
|
|
|
318
324
|
## What Is Not Deployed
|
|
319
325
|
|
|
@@ -20,7 +20,7 @@ binding load together. Start a new task after restart rather than resuming an
|
|
|
20
20
|
already-open task, which can retain the prior generated hook snapshot.
|
|
21
21
|
|
|
22
22
|
The template source tree may be refactored for maintainability, but generated
|
|
23
|
-
output paths are the
|
|
23
|
+
output paths are the current release contract. Module ids, module dependency
|
|
24
24
|
resolution, and rendered paths such as `.codex/config.toml`, `.agents/skills/*`,
|
|
25
25
|
`.tradingcodex/*`, `trading/*`, and `./tcx` must remain stable unless docs and
|
|
26
26
|
tests intentionally change the generated workspace contract. The generated
|
|
@@ -256,19 +256,19 @@ Generated workspaces contain:
|
|
|
256
256
|
- Codex-style operating style in the root `head-manager` prompt: scoped
|
|
257
257
|
`AGENTS.md` handling, concise preambles, selective planning, exact safe
|
|
258
258
|
workspace reads, native `apply_patch` edits, dirty-worktree respect, concise
|
|
259
|
-
maintenance handoffs, and
|
|
260
|
-
|
|
261
|
-
research report shallow
|
|
259
|
+
maintenance handoffs, and self-contained user answers whose saved synthesis
|
|
260
|
+
link supplements rather than replaces the conclusion and evidence
|
|
262
261
|
- instruction/skill separation: root `head-manager` instructions own identity,
|
|
263
262
|
root coordination, durable root safety boundaries, fail-closed dispatch,
|
|
264
263
|
skill routing, optional-skill management, and approved action boundaries;
|
|
265
264
|
`fixed-role.md` owns shared child safety, evidence, compact artifact, and
|
|
266
265
|
evidence-backed gap handling; fixed subagent TOML files own specialist identity,
|
|
267
266
|
MCP/tool config, and role-specific prohibitions; repo skills are
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
267
|
+
canonical bundles with concise `SKILL.md` entrypoints and task-routed
|
|
268
|
+
resources at purpose-named paths. They provide dependency-light capability
|
|
269
|
+
procedures for workflow maps, compact assignment-envelope templates,
|
|
270
|
+
optional skill file management, quality gates, synthesis, and postmortems,
|
|
271
|
+
without declaring role ownership or direct inter-skill call chains
|
|
272
272
|
- no-overlap handoff contract: each role owns its specialist question, downstream roles consume accepted artifacts, and missing/stale/weak upstream work returns `revise`, `blocked`, or `waiting` instead of being silently redone by another role
|
|
273
273
|
- source routing: an evidence producer follows `tcx-source-gate` and hands
|
|
274
274
|
compact SourceSnapshot/Dataset IDs forward. A Dataset is created only for
|
|
@@ -389,12 +389,11 @@ Generated workspaces contain:
|
|
|
389
389
|
- verification-budget copy is task-specific: native actions, connector, and
|
|
390
390
|
strategy work verifies its own service or validation evidence instead of
|
|
391
391
|
research source-freshness fields
|
|
392
|
-
- context-efficient research handoffs:
|
|
393
|
-
`
|
|
394
|
-
|
|
395
|
-
at most one selected schema avoids
|
|
396
|
-
|
|
397
|
-
first-read experience clear for non-expert users
|
|
392
|
+
- context-efficient research handoffs: compact v2 frontmatter includes one
|
|
393
|
+
shared `summary`, two readiness axes, exact IDs, and only applicable blocks;
|
|
394
|
+
receipt-only hashes and run-context digests stay out of Markdown. Bounded
|
|
395
|
+
name-only deferred-tool discovery plus at most one selected schema avoids
|
|
396
|
+
injecting whole provider catalogs or multiple schemas into context
|
|
398
397
|
- lightweight analysis run state:
|
|
399
398
|
`.tradingcodex/mainagent/runs/<analysis-run-id>/run.json` stores only run
|
|
400
399
|
identity, request hash/size, timestamps, and sealed strategy/Investor Context
|
|
@@ -645,9 +644,10 @@ a generated-file inventory. The module lock is an exact schema: it contains
|
|
|
645
644
|
only `format`, `schema_version`, `generated_at`, `workspace_id`,
|
|
646
645
|
`tradingcodex_version`, `tradingcodex_package_spec`, `tradingcodex_home`,
|
|
647
646
|
`home_source`, `tradingcodex_db_path`, `db_source`, `modules`, and
|
|
648
|
-
`generated_files`. Versions use canonical PEP 440 syntax
|
|
649
|
-
running package's major version;
|
|
650
|
-
|
|
647
|
+
`generated_files`. Versions use canonical PEP 440 syntax. Routine updates stay
|
|
648
|
+
within the running package's major version; the one explicit cross-major path is
|
|
649
|
+
an authenticated v1 workspace updating to v2. Status inspection alone may read
|
|
650
|
+
a newer same-major lock so it can direct the user to refresh the package. Module entries
|
|
651
651
|
contain exactly `id`, `description`, and `capabilities` with unique ids.
|
|
652
652
|
Generated-file records contain exactly a lowercase SHA-256 and an owner of
|
|
653
653
|
`template` or `projection`. Timestamps must be timezone-aware, workspace ids use
|
|
@@ -1139,8 +1139,12 @@ service, the hook separately surfaces direct Viewer and Wiki links as a Codex
|
|
|
1139
1139
|
`systemMessage`. It emits no viewer URL for an incompatible or unreachable
|
|
1140
1140
|
service. When an update is available and recommendations are not suppressed,
|
|
1141
1141
|
the same message also includes the workspace/latest versions, workspace
|
|
1142
|
-
launcher command, and restart step.
|
|
1143
|
-
|
|
1142
|
+
launcher command, and restart step. On `source=startup` only, the hook also
|
|
1143
|
+
copies that compact update message into optional `first_response_notice`
|
|
1144
|
+
developer context so Head Manager includes it once at the end of the first
|
|
1145
|
+
user-facing response; resume, clear, compact, and missing-source starts omit
|
|
1146
|
+
the field. The full update status is never added to agent context, and neither
|
|
1147
|
+
notice grants update authority.
|
|
1144
1148
|
|
|
1145
1149
|
Build authorization retains `exact_first_line` and managed-skill authorization
|
|
1146
1150
|
retains `exact_first_lines` as canonical plain-token examples for copy/paste
|