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.
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/CHANGELOG.md +41 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/PKG-INFO +1 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/README.md +1 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/core-concepts-and-rules.md +4 -2
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/decision-memory.md +2 -2
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/deployment.md +13 -3
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/execution-without-subagent-plan.md +23 -17
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/generated-workspaces.md +148 -46
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/harness.md +20 -13
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/interfaces-and-surfaces.md +44 -22
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/investment-brain-plugins.md +4 -3
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/product-direction.md +1 -1
- tradingcodex-1.1.0/docs/release-readiness.md +181 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/roles-skills-and-workflows.md +54 -19
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/safety-policy-and-execution.md +94 -34
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/system-architecture.md +3 -3
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/user-facing-skills.md +42 -20
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/validation-and-test-plan.md +116 -14
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/installation.md +59 -3
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_brain_skill.py +1 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_broker_center_prd.py +28 -0
- tradingcodex-1.1.0/tests/test_build_hook.py +2385 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_build_turn_grant.py +94 -14
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_clean_v1_cli_audit.py +1 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_prompt_layers.py +6 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_provenance.py +39 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investor_context.py +76 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_native_execution_gateway.py +101 -11
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_order_turn_grant.py +29 -9
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_platform_runtime.py +459 -7
- tradingcodex-1.1.0/tests/test_provider_source_approval.py +1041 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_release_contract.py +25 -4
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/PKG-INFO +1 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/SOURCES.txt +1 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/build.py +5 -4
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/connectors.py +7 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/doctor.py +75 -14
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/mcp.py +2 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/mode.py +1 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/generator.py +236 -14
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/startup_status.py +15 -5
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/analysis_runs.py +71 -13
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/brokers.py +570 -48
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/build_gateway.py +129 -79
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/components.py +1 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/customization.py +6 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/execution_gateway.py +105 -40
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/runtime_mode.py +4 -1
- tradingcodex-1.1.0/tradingcodex_service/application/skill_invocations.py +354 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/mcp_runtime.py +3 -3
- tradingcodex-1.1.0/tradingcodex_service/version.py +1 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/config.toml +71 -4
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +1900 -35
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/hooks.json +1 -1
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +101 -41
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -7
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/AGENTS.md +41 -20
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/SKILL.md +24 -14
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/SKILL.md +13 -7
- tradingcodex-1.1.0/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +195 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/SKILL.md +12 -7
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/SKILL.md +7 -3
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/SKILL.md +7 -3
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +5 -3
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/SKILL.md +14 -8
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +12 -6
- {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
- tradingcodex-1.0.2/docs/release-readiness.md +0 -288
- tradingcodex-1.0.2/tests/test_build_hook.py +0 -1283
- tradingcodex-1.0.2/tests/test_provider_source_approval.py +0 -413
- tradingcodex-1.0.2/tradingcodex_service/version.py +0 -1
- tradingcodex-1.0.2/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -94
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/CONTRIBUTING.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/LICENSE +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/MANIFEST.in +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/NOTICE +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/README.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/TRADEMARKS.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/apps.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/migrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/audit/models.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/apps.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/migrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/models.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/harness/templatetags/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/apps.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/migrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/integrations/models.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/apps.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/migrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/models.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/mcp/services.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/apps.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/migrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/models.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/orders/services.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/apps.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/migrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/models.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/policy/services.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/apps.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/migrations/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/apps/portfolio/models.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/assets/tradingcodex-banner.svg +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/codex-native-orchestration.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/components.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/financial-workflow-references.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/guardrails.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/improvement-loop.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/licensing-and-commercialization.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/docs/research-memory-and-artifacts.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/index.html +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/package-lock.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/package.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/App.tsx +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/api.ts +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/domain.ts +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/features/LibraryPage.tsx +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/features/SkillsPage.tsx +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/features/SystemPage.tsx +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/main.tsx +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/navigation.js +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/navigation.test.js +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/styles.css +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/ui.tsx +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/src/viewer-data.js +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/tsconfig.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/frontend/vite.config.ts +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/install.sh +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/pyproject.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/setup.cfg +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_artifact_authentication.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_build_contract_metadata.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_codex_cli_compat.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_codex_cli_contract.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_codex_native_orchestration.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_dashboard_skill.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_decision_memory_core.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_dev_bootstrap.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_dynamic_artifact_quality.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_e2e_user_scenarios.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_evaluation_lab_hardening.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_evaluation_profiles.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_guidebook_contract.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_analysis.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_cli.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_investment_brain_registry.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_mcp_broker_release_health.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_mcp_operator_authority.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_research_forecast_surfaces.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_research_spec_profiles.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_runtime_paths.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_runtime_profile.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_security_invariants.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_skill_runtime_boundaries.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_source_snapshot_agent_contract.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_v1_migrations.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_v1_state_integrity.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_viewer.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tests/test_workspace_git_contract.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/dependency_links.txt +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/entry_points.txt +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/requires.txt +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex.egg-info/top_level.txt +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/__main__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/bootstrap.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/db.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/decision.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/evaluation.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/forecast.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/home.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/investment_brains.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/investor_context.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/orders.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/policy.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/profile.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/research.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/skills.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/strategies.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/subagents.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/utils.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/workflow.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/commands/workspaces.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/mcp_stdio.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/package_source.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/service_autostart.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_cli/versioning.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/admin.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/api.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/agents.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/artifact_bindings.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/artifact_quality.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/audit.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/common.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/context_budget.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/decision_packages.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/evaluation_lab.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/forecasting.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/git_subprocess.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/harness.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/health.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/investment_analysis.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/investment_brains.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/investor_context.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/markdown_preview.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/operator_authority.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/orders.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/policy.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/portfolio.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/postmortems.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/research.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/research_specs.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/runtime.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/source_snapshots.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/viewer.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/workspace_git.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/application/workspaces.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/asgi.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/log_safety.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/runtime_profile.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/settings.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_web/assets/index-CFoXYUtq.js +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_web/assets/index-DYzj_xRR.css +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/static/tradingcodex_web/index.html +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/urls.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/viewer_api.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/web.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/tradingcodex_service/wsgi.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/__init__.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/audit/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/tcx +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/files/tcx.cmd +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/codex-base/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/fixed-subagents/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/information-barriers/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/paper-trading/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/references/bundle-contract.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-dashboard/SKILL.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-dashboard/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/SKILL.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/SKILL.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/agents/openai.yaml +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +0 -0
- {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
- {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
- {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
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +0 -0
- {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
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/SKILL.md +0 -0
- {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
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/SKILL.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/repo-skills/module.json +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
- {tradingcodex-1.0.2 → tradingcodex-1.1.0}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
- {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`,
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
86
|
-
line is
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
204
|
-
|
|
205
|
-
|
|
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
|
|
404
|
-
later-line, malformed, subagent, Workbench,
|
|
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`
|
|
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
|
|
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
|
|
285
|
-
|
|
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:
|
|
293
|
-
`$tcx-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1002
|
-
|
|
1003
|
-
|
|
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
|
-
|
|
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`,
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
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
|
|
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
|
-
|
|
1069
|
-
|
|
1070
|
-
`
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|