tradingcodex 1.1.1__tar.gz → 1.1.2__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.1.1 → tradingcodex-1.1.2}/CHANGELOG.md +80 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/MANIFEST.in +2 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/PKG-INFO +7 -2
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/README.md +5 -1
- tradingcodex-1.1.2/assets/tradingcodex-banner-v3.png +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/components.md +1 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/deployment.md +35 -22
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/execution-without-subagent-plan.md +1 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/generated-workspaces.md +118 -35
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/harness.md +40 -6
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/interfaces-and-surfaces.md +70 -6
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/release-readiness.md +41 -25
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/research-memory-and-artifacts.md +208 -24
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/roles-skills-and-workflows.md +59 -3
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/safety-policy-and-execution.md +23 -6
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/system-architecture.md +55 -4
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/user-facing-skills.md +5 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/validation-and-test-plan.md +90 -13
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/App.tsx +5 -2
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/domain.ts +43 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/features/LibraryPage.tsx +50 -3
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/installation.md +8 -8
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/pyproject.toml +2 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_build_hook.py +47 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_build_turn_grant.py +14 -0
- tradingcodex-1.1.2/tests/test_calculation_runner.py +1290 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_codex_capabilities.py +44 -2
- tradingcodex-1.1.2/tests/test_datasets.py +358 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_dynamic_artifact_quality.py +100 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_e2e_user_scenarios.py +4 -3
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_native_execution_gateway.py +191 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_platform_runtime.py +129 -12
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_release_contract.py +56 -8
- tradingcodex-1.1.2/tests/test_research_object_catalog.py +272 -0
- tradingcodex-1.1.2/tests/test_research_objects.py +48 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_skill_runtime_boundaries.py +64 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_viewer.py +13 -3
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_workspace_git_contract.py +3 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex.egg-info/PKG-INFO +7 -2
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex.egg-info/SOURCES.txt +19 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex.egg-info/requires.txt +1 -0
- tradingcodex-1.1.2/tradingcodex_cli/calculation-runtime-lock.json +31 -0
- tradingcodex-1.1.2/tradingcodex_cli/calculation-runtime-requirements.txt +297 -0
- tradingcodex-1.1.2/tradingcodex_cli/calculation_runner.py +828 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/doctor.py +144 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/generator.py +498 -2
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/api.py +1 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/agents.py +73 -7
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/artifact_bindings.py +86 -5
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/artifact_catalog.py +44 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/artifact_quality.py +31 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/build_gateway.py +2 -1
- tradingcodex-1.1.2/tradingcodex_service/application/calculations.py +1642 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/codex_capabilities.py +40 -2
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/common.py +3 -3
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/components.py +60 -0
- tradingcodex-1.1.2/tradingcodex_service/application/datasets.py +1306 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/portfolio.py +76 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/research.py +118 -29
- tradingcodex-1.1.2/tradingcodex_service/application/research_object_catalog.py +1096 -0
- tradingcodex-1.1.2/tradingcodex_service/application/research_objects.py +214 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/research_specs.py +31 -29
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/source_snapshots.py +6 -4
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/viewer.py +35 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/workspace_git.py +1 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/mcp_runtime.py +332 -0
- tradingcodex-1.1.2/tradingcodex_service/static/tradingcodex_web/assets/index-gUVw-08l.js +9 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/static/tradingcodex_web/index.html +1 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/urls.py +6 -0
- tradingcodex-1.1.2/tradingcodex_service/version.py +1 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/viewer_api.py +25 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/.codex/config.toml +7 -2
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +72 -3
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +58 -3
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/AGENTS.md +7 -3
- tradingcodex-1.1.2/workspace_templates/modules/codex-base/files/tcx-calc +13 -0
- tradingcodex-1.1.2/workspace_templates/modules/codex-base/files/tcx-calc.cmd +11 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/module.json +1 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +21 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +2 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +1 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +2 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +2 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +1 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +3 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +3 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +2 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +2 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +21 -8
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/SKILL.md +2 -0
- tradingcodex-1.1.2/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/SKILL.md +56 -0
- tradingcodex-1.1.2/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/agents/openai.yaml +6 -0
- tradingcodex-1.1.2/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/data-runtime.md +65 -0
- tradingcodex-1.1.2/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-calculation/references/finance-methods.md +72 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/SKILL.md +17 -5
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/module.json +1 -0
- tradingcodex-1.1.1/tradingcodex_service/static/tradingcodex_web/assets/index-_2ys6WhF.js +0 -9
- tradingcodex-1.1.1/tradingcodex_service/version.py +0 -1
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/CONTRIBUTING.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/LICENSE +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/NOTICE +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/TRADEMARKS.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/audit/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/audit/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/audit/apps.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/audit/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/audit/migrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/audit/models.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/harness/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/harness/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/harness/apps.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/harness/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/harness/migrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/harness/models.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/harness/templatetags/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/integrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/integrations/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/integrations/apps.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/integrations/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/integrations/migrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/integrations/models.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/apps.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/migrations/0002_remove_external_mcp_gate.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/migrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/models.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/mcp/services.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/orders/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/orders/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/orders/apps.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/orders/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/orders/migrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/orders/models.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/orders/services.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/policy/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/policy/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/policy/apps.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/policy/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/policy/migrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/policy/models.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/policy/services.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/portfolio/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/portfolio/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/portfolio/apps.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/portfolio/migrations/0001_v1_initial.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/portfolio/migrations/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/apps/portfolio/models.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/assets/tradingcodex-banner.svg +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/README.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/codex-native-orchestration.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/core-concepts-and-rules.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/decision-memory.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/financial-workflow-references.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/guardrails.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/improvement-loop.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/investment-brain-plugins.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/licensing-and-commercialization.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/docs/product-direction.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/index.html +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/package-lock.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/package.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/api.ts +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/features/SkillsPage.tsx +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/features/SystemPage.tsx +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/main.tsx +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/navigation.js +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/navigation.test.js +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/styles.css +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/ui.tsx +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/src/viewer-data.js +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/tsconfig.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/frontend/vite.config.ts +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/install.sh +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/setup.cfg +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_artifact_authentication.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_artifact_catalog.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_brain_skill.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_broker_center_prd.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_build_contract_metadata.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_clean_v1_cli_audit.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_codex_cli_compat.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_codex_cli_contract.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_codex_native_orchestration.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_dashboard_skill.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_decision_memory_core.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_dev_bootstrap.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_evaluation_lab_hardening.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_evaluation_profiles.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_guidebook_contract.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_investment_analysis.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_investment_brain_cli.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_investment_brain_prompt_layers.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_investment_brain_provenance.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_investment_brain_registry.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_investor_context.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_mcp_broker_release_health.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_order_turn_grant.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_provider_source_approval.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_research_forecast_surfaces.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_research_spec_profiles.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_runtime_paths.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_runtime_profile.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_security_invariants.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_source_snapshot_agent_contract.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_v1_migrations.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tests/test_v1_state_integrity.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex.egg-info/dependency_links.txt +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex.egg-info/entry_points.txt +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex.egg-info/top_level.txt +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/__main__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/bootstrap.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/build.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/connectors.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/db.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/decision.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/evaluation.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/forecast.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/home.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/investment_brains.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/investor_context.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/mcp.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/mode.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/orders.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/policy.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/profile.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/research.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/skills.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/strategies.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/subagents.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/utils.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/workflow.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/commands/workspaces.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/mcp_stdio.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/package_source.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/service_autostart.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/startup_status.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_cli/versioning.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/admin.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/analysis_runs.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/audit.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/brokers.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/context_budget.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/decision_packages.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/evaluation_lab.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/execution_gateway.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/forecasting.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/git_subprocess.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/harness.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/health.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/investment_analysis.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/investment_brains.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/investor_context.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/markdown_preview.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/operator_authority.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/orders.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/policy.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/postmortems.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/runtime.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/runtime_mode.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/skill_invocations.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/application/workspaces.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/asgi.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/log_safety.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/runtime_profile.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/settings.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/static/tradingcodex_web/assets/index-DYzj_xRR.css +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/web.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/tradingcodex_service/wsgi.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/__init__.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/audit/module.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/tcx +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/codex-base/files/tcx.cmd +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/fixed-subagents/module.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/information-barriers/module.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/paper-trading/module.json +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-automate/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-brain/references/bundle-contract.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-dashboard/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-dashboard/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-investor-context/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-memory/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-allow/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-cancel/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-order-submit/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-plan/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-strategy/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/references/context-and-override.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/references/decision-quality-spine.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/tcx-fundamental/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/tcx-instrument/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/tcx-judgment/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/tcx-macro/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/tcx-news/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-order-draft/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/tcx-portfolio/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-order-approve/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-policy/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/tcx-risk/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-anti-overfit/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-artifact/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-data-qc/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-evidence/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-forecast/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-scenarios/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/tcx-source-gate/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/tcx-technical/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/SKILL.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/tcx-valuation/agents/openai.yaml +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
- {tradingcodex-1.1.1 → tradingcodex-1.1.2}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
|
@@ -2,6 +2,86 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 1.1.2 - 2026-07-17
|
|
6
|
+
|
|
7
|
+
- Add a cross-platform fixed-role calculation surface with generated
|
|
8
|
+
`tcx-calc`/`tcx-calc.cmd` launchers and a content-addressed runtime v2 outside
|
|
9
|
+
Django, MCP, the service home, DB, workspace, and scratch. Its wheel-only
|
|
10
|
+
per-artifact hash resource pins the complete 12-package direct/transitive
|
|
11
|
+
set around NumPy, pandas, SciPy, statsmodels, numpy-financial, and PyArrow.
|
|
12
|
+
The exact basename-only contract replaces host-dependent system
|
|
13
|
+
Python and heredocs, sanitizes environment and temp state before exposing the
|
|
14
|
+
verified runtime, rejects links and compound forms, applies resource bounds,
|
|
15
|
+
blocks child-process and network escape paths in prepared mode, verifies the
|
|
16
|
+
generated launcher hashes in doctor, and remains inside the native Codex OS
|
|
17
|
+
sandbox. Windows scratch now uses `TradingCodexScratch` so it cannot overlap
|
|
18
|
+
the default service home. Native Windows release smoke invokes both generated
|
|
19
|
+
batch launchers through tokenized `cmd /c call` commands so workspace paths
|
|
20
|
+
containing spaces retain their argument boundaries. Pinned packages may load
|
|
21
|
+
native libraries only from absolute paths inside the verified runtime and
|
|
22
|
+
only from an imported runtime-package frame; their process-local ctypes
|
|
23
|
+
bootstrap remains available, including CPython's exact Windows `kernel32`
|
|
24
|
+
import bootstrap. Scratch calls and external, other bare-name, or raw-integer-
|
|
25
|
+
handle loading remain denied. The explicit manual
|
|
26
|
+
release workflow gates the exact wheel through an x86-64 Linux/macOS/Windows
|
|
27
|
+
and Python 3.11-3.14 runtime matrix.
|
|
28
|
+
- Separate ordinary GitHub uploads from deployment work. Normal source CI keeps
|
|
29
|
+
source, framework, and deterministic frontend checks but does not build or
|
|
30
|
+
upload distributions, run release-upgrade or platform matrices, or publish.
|
|
31
|
+
Documentation-only pushes and pull requests skip source CI, GitHub Pages
|
|
32
|
+
becomes manual-only, and package build/publication remains confined to
|
|
33
|
+
explicit Manual Release dispatches.
|
|
34
|
+
- Add immutable Dataset memory with Source Snapshot lineage, explicit typed
|
|
35
|
+
manifests, content-addressed canonical Parquet payloads, append-only license
|
|
36
|
+
withdrawals, bounded card/manifest/profile/slice retrieval, and a managed
|
|
37
|
+
Git ignore rule for payload objects. A rebuildable SQLite+FTS v3 catalog now
|
|
38
|
+
unifies existing research artifacts with Dataset and Calculation objects,
|
|
39
|
+
reprojects only changed files, rebuilds after corruption, and continues the
|
|
40
|
+
legacy JSON exports for one compatibility release. Lineage timestamps cannot
|
|
41
|
+
predate their Source Snapshot or parent Dataset, withdrawn shared payloads
|
|
42
|
+
cannot be profiled, malformed manifests fail closed per object, and L0 cards
|
|
43
|
+
are size-bounded. Internally generated `Path` objects are normalized to the
|
|
44
|
+
portable forward-slash workspace form on native Windows while caller-supplied
|
|
45
|
+
backslash paths remain rejected.
|
|
46
|
+
- Add prepared CalculationSpec/Run memory around `tcx-calc`, including declared
|
|
47
|
+
scratch inputs/outputs, typed finite result envelopes, exact full-fingerprint
|
|
48
|
+
reuse with a current-workflow reuse Run, comparison by requested metric, and
|
|
49
|
+
private-ledger snapshot hash binding without durable input values. The new
|
|
50
|
+
shared `tcx-calculation` skill gives the six financial calculation roles the
|
|
51
|
+
bounded procedure; Head Manager receives card-only planning discovery and
|
|
52
|
+
the viewer remains read-only. Calculation cards also project bounded symbols
|
|
53
|
+
and immutable Dataset relations so instrument-scoped role searches do not
|
|
54
|
+
miss an existing exact calculation. Prepared recording independently
|
|
55
|
+
revalidates script/input/sidecar/runtime/output hashes and schemas; Dataset
|
|
56
|
+
materializations and private central-ledger snapshots are service-bound
|
|
57
|
+
rather than caller-asserted.
|
|
58
|
+
- Route legacy Source Snapshot, ResearchSpec, ReplayManifest, and ExperimentRun
|
|
59
|
+
path construction, regular-file reads, hash verification, and immutable
|
|
60
|
+
writes through the shared Research Object primitives while preserving their
|
|
61
|
+
released v1 hash encoding and IDs without migration.
|
|
62
|
+
- Enable Head Manager live web search for narrow workflow-planning
|
|
63
|
+
reconnaissance. Durable root instructions and `tcx-workflow` keep raw search
|
|
64
|
+
results untrusted and prohibit using them as accepted evidence or synthesis
|
|
65
|
+
support; material facts must be reacquired by producing roles. Portfolio,
|
|
66
|
+
risk, and judgment-review roles explicitly keep web search disabled, and the
|
|
67
|
+
existing Build hook continues to block native web and browser tools.
|
|
68
|
+
- Fix BYOR Codex capability use after the 1.1.1 gate removal. Head Manager and
|
|
69
|
+
fixed roles now distinguish explicit external skill overlays from read-only
|
|
70
|
+
app, connector, MCP, and data tools; inspect the current task's callable
|
|
71
|
+
surface before falling back or declaring a provider unavailable; and treat
|
|
72
|
+
the sanitized inventory as configuration evidence rather than runtime
|
|
73
|
+
callability proof. Capability inventory now names plugin app/MCP/hook
|
|
74
|
+
components from secret-free top-level identifiers and includes compatible
|
|
75
|
+
user skills discovered below `CODEX_HOME/skills`. Generated workspaces no
|
|
76
|
+
longer disable Codex apps, leaving app exposure to user, organization, and
|
|
77
|
+
host policy.
|
|
78
|
+
- Align observed E2E behavior with the workspace contract: fixed roles may edit
|
|
79
|
+
files in their dedicated private scratch root while arbitrary external paths
|
|
80
|
+
remain blocked; viewer write-shaped requests consistently return GET-only
|
|
81
|
+
`405` responses even with CSRF enforcement; managed Brain and Strategy proof
|
|
82
|
+
errors name their own entrypoints; and E2E hooks execute through the generated
|
|
83
|
+
launcher runtime.
|
|
84
|
+
|
|
5
85
|
## 1.1.1 - 2026-07-16
|
|
6
86
|
|
|
7
87
|
- Remove the legacy user-capability gate, its CLI and broker-import paths,
|
|
@@ -11,5 +11,7 @@ recursive-include frontend *.css *.html *.json *.js *.ts *.tsx
|
|
|
11
11
|
recursive-include workspace_templates *
|
|
12
12
|
recursive-include workspace_templates .*
|
|
13
13
|
recursive-include tradingcodex_service/static *
|
|
14
|
+
include tradingcodex_cli/calculation-runtime-lock.json
|
|
15
|
+
include tradingcodex_cli/calculation-runtime-requirements.txt
|
|
14
16
|
recursive-exclude frontend/node_modules *
|
|
15
17
|
global-exclude *.py[cod]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tradingcodex
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.2
|
|
4
4
|
Summary: Local-first investment operating system for Codex-native research and service-gated execution.
|
|
5
5
|
Author: TradingCodex Authors
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -29,13 +29,18 @@ Requires-Dist: markdown-it-py<5,>=3
|
|
|
29
29
|
Requires-Dist: nh3<0.4,>=0.3
|
|
30
30
|
Requires-Dist: packaging>=24
|
|
31
31
|
Requires-Dist: pydantic>=2
|
|
32
|
+
Requires-Dist: pyarrow==25.0.0
|
|
32
33
|
Requires-Dist: PyYAML>=6
|
|
33
34
|
Requires-Dist: whitenoise<7,>=6.12
|
|
34
35
|
Provides-Extra: dev
|
|
35
36
|
Requires-Dist: pytest>=8; extra == "dev"
|
|
36
37
|
Dynamic: license-file
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
<h1 align="center">TradingCodex</h1>
|
|
40
|
+
|
|
41
|
+
<p align="center">
|
|
42
|
+
<img src="assets/tradingcodex-banner-v3.png" alt="TradingCodex transforms fragmented investment tools into a native Codex research workflow" width="100%">
|
|
43
|
+
</p>
|
|
39
44
|
|
|
40
45
|
<div align="center">
|
|
41
46
|
<a href="https://pypi.org/project/tradingcodex/"><img alt="PyPI" src="https://img.shields.io/pypi/v/tradingcodex?label=PyPI"></a>
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center">TradingCodex</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/tradingcodex-banner-v3.png" alt="TradingCodex transforms fragmented investment tools into a native Codex research workflow" width="100%">
|
|
5
|
+
</p>
|
|
2
6
|
|
|
3
7
|
<div align="center">
|
|
4
8
|
<a href="https://pypi.org/project/tradingcodex/"><img alt="PyPI" src="https://img.shields.io/pypi/v/tradingcodex?label=PyPI"></a>
|
|
Binary file
|
|
@@ -61,6 +61,7 @@ clear.
|
|
|
61
61
|
| `fixed-role-dispatch` | Maintains head-manager, fixed subagent routing, and no-overlap handoff boundaries in native Codex. | `guardrail.guidance`, `guardrail.information_barrier`, `improvement.workflow_quality` |
|
|
62
62
|
| `versioned-workspace` | Keeps generated workspaces in user-owned Git worktrees with privacy-first ignores and no automatic stage, commit, remote, or publication. | `guardrail.guidance`, `guardrail.information_barrier`, `improvement.validation_feedback` |
|
|
63
63
|
| `research-memory` | Stores source-aware research artifacts, versions, snapshots, Evidence Run Cards, Validation Cards, and rebuildable research/cross-artifact search projections. | `improvement.research_memory` |
|
|
64
|
+
| `dataset-calculation-memory` | Stores immutable Dataset manifests/content-addressed Parquet payloads and conclusion-relevant CalculationSpec/Run records, projects them into the rebuildable SQLite+FTS v3 catalog, and reuses only exact successful fingerprints through the wheel-locked finance runtime v2. | `guardrail.information_barrier`, `improvement.research_memory`, `improvement.context_efficiency`, `improvement.validation_feedback` |
|
|
64
65
|
| `workflow-quality-gates` | Defines artifact quality, Decision Quality Spine, agent judgment review, claim discipline, and synthesis lineage without a Django workflow loop. | `guardrail.guidance`, `improvement.workflow_quality` |
|
|
65
66
|
| `decision-package` | Freezes run provenance, artifact paths, forecasts, investor-context gaps, and outcomes in Codex-readable workspace records. | `guardrail.guidance`, `improvement.workflow_quality`, `improvement.research_memory` |
|
|
66
67
|
| `artifact-quality-contract` | Evaluates workspace artifacts, Evidence Run Cards, Validation Cards, source snapshots, and forecast ledgers for source/as-of posture, source trust, data-boundary warnings, claim tags, handoff state, confidence, missing evidence, judgment-review fields, and next-recipient routing metadata. | `guardrail.guidance`, `improvement.workflow_quality`, `improvement.research_memory` |
|
|
@@ -108,13 +108,20 @@ files are never replaced.
|
|
|
108
108
|
|
|
109
109
|
## Maintainer Prerequisites
|
|
110
110
|
|
|
111
|
-
Release verification uses Python 3.11 and Node 22
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
dependency
|
|
111
|
+
Release verification uses Python 3.11 and Node 22 for the complete source and
|
|
112
|
+
frontend gates. After that single quality job builds the candidate
|
|
113
|
+
distribution, the calculation-runtime matrix reuses the exact wheel on x86-64
|
|
114
|
+
Linux, Intel macOS, and native Windows under Python 3.11, 3.12, 3.13, and 3.14.
|
|
115
|
+
Each matrix job provisions the hash-locked runtime and exercises attach,
|
|
116
|
+
doctor, direct package imports, exploratory compatibility, prepared recording,
|
|
117
|
+
and exact reuse. Node remains a maintainer-only build dependency and is not
|
|
118
|
+
installed by matrix workspaces.
|
|
119
|
+
|
|
120
|
+
Calculation runtime changes are compatibility-sensitive even when the main
|
|
121
|
+
source suite is unchanged. Before release, resolve and verify every hash-locked
|
|
122
|
+
wheel for the complete 12-package `finance-*` runtime on supported Python
|
|
123
|
+
3.11–3.14 macOS, Linux, and native Windows x86-64 targets. Missing wheels fail
|
|
124
|
+
the target; release validation never permits a source build as fallback.
|
|
118
125
|
|
|
119
126
|
Configure PyPI Trusted Publishing for:
|
|
120
127
|
|
|
@@ -156,6 +163,9 @@ The wheel smoke installs only the built wheel into a clean virtual environment,
|
|
|
156
163
|
checks distribution metadata against the runtime version, attaches a workspace,
|
|
157
164
|
validates native launchers and generated configuration, runs hooks and MCP
|
|
158
165
|
stdio, exercises the local service, and loads the packaged SPA and assets.
|
|
166
|
+
It also provisions the content-addressed calculation runtime, verifies its
|
|
167
|
+
manifest/lock/launcher hashes and exact imports, and exercises prepared and
|
|
168
|
+
exploratory `tcx-calc` modes without importing Django from the runner.
|
|
159
169
|
The release-upgrade smoke starts from the published `1.0.2` package, updates
|
|
160
170
|
that attached workspace with the built candidate wheel, and verifies preserved
|
|
161
171
|
workspace and runtime identity, user-owned state, and explicit home, DB, and
|
|
@@ -171,11 +181,11 @@ also require the disposable-workspace and Codex-native checks documented in
|
|
|
171
181
|
## CI And Release Automation
|
|
172
182
|
|
|
173
183
|
`.github/workflows/ci.yml` is test-only. One Ubuntu/Python 3.11 job runs the
|
|
174
|
-
frontend
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
184
|
+
frontend determinism check, complete Python suite, and framework gates. It does
|
|
185
|
+
not construct or upload a wheel or source distribution, run release-upgrade or
|
|
186
|
+
native-runtime matrices, or publish anything. Documentation-, guide-, OpenWiki-,
|
|
187
|
+
and asset-only pushes or pull requests skip this workflow. Source-bearing pull
|
|
188
|
+
requests and pushes still receive the normal source-quality checks.
|
|
179
189
|
|
|
180
190
|
`.github/workflows/release.yml` is manual-only. Every run requires an explicit
|
|
181
191
|
`release_version`. A dry run may build from any selected ref with
|
|
@@ -191,11 +201,13 @@ publishes.
|
|
|
191
201
|
- the built wheel passes the Ubuntu wheel and prior-release update smokes
|
|
192
202
|
- the protected `pypi` environment approves Trusted Publishing
|
|
193
203
|
|
|
194
|
-
The release workflow has one build/verification job
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
204
|
+
The release workflow has one build/verification job followed by the required
|
|
205
|
+
Python 3.11-3.14 Linux, Intel-macOS, and native-Windows calculation-runtime
|
|
206
|
+
matrix. When publication is requested, one protected PyPI job downloads that
|
|
207
|
+
exact artifact and uploads it; no job rebuilds the distribution after
|
|
208
|
+
verification. These distribution and platform jobs run only after an explicit
|
|
209
|
+
`Manual Release` dispatch, never because a branch, tag, development commit, or
|
|
210
|
+
documentation change was pushed.
|
|
199
211
|
|
|
200
212
|
## User Guide Pages
|
|
201
213
|
|
|
@@ -206,10 +218,11 @@ prompts, workspace viewing, reusable skills, and everyday recovery. The detailed
|
|
|
206
218
|
product rules remain canonical in `README.md`, `installation.md`, and `docs/`;
|
|
207
219
|
the guide links back to those sources rather than replacing them.
|
|
208
220
|
|
|
209
|
-
`.github/workflows/deploy-user-guide.yml`
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
221
|
+
`.github/workflows/deploy-user-guide.yml` is manual-only. An explicit workflow
|
|
222
|
+
dispatch uses one job to configure, upload, and deploy only `guidebook/` to
|
|
223
|
+
GitHub Pages. A normal branch push or documentation-only change neither deploys
|
|
224
|
+
Pages nor builds or deploys the Python package, Django service, or a production
|
|
225
|
+
Node runtime.
|
|
213
226
|
|
|
214
227
|
GitHub Pages is configured to use **GitHub Actions** as its publishing source.
|
|
215
228
|
The guide for this repository is published at
|
|
@@ -270,7 +283,7 @@ sh "$SOURCE_ROOT/install.sh" \
|
|
|
270
283
|
On native Windows PowerShell:
|
|
271
284
|
|
|
272
285
|
```powershell
|
|
273
|
-
$ReleaseVersion = "1.1.
|
|
286
|
+
$ReleaseVersion = "1.1.2"
|
|
274
287
|
$Workspace = Join-Path $env:TEMP "tcx-pypi-$ReleaseVersion"
|
|
275
288
|
New-Item -ItemType Directory -Force $Workspace | Out-Null
|
|
276
289
|
Set-Location $Workspace
|
|
@@ -60,7 +60,7 @@ design, migration, and validation evidence.
|
|
|
60
60
|
- Provider canary regressions prove that submit/cancel results, health details,
|
|
61
61
|
account-sync exceptions, and successful account display metadata do not
|
|
62
62
|
reappear in DB rows, API/MCP projections, execution results, or audit events.
|
|
63
|
-
- A disposable generated workspace reports nine fixed roles and
|
|
63
|
+
- A disposable generated workspace reports nine fixed roles and 33 skills,
|
|
64
64
|
contains no retired execution role, and exposes no ungated submit, cancel, or
|
|
65
65
|
broker status-refresh mutation. Its one execution-risk MCP tool is
|
|
66
66
|
`use_order_turn_grant`, which has no authority without hook-injected proof.
|
|
@@ -23,7 +23,9 @@ The template source tree may be refactored for maintainability, but generated
|
|
|
23
23
|
output paths are the v1 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
|
-
tests intentionally change the generated workspace contract.
|
|
26
|
+
tests intentionally change the generated workspace contract. The generated
|
|
27
|
+
`tcx-calc` and `tcx-calc.cmd` names are likewise stable; the cache key behind
|
|
28
|
+
them is content-addressed and may change when the locked runtime changes.
|
|
27
29
|
|
|
28
30
|
Template bodies should remain ordinary source files under
|
|
29
31
|
`workspace_templates/modules/*/files` whenever the generated artifact is meant
|
|
@@ -43,6 +45,7 @@ The generated workspace is ready for:
|
|
|
43
45
|
- `./tcx investor-context status`
|
|
44
46
|
- MCP ledger inspection
|
|
45
47
|
- research-memory commands
|
|
48
|
+
- prepared and exploratory `tcx-calc` workflows
|
|
46
49
|
- local React viewer/Admin service access
|
|
47
50
|
- Codex-native role prompts and skills
|
|
48
51
|
|
|
@@ -159,8 +162,9 @@ The managed `.gitignore` block excludes local/private state by default:
|
|
|
159
162
|
- process, session, and service-status state, including
|
|
160
163
|
`.tradingcodex/mainagent/session-start.json`;
|
|
161
164
|
- transient audit streams;
|
|
162
|
-
- Python/tool caches, rebuildable research and artifact-catalog indexes,
|
|
163
|
-
|
|
165
|
+
- Python/tool caches, rebuildable research and artifact-catalog indexes,
|
|
166
|
+
content-addressed Dataset payloads under
|
|
167
|
+
`trading/research/datasets/objects/`, and native lock files;
|
|
164
168
|
- raw secrets, credentials, local environment files, keys, and certificates;
|
|
165
169
|
and
|
|
166
170
|
- the private workspace Investor Context plus its per-run sealed snapshot.
|
|
@@ -256,21 +260,25 @@ Generated workspaces contain:
|
|
|
256
260
|
`agents` tool namespace; every task uses a fresh custom role, a compact
|
|
257
261
|
assignment envelope, and `fork_turns="none"`; `followup_task` and generic
|
|
258
262
|
role emulation are forbidden
|
|
259
|
-
- role-scoped web search: root `.codex/config.toml` sets
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
263
|
+
- role-scoped web search: root `.codex/config.toml` sets `web_search="live"`
|
|
264
|
+
so Head Manager can perform narrow planning reconnaissance before choosing or
|
|
265
|
+
revising the team. Those results are untrusted planning leads, never accepted
|
|
266
|
+
investment evidence, and every material fact must be reacquired by a producing
|
|
267
|
+
role through an authenticated run-local artifact. The six evidence-producing
|
|
268
|
+
custom agents also use live search; portfolio, risk, and judgment-review TOML
|
|
269
|
+
files explicitly set `web_search="disabled"`
|
|
266
270
|
- fail-closed spawn hook: `PreToolUse` permits `spawn_agent` only for an exact
|
|
267
271
|
registered `agent_type`, `fork_turns="none"`, an underscore-only task name,
|
|
268
272
|
and a valid lightweight analysis run id in the compact message; no semantic
|
|
269
273
|
plan or server task is consulted
|
|
270
274
|
- native Research permission runtime: `head-manager` and every fixed role
|
|
271
|
-
inherit `trading-research`; ordinary shell
|
|
272
|
-
|
|
273
|
-
|
|
275
|
+
inherit `trading-research`; ordinary shell and credential-free public HTTP
|
|
276
|
+
are available, user-owned paths outside `trading/` are readable and writable,
|
|
277
|
+
and disposable intermediates stay under `$TRADINGCODEX_SCRATCH`. Fixed roles
|
|
278
|
+
stage one direct scratch-local `.py` file with native `apply_patch` and run it
|
|
279
|
+
only through `./tcx-calc <filename.py>` or native Windows
|
|
280
|
+
`.\tcx-calc.cmd <filename.py>`; system Python, heredocs, `-c`, `-m`, paths,
|
|
281
|
+
and extra arguments are outside that contract.
|
|
274
282
|
The `trading/` tree, control files, TradingCodex runtime/DB, protected
|
|
275
283
|
artifacts, credentials, local/private destinations, and Unix sockets remain
|
|
276
284
|
protected. Durable workflow, role-report, and synthesis writes go through
|
|
@@ -385,12 +393,13 @@ Generated workspaces contain:
|
|
|
385
393
|
- project-local additional agent instructions under `.tradingcodex/agent-instructions/<role>.md`; projection appends them after generated default instructions for `head-manager` and fixed subagents as a managed overlay, without permitting them to replace core role, quality, policy, approval, or execution boundaries
|
|
386
394
|
- an immutable core/extension footer projected after project-local additional
|
|
387
395
|
instructions for both `head-manager` and fixed roles
|
|
388
|
-
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
396
|
+
- planning-only root live web search in `.codex/config.toml`, with durable Head
|
|
397
|
+
Manager and `tcx-workflow` instructions that prohibit using reconnaissance to
|
|
398
|
+
answer the mandate or support synthesis claims. Live evidence search remains
|
|
399
|
+
enabled for the six producing roles, while portfolio, risk, and judgment
|
|
400
|
+
review explicitly disable it
|
|
392
401
|
- workspace customization preferences under `.tradingcodex/user/customization.json`, merged over `preferences/customization.json` in the canonical platform home; these files store UX/config metadata and never raw credentials
|
|
393
|
-
- thirty-
|
|
402
|
+
- thirty-three bundled repo skills across project-scope mainagent skills and
|
|
394
403
|
subagent skill directories, each with `SKILL.md` frontmatter for document
|
|
395
404
|
metadata and UI metadata when projected
|
|
396
405
|
- one compact bundled namespace: every core skill id is `tcx-` plus one suffix
|
|
@@ -474,9 +483,10 @@ Generated workspaces contain:
|
|
|
474
483
|
copies are not generated
|
|
475
484
|
- append-only forecast ledger directory at `trading/forecasts/`
|
|
476
485
|
- immutable point-in-time research directories for specs, replay manifests,
|
|
477
|
-
experiments, causal analyses, blind judgment priors/reviews,
|
|
478
|
-
|
|
479
|
-
|
|
486
|
+
experiments, causal analyses, blind judgment priors/reviews, Dataset
|
|
487
|
+
manifests/payloads/withdrawals, Calculation specs/runs, and the rebuildable
|
|
488
|
+
SQLite+FTS v3 research-object catalog plus temporary legacy JSON exports
|
|
489
|
+
under `trading/research/`
|
|
480
490
|
- research-only model-evaluation directories under `trading/evaluations/` for
|
|
481
491
|
frozen corpora, control/candidate runs, blind reviews, and comparisons
|
|
482
492
|
|
|
@@ -490,6 +500,19 @@ baseline and must enter a workflow only through explicit user opt-in for that
|
|
|
490
500
|
current workflow or a managed activation path that preserves role, quality,
|
|
491
501
|
policy, approval, and execution boundaries.
|
|
492
502
|
|
|
503
|
+
That explicit overlay rule applies to external skill procedures, not to
|
|
504
|
+
read-only app, connector, MCP, or data tools used as evidence. A role whose
|
|
505
|
+
assignment needs external data or preserves a user-named provider first checks
|
|
506
|
+
the current task's callable tool surface and uses the runtime's available
|
|
507
|
+
deferred-tool discovery surface when needed. It attempts the narrowest
|
|
508
|
+
relevant read-only call before a public web fallback. Sanitized capability
|
|
509
|
+
inventory is configuration evidence only:
|
|
510
|
+
installed/enabled state neither proves nor disproves that a tool was loaded
|
|
511
|
+
into the current task. A capability added or changed after task start may
|
|
512
|
+
require a new task or full Codex restart. Generated workspace configuration
|
|
513
|
+
does not override Codex's `features.apps` setting; user, organization, and
|
|
514
|
+
host policy continue to decide whether installed apps are exposed.
|
|
515
|
+
|
|
493
516
|
Workspace projection and role-local skill lists reduce accidental mixing, but
|
|
494
517
|
they are not by themselves proof of hard runtime isolation from every
|
|
495
518
|
host-discoverable skill. Documentation and release claims must not promise hard
|
|
@@ -550,6 +573,10 @@ configuration. TradingCodex preserves their non-reserved project entries and
|
|
|
550
573
|
directories during update, and Codex exposes them to root and fixed-role agents
|
|
551
574
|
through normal configuration inheritance. TradingCodex owns only its reserved
|
|
552
575
|
entries and does not install, review, classify, or recommend user capabilities.
|
|
576
|
+
The read-only inventory covers canonical repository and user `.agents/skills`
|
|
577
|
+
locations plus compatible direct skills below `CODEX_HOME/skills`; plugin
|
|
578
|
+
component records use only top-level app, MCP-server, and hook identifiers and
|
|
579
|
+
never return component bodies or launch settings.
|
|
553
580
|
|
|
554
581
|
## Attach-First UX
|
|
555
582
|
|
|
@@ -635,6 +662,45 @@ through the native Windows batch shim. On update it prefers
|
|
|
635
662
|
run `.\tcx.cmd` in PowerShell; native Windows validation never treats the Bash
|
|
636
663
|
shim as executable evidence.
|
|
637
664
|
|
|
665
|
+
Calculation does not reuse that launcher or its package-bearing interpreter.
|
|
666
|
+
Attach/update provisions one `finance-*` calculation runtime v2 in a separate,
|
|
667
|
+
content-addressed platform cache and renders `tcx-calc` plus `tcx-calc.cmd`.
|
|
668
|
+
The wheel-only, per-artifact hash resource pins the complete 12-package direct
|
|
669
|
+
and transitive runtime around
|
|
670
|
+
`numpy==2.3.5`, `pandas==2.3.3`, `scipy==1.16.3`,
|
|
671
|
+
`statsmodels==0.14.6`, `numpy-financial==1.0.0`, and
|
|
672
|
+
`pyarrow==25.0.0`; source builds and agent-initiated `pip`/`uv` installation
|
|
673
|
+
are forbidden. A platform without a locked Python 3.11–3.14 wheel fails attach
|
|
674
|
+
clearly instead of compiling a dependency.
|
|
675
|
+
|
|
676
|
+
The launcher accepts one basename-only script already staged in the exact
|
|
677
|
+
workspace scratch, sanitizes environment first, starts Python with `-I -B -S`,
|
|
678
|
+
and then adds only the verified runtime site-packages path. It clears
|
|
679
|
+
service/DB/credential environment variables, maps home and temp to scratch,
|
|
680
|
+
bounds CPU, wall time, file count, file size, and normal text output, and
|
|
681
|
+
rejects links and oversized source. It never imports or starts Django, MCP, the
|
|
682
|
+
service, or the ledger. The runner also denies process creation and replacement,
|
|
683
|
+
shell/system execution, sockets and network access, package bootstrap, and
|
|
684
|
+
dangerous dynamic-library loading. A pinned package may bootstrap a native
|
|
685
|
+
library only when the initiating imported package frame is inside the verified
|
|
686
|
+
content-addressed runtime; a named target must also be an absolute file inside
|
|
687
|
+
that runtime. The same trusted bootstrap may initialize its process-local
|
|
688
|
+
ctypes handle. On Windows, importing ctypes itself requires CPython's exact
|
|
689
|
+
`kernel32` bootstrap name, which is the only trusted bare system-library
|
|
690
|
+
exception. Scratch code, other bare or system-library names, raw integer handles,
|
|
691
|
+
and paths outside that runtime remain denied. This is a constrained calculation
|
|
692
|
+
surface inside the existing Codex OS sandbox, not a new Python security sandbox
|
|
693
|
+
or a Django-owned Python environment.
|
|
694
|
+
|
|
695
|
+
Without a service-authored sidecar, `tcx-calc` is exploratory compatibility
|
|
696
|
+
mode and cannot support an accepted research conclusion. Prepared mode binds
|
|
697
|
+
the script, declared input/output basenames, runtime lock, typed result schema,
|
|
698
|
+
cutoff, and CalculationSpec fingerprint. The runner permits only declared
|
|
699
|
+
scratch input/output plus runtime, stdlib, and required system-library reads,
|
|
700
|
+
and writes a bounded success or failure envelope for
|
|
701
|
+
`record_calculation_run`. `tcx doctor` verifies the launcher hash, runtime
|
|
702
|
+
manifest and lock hashes, exact package versions, and imports.
|
|
703
|
+
|
|
638
704
|
The POSIX shim resolves its canonical workspace root but does not `cd` back to
|
|
639
705
|
the same absolute path when it is already running there. This keeps the normal
|
|
640
706
|
workspace-root contract while avoiding a redundant path re-entry that native
|
|
@@ -705,9 +771,11 @@ discovered locator into provenance. Ordinary PyPI
|
|
|
705
771
|
|
|
706
772
|
Inside a generated workspace, normal `head-manager` and fixed-role analysis
|
|
707
773
|
threads inherit the `trading-research` permission profile. They can use normal
|
|
708
|
-
shell,
|
|
774
|
+
shell, data tools, and credential-free public HTTP, read ordinary
|
|
709
775
|
workspace inputs, and write user-owned files outside `trading/`; disposable
|
|
710
|
-
intermediates belong under `$TRADINGCODEX_SCRATCH`.
|
|
776
|
+
intermediates belong under `$TRADINGCODEX_SCRATCH`. Fixed-role Python
|
|
777
|
+
calculations use only the generated scratch-local `tcx-calc` contract. They
|
|
778
|
+
cannot modify
|
|
711
779
|
`trading/`, generated control files, or the TradingCodex home, DB, attached
|
|
712
780
|
runtime, protected artifact paths, credential files, local/private
|
|
713
781
|
destinations, or Unix sockets. Authenticated service/MCP tools own durable
|
|
@@ -764,8 +832,12 @@ cache-backed path is writable as `$TRADINGCODEX_SCRATCH` and is projected as
|
|
|
764
832
|
`TMPDIR`/`TEMP`/`TMP`; the broader temp roots are denied. The scratch root lives
|
|
765
833
|
under the platform cache tree (`~/Library/Caches/TradingCodex` on macOS,
|
|
766
834
|
`$XDG_CACHE_HOME/tradingcodex` or `~/.cache/tradingcodex` on Linux, and
|
|
767
|
-
`%LOCALAPPDATA%\
|
|
835
|
+
`%LOCALAPPDATA%\TradingCodexScratch` on Windows), not inside the workspace and not in
|
|
768
836
|
the broad OS temporary tree.
|
|
837
|
+
The calculation runtime uses a separate sibling cache
|
|
838
|
+
(`TradingCodexCalculation`/`tradingcodex-calculation`) and is explicitly
|
|
839
|
+
read-only in Research and denied in Build. Neither cache overlaps the service
|
|
840
|
+
home, DB, workspace, Codex home, or the other cache.
|
|
769
841
|
Credential-bearing home paths such as Codex auth state, SSH/cloud/CLI config,
|
|
770
842
|
keyrings, credential files, and shell histories are explicitly denied. The
|
|
771
843
|
narrow read-only `~/.codex/packages/standalone` exception permits the installed
|
|
@@ -804,12 +876,12 @@ blocked. Its limited-public
|
|
|
804
876
|
network permits credential-free HTTP(S) GET/HEAD and public HTTPS Git retrieval
|
|
805
877
|
while blocking authenticated requests, bodies/uploads, local/private targets,
|
|
806
878
|
non-HTTP(S) transports, package installation, fetch-to-execute pipelines,
|
|
807
|
-
remote mutation, and broker access.
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
behavior is unchanged.
|
|
879
|
+
remote mutation, and broker access. Root `web_search="live"` supports only
|
|
880
|
+
Research workflow planning; the generated `PreToolUse` matcher covers every
|
|
881
|
+
tool name, and an active Build grant rejects native web search, browser, web,
|
|
882
|
+
HTTP, fetch, and navigation tools, so retrieval cannot reuse authenticated
|
|
883
|
+
browser state. Policy otherwise remains a no-op for ordinary Research tools;
|
|
884
|
+
Research browser behavior is unchanged.
|
|
813
885
|
The Build profile uses the proxy's full HTTP transport mode because Git Smart
|
|
814
886
|
HTTP needs a small POST exchange even for read-only clone/fetch/ls-remote.
|
|
815
887
|
That does not open general POST access: the Build hook admits only public
|
|
@@ -902,13 +974,20 @@ generated bindings are refreshed.
|
|
|
902
974
|
|
|
903
975
|
TradingCodex owns only the `tradingcodex` MCP entry in project config. Other
|
|
904
976
|
MCP, plugin, and skill entries are user-owned Codex configuration and survive
|
|
905
|
-
update. Root web search
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
977
|
+
update. Root live web search is limited by durable instructions to
|
|
978
|
+
planning-only reconnaissance; raw results cannot support accepted evidence or
|
|
979
|
+
synthesis claims. The six evidence-producing custom agents may use their
|
|
980
|
+
role-local live web setting and available native Codex capabilities to gather
|
|
981
|
+
public filings, disclosures, news, web sources, and market-data references
|
|
982
|
+
while the filesystem remains read-only. TradingCodex does not classify or
|
|
983
|
+
block those user-installed capabilities. Codex sandbox, approval, and organization
|
|
910
984
|
requirements still apply, while TradingCodex service policy continues to protect
|
|
911
985
|
its own principals, grants, order proofs, protected state, and execution path.
|
|
986
|
+
Current-task callable tools, not the System inventory or the TradingCodex MCP
|
|
987
|
+
allowlist alone, determine whether an external data call can be made. Agents
|
|
988
|
+
must try the narrow read-only tool before reporting a capability or data field
|
|
989
|
+
unavailable and must state separately whether configuration was discovered and
|
|
990
|
+
whether the current task exposed or successfully called the tool.
|
|
912
991
|
Broker APIs are attached through provider-driven TradingCodex connector profiles
|
|
913
992
|
using canonical MCP tools such as `list_broker_adapter_providers`,
|
|
914
993
|
`render_broker_connector_scaffold`, `register_broker_connector`,
|
|
@@ -1412,6 +1491,10 @@ or broker tools.
|
|
|
1412
1491
|
Codex-native bootstrap verification:
|
|
1413
1492
|
|
|
1414
1493
|
- `./tcx doctor` checks generated project MCP server shape and role allowlists.
|
|
1494
|
+
- `./tcx doctor` also checks the calculation launcher hash, `finance-*` runtime
|
|
1495
|
+
v2 manifest and lock hashes, all 12 exact package versions/imports, and emits
|
|
1496
|
+
a warning rather than disabling structured catalog search when SQLite lacks
|
|
1497
|
+
FTS5.
|
|
1415
1498
|
- `./tcx update --no-doctor` verifies the generated update path without running
|
|
1416
1499
|
the full doctor twice in installer smoke tests.
|
|
1417
1500
|
- `./tcx mcp stdio` `tools/list` verifies the TradingCodex MCP bridge and tool annotations.
|
|
@@ -23,13 +23,25 @@ Head Manager uses `gpt-5.6-sol` with `xhigh` reasoning. Analytical fixed roles
|
|
|
23
23
|
use `gpt-5.6-terra` with `high` reasoning. Final provider effects are not a role
|
|
24
24
|
and run through the deterministic service gateway rather than an execution
|
|
25
25
|
model. All analysis sessions inherit the project-wide `trading-research`
|
|
26
|
-
permission profile: ordinary shell
|
|
26
|
+
permission profile: ordinary shell and credential-free public HTTP are
|
|
27
27
|
available, and user-owned files outside `trading/` are readable and writable.
|
|
28
|
-
|
|
28
|
+
For deterministic Python calculations, a fixed role stages one direct `.py`
|
|
29
|
+
file under `$TRADINGCODEX_SCRATCH` with `apply_patch` and invokes only the
|
|
30
|
+
platform-native `tcx-calc` launcher. Its content-addressed runtime v2 contains
|
|
31
|
+
only the wheel-locked NumPy, pandas, SciPy, statsmodels, numpy-financial, and
|
|
32
|
+
PyArrow stack and remains separate from Django, MCP, the service runtime, and
|
|
33
|
+
the DB; the Codex OS sandbox remains the authority boundary. Conclusion-
|
|
34
|
+
relevant work uses the prepared CalculationSpec/Run flow, while a direct run
|
|
35
|
+
without its service-authored sidecar is exploratory only. Disposable
|
|
36
|
+
intermediates stay under
|
|
37
|
+
`$TRADINGCODEX_SCRATCH`; `trading/`,
|
|
29
38
|
generated control files, TradingCodex runtime/DB, protected artifacts,
|
|
30
39
|
credentials, local/private network targets, and Unix sockets remain protected.
|
|
31
|
-
|
|
32
|
-
|
|
40
|
+
Head Manager receives live web search only for narrow workflow-planning
|
|
41
|
+
reconnaissance. Its raw results are untrusted planning leads and cannot support
|
|
42
|
+
synthesis claims; material facts must be reacquired through producing-role
|
|
43
|
+
artifacts. The six evidence roles retain live search, while portfolio, risk,
|
|
44
|
+
and judgment review explicitly disable it.
|
|
33
45
|
|
|
34
46
|
MultiAgent V2 must expose exact `agent_type`. Every TradingCodex spawn uses a
|
|
35
47
|
fresh child, compact underscore-only task name, compact assignment, and
|
|
@@ -38,6 +50,25 @@ role emulation, and model overrides are invalid. Generated config explicitly
|
|
|
38
50
|
enables V2 and uses its session-wide concurrency setting; the incompatible V1
|
|
39
51
|
`agents.max_threads` key is not projected.
|
|
40
52
|
|
|
53
|
+
External skills and external data tools have different runtime semantics.
|
|
54
|
+
Host-global or plugin skills remain explicit current-workflow overlays, while
|
|
55
|
+
read-only app, connector, MCP, and data tools may supply evidence when the task
|
|
56
|
+
requires them. Head Manager preserves a user-named provider in the role brief;
|
|
57
|
+
root and evidence roles inspect the current task's callable surface, use the
|
|
58
|
+
runtime's available deferred-tool discovery surface when needed, and attempt
|
|
59
|
+
the smallest relevant read-only call before public-web fallback. The sanitized System inventory reports
|
|
60
|
+
discovered configuration, not current-task callability.
|
|
61
|
+
|
|
62
|
+
Reusable tabular evidence and calculations remain file-native research
|
|
63
|
+
objects. A Source Snapshot can be promoted to an immutable Dataset manifest
|
|
64
|
+
plus content-addressed Parquet payload when its rows will be reused. Agents
|
|
65
|
+
search cards first, inspect manifest/profile metadata next, and materialize a
|
|
66
|
+
typed scratch slice only when a role needs rows. Exact successful calculation
|
|
67
|
+
fingerprints may be reused, but every reuse creates a current-run record and
|
|
68
|
+
retains the original Run lineage. Head Manager receives discovery cards only;
|
|
69
|
+
the six calculation roles receive the bounded write/execution groups, and the
|
|
70
|
+
viewer remains read-only.
|
|
71
|
+
|
|
41
72
|
## Hooks
|
|
42
73
|
|
|
43
74
|
Hooks own only:
|
|
@@ -214,8 +245,11 @@ After harness changes:
|
|
|
214
245
|
modes, binding/revocation/proof injection, subagent/direct-MCP
|
|
215
246
|
rejection, ordinary analysis transport behavior, and exact V2 dispatch;
|
|
216
247
|
5. run a real Korean request and inspect parent/child JSONL, role model, sandbox, and artifacts;
|
|
217
|
-
6.
|
|
218
|
-
|
|
248
|
+
6. with a user-enabled read-only test plugin or MCP, verify current-task tool
|
|
249
|
+
discovery and one narrow successful call, then verify the same prompt reports
|
|
250
|
+
a distinct loading gap when the tool is intentionally absent;
|
|
251
|
+
7. verify viewer workspace selection and sanitized artifact/skill detail;
|
|
252
|
+
8. run focused pytest, Django check, compile, and the full suite.
|
|
219
253
|
|
|
220
254
|
See [Codex-Native Orchestration](codex-native-orchestration.md),
|
|
221
255
|
[Roles, Skills, And Workflows](roles-skills-and-workflows.md), and
|