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