raise-cli 3.1.6__tar.gz → 3.1.7__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.
- {raise_cli-3.1.6 → raise_cli-3.1.7}/.gitignore +2 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/PKG-INFO +3 -3
- {raise_cli-3.1.6 → raise_cli-3.1.7}/pyproject.toml +3 -3
- raise_cli-3.1.7/src/raise_cli/adapters/_html_shell.py +26 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/composite_pm.py +111 -31
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/confluence_client.py +26 -4
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/confluence_exceptions.py +8 -5
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/filesystem_docs.py +10 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/jira_adapter.py +2 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/jira_client.py +24 -4
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/jira_exceptions.py +8 -5
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/sqlite_pm.py +27 -10
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/codex_plugin.py +36 -7
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/hooks.py +13 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/sync.py +16 -4
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/backlog.py +23 -8
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/docs.py +12 -2
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/doctor.py +1 -0
- raise_cli-3.1.7/src/raise_cli/cli/commands/epic.py +147 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/forward_merge.py +24 -8
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/init.py +22 -4
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/pipeline.py +332 -53
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/release.py +6 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/session.py +41 -2
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/signal.py +19 -3
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/skill.py +0 -16
- raise_cli-3.1.7/src/raise_cli/cli/commands/task.py +103 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/main.py +4 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/developer.py +10 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/project.py +11 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/models.py +2 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/report.py +1 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/provisioning.py +10 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hook_bus/emitter.py +8 -2
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/bootstrap.py +1 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/engine.py +2 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/execution_context.py +26 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_lifecycle.py +32 -35
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_pipeline.py +6 -3
- raise_cli-3.1.7/src/raise_cli/pipeline/pipelines_base/research.yaml +66 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/run_store.py +21 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/worktree_lock.py +29 -2
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/project_config/manifest.py +18 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/publish/check.py +4 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/github_adapter.py +17 -2
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/gitlab_adapter.py +17 -2
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/propagation.py +171 -77
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/close.py +11 -3
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/open_service.py +34 -8
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/schema.py +14 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/validator.py +24 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-start-enterprise/SKILL.md +5 -8
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-start-lean/SKILL.md +1 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-close-enterprise/SKILL.md +2 -2
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-mr-create/SKILL.md +4 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-pipeline-run/SKILL.md +11 -7
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-session-orchestrator/SKILL.md +4 -4
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-session-start/SKILL.md +5 -9
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-spike-journal/SKILL.md +16 -12
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-close/SKILL.md +1 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +0 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/connection.py +38 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/schema.py +87 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/work_items.py +17 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/task/complete_service.py +87 -14
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/cost_report.py +2 -1
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/emitter.py +35 -6
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/trailer.py +31 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_item/close_service.py +66 -31
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_item/open_service.py +17 -6
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/worktree/provision.py +62 -6
- {raise_cli-3.1.6 → raise_cli-3.1.7}/README.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/__main__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/_agent_session.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/_cc_session.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/backlog_config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/composite_docs.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/confluence_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/confluence_config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/confluence_config_gen.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/confluence_discovery.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/confluence_markdown.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/declarative/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/declarative/adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/declarative/discovery.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/declarative/expressions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/declarative/schema.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/errors.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/filesystem.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/filesystem_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/filesystem_models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/google_drive_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/google_drive_exceptions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/graph_refresh.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/id_utils.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/jira_adf.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/jira_config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/jira_config_gen.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/jira_discovery.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/key_gen.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/ledger_aware.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/llm_enrichment.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/mcp_bridge.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/models/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/models/docs.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/models/governance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/models/health.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/models/pm.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/models/sync.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/oauth_token.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/pending_ops.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/platform_docs.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/protocols.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/resolve.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/sync.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/adapters/types_config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/antigravity.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/bob.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/bob_plugin.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/claude.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/claude_plugin.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/codex.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/copilot.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/copilot_plugin.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/cursor.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/devin.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/devin_plugin.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/hermes.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/kimi.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/kimi_plugin.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/mcp_template.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/roo.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/agents/windsurf.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/artifacts/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/artifacts/html_to_md.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/artifacts/identity.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/artifacts/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/artifacts/render.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/artifacts/store.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/auth/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/auth/google.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/close_drift.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/merge_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/migrate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/mr_classify.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/reconcile.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/scanner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/backlog/seed.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/calibration/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/calibration/merge.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/calibration/server_client.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges/cli.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges/formatter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges/secret_scan.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges/server_client.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges/server_install.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges/server_models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/management-ontology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/management-ontology/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/management-ontology/instances/ontology.json +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/management-ontology/instances/practices.json +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-dev-workflow/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-dev-workflow/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/glossary.json +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/ontology.json +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/practices.json +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-methodology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-methodology/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cartridges_base/raise-methodology/instances/methodology.json +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/_graph_fields.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/_graph_filter_parser.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/_resolve.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/_server_write.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/adapter_route.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/adapter_setup.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/adapters.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/artifact.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/auth.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/backlog_migrate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/base.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/bot.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/clean.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/connect.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/db.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/ddd.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/dev.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/discover.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/distillation.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/docs_architecture.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/docs_type.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/drift.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/fleet.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/governance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/graph.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/hook.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/impact.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/info.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/journal.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/learn.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/ledger.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/manifest.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/mcp.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/memory.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/onboard.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/pattern.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/portfolio.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/profile.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/project.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/quality.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/reliability.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/repo.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/schema.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/scm.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/scm_review.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/self_update.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/self_upgrade.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/skill_set.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/story.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/telemetry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/whoami.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/commands/worktree.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/error_handler.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cli/extensions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/agent.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/app.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/data.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/env.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/filter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/launch.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/pipeline_view.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/protocols.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/session_lease.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/sessions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/state.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tokens.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/app.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/screens/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/screens/command.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/screens/confirm.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/screens/help.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/screens/logs.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/screens/new_session.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/services.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/sources.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/styles.tcss +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/theme.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/widgets/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/widgets/degraded_banner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/widgets/detail_panel.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/widgets/filter_bar.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/widgets/recovery_menu.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/widgets/session_rail.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/tui/widgets/top_bar.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/types.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cockpit/worktree_ops.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compat.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compliance/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compliance/controls.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compliance/evidence.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compliance/extractors/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compliance/extractors/git.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compliance/loader.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/compliance/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/agent_plugin.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/agent_registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/agents.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/ide.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/org_binding.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/paths.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/repo_binding.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/server.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/config/settings.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/analyzers/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/analyzers/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/analyzers/protocol.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/analyzers/python.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/analyzers/signals.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/analyzers/typescript.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/builder.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/diff.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/drift.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/extractors/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/extractors/relationships.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/extractors/skills.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/extractors/structure.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/freshness.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/architecture.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/components.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/documents.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/guardrails.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/identity.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/memory.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/symbols.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/context/loaders/work.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/core/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/core/files.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/core/manifest.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/core/rai_header.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/core/text.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/core/tools.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/cwd_binding.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/classifier.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/clustering.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/cohesion.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/discover.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/domain_model.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/escalation.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/heuristics.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/hitl_html.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/naming.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/panel.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/persistence.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/pipeline.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/report.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/tactical.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/tactical_prompts.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/tactical_report.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/tactical_validation.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/templates/tactical_hitl.html.j2 +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/type_cmd.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/ddd/validation.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/compose.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/env.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/envrc.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/ports.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/processes.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/provisioner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/reaper.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/runtime_image.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/dev/status.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/developer_profile/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/developer_profile/persistence.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/developer_profile/profile.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/developer_profile/profile_portability.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/analyzer.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/check.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/clone.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/corpus.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/drift.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/metric.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/sast.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/scanner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/temporal.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/discovery/thresholds.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/adapters.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/agent.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/backfill.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/classifier.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/clustering.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/conformance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/evasion.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/hook.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/journal.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/llm_classifier.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/parser.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/segment.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/distillation/storage.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/architecture/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/architecture/bundle.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/architecture/fingerprint.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/architecture/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/architecture/module_id.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/architecture/regions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/architecture/validate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/docs/migrate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/acli.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/adapters.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/backlog_migration.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/backlog_workflow_scope.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/bob.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/developer_yaml.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/environment.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/graph_annotations.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/hooks.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/legacy_install.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/legacy_residues.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/legacy_work_items.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/local_db.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/onboarding.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/pipeline_coverage.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/runtimes.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/session_index.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/skills.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/stash_hygiene.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/storage_health.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/update.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/workspace_readiness.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/checks/worktrees.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/fix.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/protocol.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/doctor/runner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/embeddings/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/embeddings/provider.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/engines/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/_models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/_paths.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/ab.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/cli.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/datasets.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/harness.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/memory_recall.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/metrics.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/recalibrate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/reporters/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/reporters/json_report.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/reporters/latex.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/reporters/markdown.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/stats.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/eval/tuning.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/exceptions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/auto_approve.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/binding.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/cost.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/dispatch_service.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/heartbeat.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/nl_parser.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/noop_collision.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/notifications.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/prompt_builder.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/fleet/subagent_dispatcher.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/alembic/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/alembic/single_head_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/ar/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/ar/bugfix_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/ar/story_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/budget/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/budget/budget_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/_runner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/coverage.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/format.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/graph_applies_to.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/lint.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/suppression_ratchet.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/tests.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/types.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/builtin/types_tests_advisory.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/calibration/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/calibration/log.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/calibration/promotion_policy.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/capability/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/capability/capability_overlap.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/capability/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/ddd/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/ddd/domain_model_ratified_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/ddd/tactical_drift_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/docs_architecture.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/docs_sync.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/_base.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/_delta.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/auth_fan_out.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/baseline.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/dead_public_api.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/epic_close.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/import_fan_in.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/linter_suppression.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/parallel_siblings.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/post_refactor_orphan.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/drift/story_accretion.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/execution.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/execution_ledger.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/_initiative_context.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/_portfolio_config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/artifacts_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/backlog_sync_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/before_ready_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/child_epics_complete_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/close_sync_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/governance_trail_ci_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/pipeline_coverage_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/public_mirror_push_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/revert_scope_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/skill_cli_refint_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/strategic_fit_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance/workflow_transition_ownership_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/governance_freshness.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/hook.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/pm/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/pm/_config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/pm/_utils.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/pm/discovery_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/pm/icp_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/pm/jtbd_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/pm/ownership_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/protocol.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/release/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/release/version_group_consistent.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/repository_hygiene.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/slice1/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/slice1/api_schema_lock.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/slice1/auth_invariant.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/slice1/cage_profile_lint.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/slice1/cwd_topology.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/slice1/protocol_parity.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/slice1/spi_conformance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/subprocess_stdin_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/sync/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/sync/sync_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/gates/worker_budget.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/git/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/git/branch_guard.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/governance/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/governance/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/governance/sync.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/governance_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/api_graph_read_backend.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/backends/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/backends/api.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/backends/dual.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/backends/pending.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/backends/sqlite.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/exceptions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/merge.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/query_backend.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/graph/utils.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/handlers/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/harness_review/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/harness_review/adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/harness_review/claude_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/harness_review/detection.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/harness_review/pre_submission.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hook_bus/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hook_bus/events.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hook_bus/protocol.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hook_bus/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/builtin/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/builtin/graph_update.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/builtin/memory.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/builtin/pipeline_events.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/emitter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/events.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/git_commit_block.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/post_merge_staleness.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/posttooluse.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/pretooluse.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/protocol.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/hooks/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/git_diff.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/ownership.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/policy.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/recommendations.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/rendering.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/impact/report.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/legacy/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/legacy/cleaner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/legacy/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/legacy/scanner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/legacy/snooze.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/mcp/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/mcp/bridge.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/mcp/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/mcp/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/mcp/schema.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/mcp/workspace_config.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/api_patterns_backend.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/content_hash.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/dedup.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/frontmatter_extractor.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/hint_oracle.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/ingest_cartridge.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/learning.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/memory_index.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/migrate_claude.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/migration.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/pattern_evaluator.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/patterns_backend.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/portability.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/push.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/sync.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/memory/writer.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/mr_create_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/cartridges.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/claudemd.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/cli_commands.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/conventions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/detection.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/governance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/instructions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/instructions_check.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/manifest.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/manifest_validate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/memory_md.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/merge_conventions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/migration.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/profile.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/profile_portability.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/purge.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/router.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/skill_conflict.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/skill_manifest.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/skills.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/onboarding/workflows.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/console.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/formatters/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/formatters/adapters.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/formatters/backlog_node.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/formatters/discover.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/formatters/graph.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/formatters/skill.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/output/symbols.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/_caller_context.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/_compact.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/_mcp_decorators.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/_mcp_instance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/_startup_checks.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/_telemetry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/agent_runtime_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/api_run_store.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/branch_guard.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/dispatch.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/epic_story_iteration.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/executor.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/gates.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/lease_enforcement.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/lifecycle.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/loader.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_server.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_artifact.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_backlog.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_docs.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_fleet.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_gate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_graph.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_pattern.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_session.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_story.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/mcp_tools_task.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/bugfix-enterprise.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/bugfix-lean.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/epic-design-pdcv.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/epic-enterprise.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/epic-flat.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/epic.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/initiative-enterprise.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/initiative.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/spike-enterprise.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/spike.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/story-enterprise.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/story-legacy.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/story.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/pipelines_base/upgrade.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/prompt.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/provider_model.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/rai_header.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/resilient_run_store.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/skill_model.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/templates/adversarial-ar.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/templates/adversarial-qr.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/terminal_status.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/transitions.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/when.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/workflow_point_resolver.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/pipeline/worktree.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/component_map.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/dependency/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/dependency/graph.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/derivation.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/dsm_render.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/git_attr.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/storage.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/portfolio/suggest.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/project.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/project_config/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/project_config/branches.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/project_config/manifest_validate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/project_config/types.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/publish/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/publish/changelog.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/publish/version.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/quality/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/quality/classifier.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/quality/enrichment.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/quality/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/framework/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/backlog.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/prd.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/governance/vision.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/identity/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/identity/core.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/identity/core.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/identity/perspective.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/memory/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/release_preflight.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/release_version.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/cfr.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/classification_models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/cohort.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/deployments.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/gate_escape.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/lens.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/multitrack.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/recommendations.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/rollup.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/session_condition.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/target_classifier.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/reliability/targets.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/schemas/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/schemas/journal.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/schemas/session_ledger.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/schemas/session_state.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/PROVIDERS.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/azdo_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/bitbucket_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/conflict_rules.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/scm/governance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/self_update/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/self_update/manifest.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/self_update/updater.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/api_context_backend.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/bundle.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/bundle_data.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/bundle_formatters.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/bundle_governance.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/alias.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/catalog.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/models.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/reconcile.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/runtime.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/scope.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/catalog/source.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/connect.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/context_backend.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/context_env.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/derive.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/doctor.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/donor.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/identity.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/index.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/journal.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/ledger.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/lifecycle.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/measure.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/monitor.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/peek.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/prefix.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/protocols.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/qr_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/resolver.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/runner.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/scope.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/state.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/terminal.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/session/update_cache.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/locator.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/name_checker.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/parser.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/scaffold.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/skillsets.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills/sync.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/contract-template.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/preamble.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-adversarial-review/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-backlog-setup/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bug-file/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-close-lean/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-fix-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-fix-lean/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-pir/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-cartridge-agent/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-corpus-curate/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-debug/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-discover/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-docs-setup/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-docs-setup-advanced/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-close-enterprise/templates/retrospective.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-design-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/design.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/scope.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-journal/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-predesign-evidence/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-start-enterprise/templates/brief.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-epic-ux-design/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-forward-merge/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-initiative-delivering/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-initiative-shaped/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-kc-build/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-mr-merge/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-onboard-repo/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-pipeline-setup/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-pipeline-setup/references/reusable-skills.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-project-create/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-project-upgrade/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-quality-review/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-critic/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-evidence/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-frame/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-run/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-scope/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-search/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-synthesize/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-research-verify/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-session-diary/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-skill-create/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-skillset-manage/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-spike-close/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-spike-start/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-design/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-review/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-start/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-story-start-enterprise/templates/story.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-welcome/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-worktree-close/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/rai-worktree-open/SKILL.md +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/skills_base/skillsets/enterprise.yaml +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/cartridge_projection.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/consolidate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/counter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/graph_gc.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/leases.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/maintenance_lock.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/migrate.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/migrate_project_slug.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/pause_states.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/port_allocations.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/schema_sum.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/work_items_outbox.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/storage/worktrees.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/story/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/story/close_service.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/story/open_service.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/task/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/adapter_registry.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/attribution.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/audit.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/backfill.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/cc_adapter.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/defect_attribution.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/emit_work.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/guardrails.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/phase_map.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/phase_report.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/region_szz.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/root_cause.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/schemas.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/session_tokens.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/szz.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/token_daily.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/telemetry/tool_cost.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/testing/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/testing/profiling_plugin.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/testing/shadow_policy.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/testing/xdist_safety.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/tier/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/tier/context.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/version_report.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/viz/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/viz/generator.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_events/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_events/backfill.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_events/ref_resolver.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_events/retry_queue.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_events/schemas.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_events/translator.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/work_item/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/workspace/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/workspace/readiness.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/worktree/__init__.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/worktree/base_resolver.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/worktree/idle.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/worktree/prune.py +0 -0
- {raise_cli-3.1.6 → raise_cli-3.1.7}/src/raise_cli/worktree/unregistered.py +0 -0
|
@@ -97,6 +97,8 @@ dev/output/
|
|
|
97
97
|
.raise/rai/personal/calibration.jsonl
|
|
98
98
|
.raise/rai/personal/patterns.jsonl
|
|
99
99
|
.raise/rai/personal/active-session
|
|
100
|
+
# Defense in depth: pipeline advance token files (RAISE-19640)
|
|
101
|
+
.raise/rai/personal/*.token
|
|
100
102
|
|
|
101
103
|
# RaiSE sync state (per-instance JIRA mappings, not shared)
|
|
102
104
|
.raise/rai/sync/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: raise-cli
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.7
|
|
4
4
|
Summary: RaiSE CLI - Reliable AI Software Engineering governance framework
|
|
5
5
|
Project-URL: Homepage, https://raiseframework.ai
|
|
6
6
|
Project-URL: Documentation, https://docs.raiseframework.ai
|
|
@@ -23,7 +23,7 @@ Requires-Dist: httpx<1.0,>=0.27.0
|
|
|
23
23
|
Requires-Dist: jinja2>=3.1.0
|
|
24
24
|
Requires-Dist: logfire-api>=4.0
|
|
25
25
|
Requires-Dist: markdown>=3.6
|
|
26
|
-
Requires-Dist: mcp<2,>=1.
|
|
26
|
+
Requires-Dist: mcp<2,>=1.30.0
|
|
27
27
|
Requires-Dist: networkx>=3.6.1
|
|
28
28
|
Requires-Dist: numpy>=1.26.0
|
|
29
29
|
Requires-Dist: onnxruntime>=1.18.0
|
|
@@ -33,7 +33,7 @@ Requires-Dist: pydantic>=2.6.0
|
|
|
33
33
|
Requires-Dist: python-dotenv>=1.0.0
|
|
34
34
|
Requires-Dist: pyyaml>=6.0.1
|
|
35
35
|
Requires-Dist: qrcode>=8.2
|
|
36
|
-
Requires-Dist: raise-core==3.1.
|
|
36
|
+
Requires-Dist: raise-core==3.1.7
|
|
37
37
|
Requires-Dist: rich>=13.7.0
|
|
38
38
|
Requires-Dist: ruamel-yaml>=0.18
|
|
39
39
|
Requires-Dist: textual>=0.89.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "raise-cli"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.7"
|
|
4
4
|
description = "RaiSE CLI - Reliable AI Software Engineering governance framework"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Emilio Osorio", email = "emilio@humansys.ai"}
|
|
@@ -21,7 +21,7 @@ classifiers = [
|
|
|
21
21
|
]
|
|
22
22
|
|
|
23
23
|
dependencies = [
|
|
24
|
-
"raise-core==3.1.
|
|
24
|
+
"raise-core==3.1.7",
|
|
25
25
|
"typer>=0.12.0",
|
|
26
26
|
"rich>=13.7.0",
|
|
27
27
|
"pydantic>=2.6.0",
|
|
@@ -41,7 +41,7 @@ dependencies = [
|
|
|
41
41
|
"numpy>=1.26.0",
|
|
42
42
|
"logfire-api>=4.0",
|
|
43
43
|
"httpx>=0.27.0,<1.0",
|
|
44
|
-
"mcp>=1.
|
|
44
|
+
"mcp>=1.30.0,<2",
|
|
45
45
|
"markdown>=3.6",
|
|
46
46
|
"atlassian-python-api>=3.41.0,<5",
|
|
47
47
|
"qrcode>=8.2",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# pyright: reportPrivateUsage=false
|
|
2
|
+
"""Copper & Patina HTML shell para artefactos locales (RAISE-19213)."""
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import html
|
|
7
|
+
|
|
8
|
+
from raise_cli.ddd.tactical_report import _COPPER_PATINA_CSS
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def wrap_html_shell(title: str, body: str) -> str:
|
|
12
|
+
"""Envolver body en un documento HTML con CSS Copper & Patina inline."""
|
|
13
|
+
return (
|
|
14
|
+
f"<!DOCTYPE html>\n"
|
|
15
|
+
f'<html lang="es">\n'
|
|
16
|
+
f"<head>\n"
|
|
17
|
+
f' <meta charset="utf-8">\n'
|
|
18
|
+
f' <meta name="viewport" content="width=device-width, initial-scale=1">\n'
|
|
19
|
+
f" <title>{html.escape(title)}</title>\n"
|
|
20
|
+
f" <style>{_COPPER_PATINA_CSS}</style>\n"
|
|
21
|
+
f"</head>\n"
|
|
22
|
+
f"<body>\n"
|
|
23
|
+
f"{body}\n"
|
|
24
|
+
f"</body>\n"
|
|
25
|
+
f"</html>"
|
|
26
|
+
)
|
|
@@ -25,6 +25,7 @@ from pydantic import ValidationError
|
|
|
25
25
|
from raise_cli.adapters.errors import AdapterSyncError
|
|
26
26
|
from raise_cli.adapters.filesystem_models import BacklogItem
|
|
27
27
|
from raise_cli.adapters.id_utils import DEFAULT_ID_PATTERN, work_id_re
|
|
28
|
+
from raise_cli.adapters.key_gen import issue_type_to_work_item_type
|
|
28
29
|
from raise_cli.adapters.models import (
|
|
29
30
|
AdapterHealth,
|
|
30
31
|
AttachmentDetail,
|
|
@@ -159,6 +160,12 @@ class CompositeBacklogAdapter:
|
|
|
159
160
|
if mapped:
|
|
160
161
|
with contextlib.suppress(Exception):
|
|
161
162
|
self._wi_store.update_fields(wi.id, mapped)
|
|
163
|
+
retype_value = changes.get("issuetype") or changes.get("issue_type")
|
|
164
|
+
if retype_value is not None:
|
|
165
|
+
with contextlib.suppress(Exception):
|
|
166
|
+
new_type = issue_type_to_work_item_type(str(retype_value))
|
|
167
|
+
if new_type != wi.type:
|
|
168
|
+
self._wi_store.retype(wi.id, new_type)
|
|
162
169
|
|
|
163
170
|
def _write_through_to_local(
|
|
164
171
|
self,
|
|
@@ -453,50 +460,123 @@ class CompositeBacklogAdapter:
|
|
|
453
460
|
self._update_work_item_fields(key, {"status": status})
|
|
454
461
|
return IssueRef(key=key, remote_synced=True)
|
|
455
462
|
|
|
463
|
+
def _rollback_local_transition(
|
|
464
|
+
self,
|
|
465
|
+
local_key: str,
|
|
466
|
+
prev_statuses: dict[str, str],
|
|
467
|
+
) -> None:
|
|
468
|
+
"""Best-effort rollback of a single local transition (RAISE-17085)."""
|
|
469
|
+
prev = prev_statuses.get(local_key)
|
|
470
|
+
if prev is not None:
|
|
471
|
+
with contextlib.suppress(Exception):
|
|
472
|
+
self._local.transition_issue(local_key, prev)
|
|
473
|
+
|
|
456
474
|
def batch_transition(self, keys: list[str], status: str) -> BatchResult:
|
|
457
|
-
"""Batch transition
|
|
475
|
+
"""Batch transition with transition_issue-grade safety (RAISE-17085).
|
|
476
|
+
|
|
477
|
+
Transitions are context-dependent and never queued for replay
|
|
478
|
+
(RAISE-4186). On remote failure, local state is rolled back.
|
|
479
|
+
"""
|
|
458
480
|
self._flush_pending()
|
|
459
481
|
local_canonical = [k for k in keys if self._local_has_key(k)]
|
|
460
482
|
remote_native = [k for k in keys if not self._local_has_key(k)]
|
|
461
483
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
484
|
+
prev_statuses: dict[str, str] = {}
|
|
485
|
+
for k in local_canonical:
|
|
486
|
+
with contextlib.suppress(Exception):
|
|
487
|
+
prev_statuses[k] = self._local.get_issue(k).status
|
|
488
|
+
|
|
489
|
+
mapped_keys, unmapped_keys, remote_to_local = self._partition_by_ledger(
|
|
490
|
+
local_canonical
|
|
491
|
+
)
|
|
492
|
+
|
|
493
|
+
local_result: BatchResult = (
|
|
494
|
+
self._local.batch_transition(mapped_keys, status)
|
|
495
|
+
if mapped_keys
|
|
465
496
|
else BatchResult()
|
|
466
497
|
)
|
|
467
498
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
for k in
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
499
|
+
succeeded: list[IssueRef] = list(local_result.succeeded)
|
|
500
|
+
failed: list[FailureDetail] = list(local_result.failed)
|
|
501
|
+
for k in unmapped_keys:
|
|
502
|
+
failed.append(FailureDetail(key=k, error="No remote mapping in ledger"))
|
|
503
|
+
|
|
504
|
+
# Only keys that transitioned locally go to remote (QR R1).
|
|
505
|
+
local_ok = [r.key for r in local_result.succeeded]
|
|
506
|
+
remote_to_local = {
|
|
507
|
+
rk: lk for rk, lk in remote_to_local.items() if lk in local_ok
|
|
508
|
+
}
|
|
509
|
+
remote_keys: list[str] = list(remote_native) + list(remote_to_local)
|
|
476
510
|
|
|
477
511
|
if not remote_keys:
|
|
478
|
-
return
|
|
512
|
+
return BatchResult(succeeded=succeeded, failed=failed)
|
|
479
513
|
|
|
480
514
|
remote_native_set = set(remote_native)
|
|
481
515
|
for remote in self._remotes:
|
|
482
516
|
try:
|
|
483
517
|
remote_result = remote.batch_transition(remote_keys, status)
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
518
|
+
self._merge_remote_batch_result(
|
|
519
|
+
remote_result,
|
|
520
|
+
remote_native_set,
|
|
521
|
+
remote_to_local,
|
|
522
|
+
prev_statuses,
|
|
523
|
+
succeeded,
|
|
524
|
+
failed,
|
|
491
525
|
)
|
|
492
526
|
except Exception as exc: # noqa: BLE001 — intentional broad catch (grandfathered at BLE001 enablement, RAISE-15490)
|
|
493
|
-
self._pending.append(
|
|
494
|
-
"batch_transition",
|
|
495
|
-
",".join(keys),
|
|
496
|
-
{"status": status},
|
|
497
|
-
)
|
|
498
527
|
logger.warning("Remote batch_transition failed: %s", exc)
|
|
499
|
-
|
|
528
|
+
for lk in local_ok:
|
|
529
|
+
self._rollback_local_transition(lk, prev_statuses)
|
|
530
|
+
succeeded[:] = [r for r in succeeded if r.key != lk]
|
|
531
|
+
failed.append(FailureDetail(key=lk, error=str(exc)))
|
|
532
|
+
for rk in remote_native:
|
|
533
|
+
failed.append(FailureDetail(key=rk, error=str(exc)))
|
|
534
|
+
break
|
|
535
|
+
|
|
536
|
+
return BatchResult(succeeded=succeeded, failed=failed)
|
|
537
|
+
|
|
538
|
+
def _partition_by_ledger(
|
|
539
|
+
self, local_canonical: list[str]
|
|
540
|
+
) -> tuple[list[str], list[str], dict[str, str]]:
|
|
541
|
+
"""Split local-canonical keys into mapped/unmapped; build reverse map."""
|
|
542
|
+
mapped: list[str] = []
|
|
543
|
+
unmapped: list[str] = []
|
|
544
|
+
remote_to_local: dict[str, str] = {}
|
|
545
|
+
for k in local_canonical:
|
|
546
|
+
rk = self._wi_store.get_jira_key(k)
|
|
547
|
+
if rk is not None:
|
|
548
|
+
mapped.append(k)
|
|
549
|
+
remote_to_local[rk] = k
|
|
550
|
+
else:
|
|
551
|
+
unmapped.append(k)
|
|
552
|
+
return mapped, unmapped, remote_to_local
|
|
553
|
+
|
|
554
|
+
def _merge_remote_batch_result(
|
|
555
|
+
self,
|
|
556
|
+
remote_result: BatchResult,
|
|
557
|
+
remote_native_set: set[str],
|
|
558
|
+
remote_to_local: dict[str, str],
|
|
559
|
+
prev_statuses: dict[str, str],
|
|
560
|
+
succeeded: list[IssueRef],
|
|
561
|
+
failed: list[FailureDetail],
|
|
562
|
+
) -> None:
|
|
563
|
+
"""Merge remote BatchResult, rolling back local on per-key failures."""
|
|
564
|
+
remote_failed_keys = {f.key for f in remote_result.failed}
|
|
565
|
+
|
|
566
|
+
for r in remote_result.succeeded:
|
|
567
|
+
if r.key in remote_native_set:
|
|
568
|
+
succeeded.append(r)
|
|
569
|
+
for f in remote_result.failed:
|
|
570
|
+
if f.key in remote_native_set:
|
|
571
|
+
failed.append(f)
|
|
572
|
+
|
|
573
|
+
for rk, lk in remote_to_local.items():
|
|
574
|
+
if rk in remote_failed_keys:
|
|
575
|
+
self._rollback_local_transition(lk, prev_statuses)
|
|
576
|
+
succeeded[:] = [r for r in succeeded if r.key != lk]
|
|
577
|
+
detail = next((f for f in remote_result.failed if f.key == rk), None)
|
|
578
|
+
error = detail.error if detail else "Remote transition failed"
|
|
579
|
+
failed.append(FailureDetail(key=lk, error=error))
|
|
500
580
|
|
|
501
581
|
def batch_create(self, issues: list[IssueSpec]) -> BatchResult:
|
|
502
582
|
"""Create multiple issues with per-item fault isolation."""
|
|
@@ -878,7 +958,7 @@ class CompositeBacklogAdapter:
|
|
|
878
958
|
self._reconcile_local_mirror(
|
|
879
959
|
promoted_ref.key, remote_ref.key, remote
|
|
880
960
|
)
|
|
881
|
-
except Exception as exc: # noqa: BLE001
|
|
961
|
+
except Exception as exc: # noqa: BLE001 — intentional broad catch (grandfathered at BLE001 enablement, RAISE-15490)
|
|
882
962
|
logger.warning(
|
|
883
963
|
"Replay create_issue %s failed on remote[%d]: %s", op.key, i, exc
|
|
884
964
|
)
|
|
@@ -934,7 +1014,7 @@ class CompositeBacklogAdapter:
|
|
|
934
1014
|
try:
|
|
935
1015
|
remote.batch_transition(resolved, status) # type: ignore[arg-type]
|
|
936
1016
|
completed.append(i)
|
|
937
|
-
except Exception as exc: # noqa: BLE001
|
|
1017
|
+
except Exception as exc: # noqa: BLE001 — intentional broad catch (grandfathered at BLE001 enablement, RAISE-15490)
|
|
938
1018
|
logger.warning(
|
|
939
1019
|
"Replay batch_transition %s failed on remote[%d]: %s",
|
|
940
1020
|
op.key,
|
|
@@ -962,7 +1042,7 @@ class CompositeBacklogAdapter:
|
|
|
962
1042
|
try:
|
|
963
1043
|
remote.link_to_parent(remote_child, remote_parent)
|
|
964
1044
|
completed.append(i)
|
|
965
|
-
except Exception as exc: # noqa: BLE001
|
|
1045
|
+
except Exception as exc: # noqa: BLE001 — intentional broad catch (grandfathered at BLE001 enablement, RAISE-15490)
|
|
966
1046
|
logger.warning(
|
|
967
1047
|
"Replay link_to_parent %s failed on remote[%d]: %s", op.key, i, exc
|
|
968
1048
|
)
|
|
@@ -988,7 +1068,7 @@ class CompositeBacklogAdapter:
|
|
|
988
1068
|
try:
|
|
989
1069
|
remote.link_issues(remote_source, remote_target, link_type)
|
|
990
1070
|
completed.append(i)
|
|
991
|
-
except Exception as exc: # noqa: BLE001
|
|
1071
|
+
except Exception as exc: # noqa: BLE001 — intentional broad catch (grandfathered at BLE001 enablement, RAISE-15490)
|
|
992
1072
|
logger.warning(
|
|
993
1073
|
"Replay link_issues %s failed on remote[%d]: %s", op.key, i, exc
|
|
994
1074
|
)
|
|
@@ -1050,7 +1130,7 @@ class CompositeBacklogAdapter:
|
|
|
1050
1130
|
try:
|
|
1051
1131
|
action(remote, remote_key)
|
|
1052
1132
|
completed.append(i)
|
|
1053
|
-
except Exception as exc: # noqa: BLE001
|
|
1133
|
+
except Exception as exc: # noqa: BLE001 — intentional broad catch (grandfathered at BLE001 enablement, RAISE-15490)
|
|
1054
1134
|
logger.debug(
|
|
1055
1135
|
"Replay %s %s failed on remote[%d]: %s", op.op, op.key, i, exc
|
|
1056
1136
|
)
|
|
@@ -708,15 +708,37 @@ class ConfluenceClient:
|
|
|
708
708
|
parent_title=parent_title,
|
|
709
709
|
)
|
|
710
710
|
|
|
711
|
+
@staticmethod
|
|
712
|
+
def _extract_status(error: Exception) -> int | None:
|
|
713
|
+
"""Extract the HTTP status code from an atlassian exception.
|
|
714
|
+
|
|
715
|
+
atlassian stores the originating HTTPError as ``error.reason``; the
|
|
716
|
+
requests HTTPError carries the response on ``error.response``. As a
|
|
717
|
+
fallback we also check ``error.response`` directly (for callers that
|
|
718
|
+
surface the raw HTTPError).
|
|
719
|
+
"""
|
|
720
|
+
reason = getattr(error, "reason", None)
|
|
721
|
+
# RAISE-19457 adversarial panel F2: use ``is None`` not truthiness.
|
|
722
|
+
# A requests.Response with a 4xx/5xx status code is falsy (ok=False),
|
|
723
|
+
# so the old ``or`` check would fall through and lose the status_code.
|
|
724
|
+
response = getattr(reason, "response", None)
|
|
725
|
+
if response is None:
|
|
726
|
+
response = getattr(error, "response", None)
|
|
727
|
+
status: int | None = getattr(response, "status_code", None)
|
|
728
|
+
return status
|
|
729
|
+
|
|
711
730
|
@staticmethod
|
|
712
731
|
def _map_error(error: Exception, context: str) -> ConfluenceError:
|
|
713
732
|
"""Map atlassian exceptions to our hierarchy using isinstance."""
|
|
714
733
|
from atlassian.errors import ApiError, ApiNotFoundError, ApiPermissionError
|
|
715
734
|
|
|
735
|
+
status = ConfluenceClient._extract_status(error)
|
|
716
736
|
if isinstance(error, ApiPermissionError):
|
|
717
|
-
return ConfluenceAuthError(f"{context}: {error}")
|
|
737
|
+
return ConfluenceAuthError(f"{context}: {error}", status_code=status)
|
|
718
738
|
if isinstance(error, ApiNotFoundError):
|
|
719
|
-
return ConfluenceNotFoundError(f"{context}: {error}")
|
|
739
|
+
return ConfluenceNotFoundError(f"{context}: {error}", status_code=status)
|
|
720
740
|
if isinstance(error, ApiError):
|
|
721
|
-
return ConfluenceApiError(f"{context}: {error}")
|
|
722
|
-
return ConfluenceApiError(
|
|
741
|
+
return ConfluenceApiError(f"{context}: {error}", status_code=status)
|
|
742
|
+
return ConfluenceApiError(
|
|
743
|
+
f"{context}: unexpected error: {error}", status_code=status
|
|
744
|
+
)
|
|
@@ -16,22 +16,25 @@ from __future__ import annotations
|
|
|
16
16
|
class ConfluenceError(Exception):
|
|
17
17
|
"""Base for all Confluence client errors."""
|
|
18
18
|
|
|
19
|
-
def __init__(self, message: str) -> None:
|
|
19
|
+
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
20
20
|
self.message = message
|
|
21
|
+
self.status_code = status_code
|
|
21
22
|
super().__init__(message)
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
class ConfluenceAuthError(ConfluenceError):
|
|
25
26
|
"""401/403 — invalid or missing credentials."""
|
|
26
27
|
|
|
28
|
+
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
29
|
+
super().__init__(message, status_code=status_code)
|
|
30
|
+
|
|
27
31
|
|
|
28
32
|
class ConfluenceNotFoundError(ConfluenceError):
|
|
29
33
|
"""404 — page, space, or resource not found."""
|
|
30
34
|
|
|
35
|
+
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
36
|
+
super().__init__(message, status_code=status_code)
|
|
37
|
+
|
|
31
38
|
|
|
32
39
|
class ConfluenceApiError(ConfluenceError):
|
|
33
40
|
"""Generic API error (incl. post-retry 429, 5xx, etc)."""
|
|
34
|
-
|
|
35
|
-
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
36
|
-
self.status_code = status_code
|
|
37
|
-
super().__init__(message)
|
|
@@ -49,7 +49,11 @@ class FilesystemDocsTarget:
|
|
|
49
49
|
metadata: dict[str, Any],
|
|
50
50
|
format: str = "markdown",
|
|
51
51
|
) -> PublishResult:
|
|
52
|
-
"""Write content to local file at metadata['path'].
|
|
52
|
+
"""Write content to local file at metadata['path'].
|
|
53
|
+
|
|
54
|
+
When format='html', wraps content in Copper & Patina HTML shell
|
|
55
|
+
(RAISE-19213). Otherwise writes verbatim (RAISE-16870 D5).
|
|
56
|
+
"""
|
|
53
57
|
raw_path = metadata.get("path")
|
|
54
58
|
if not raw_path:
|
|
55
59
|
return PublishResult(
|
|
@@ -59,6 +63,11 @@ class FilesystemDocsTarget:
|
|
|
59
63
|
error = self._validate_frontmatter(content, doc_type)
|
|
60
64
|
if error:
|
|
61
65
|
return error
|
|
66
|
+
if format == "html":
|
|
67
|
+
from raise_cli.adapters._html_shell import wrap_html_shell
|
|
68
|
+
|
|
69
|
+
title = metadata.get("title", "")
|
|
70
|
+
content = wrap_html_shell(title, content)
|
|
62
71
|
path = self._root / raw_path
|
|
63
72
|
path.parent.mkdir(parents=True, exist_ok=True)
|
|
64
73
|
path.write_text(
|
|
@@ -597,6 +597,8 @@ class PythonApiJiraAdapter:
|
|
|
597
597
|
) -> Any:
|
|
598
598
|
"""Wrap value based on Jira field schema — universal dispatch (S2503.20)."""
|
|
599
599
|
if field_id in self._KEY_OBJECT_FIELDS:
|
|
600
|
+
if isinstance(value, str) and value in self._UNASSIGN_SENTINELS:
|
|
601
|
+
return None
|
|
600
602
|
return {"key": value} if isinstance(value, str) else value
|
|
601
603
|
if field_id in self._ARRAY_NAME_OBJECT_FIELDS:
|
|
602
604
|
if isinstance(value, str):
|
|
@@ -1073,15 +1073,35 @@ class JiraClient:
|
|
|
1073
1073
|
|
|
1074
1074
|
# ── Internal ─────────────────────────────────────────────────────
|
|
1075
1075
|
|
|
1076
|
+
@staticmethod
|
|
1077
|
+
def _extract_status(error: Exception) -> int | None:
|
|
1078
|
+
"""Extract the HTTP status code from an atlassian exception.
|
|
1079
|
+
|
|
1080
|
+
atlassian stores the originating HTTPError as ``error.reason``; the
|
|
1081
|
+
requests HTTPError carries the response on ``error.response``. As a
|
|
1082
|
+
fallback we also check ``error.response`` directly (for callers that
|
|
1083
|
+
surface the raw HTTPError).
|
|
1084
|
+
"""
|
|
1085
|
+
reason = getattr(error, "reason", None)
|
|
1086
|
+
# RAISE-19457 adversarial panel F2: use ``is None`` not truthiness.
|
|
1087
|
+
# A requests.Response with a 4xx/5xx status code is falsy (ok=False),
|
|
1088
|
+
# so the old ``or`` check would fall through and lose the status_code.
|
|
1089
|
+
response = getattr(reason, "response", None)
|
|
1090
|
+
if response is None:
|
|
1091
|
+
response = getattr(error, "response", None)
|
|
1092
|
+
status: int | None = getattr(response, "status_code", None)
|
|
1093
|
+
return status
|
|
1094
|
+
|
|
1076
1095
|
@staticmethod
|
|
1077
1096
|
def _map_error(error: Exception, context: str) -> JiraAdapterError:
|
|
1078
1097
|
"""Map atlassian exceptions to our hierarchy using isinstance."""
|
|
1079
1098
|
from atlassian.errors import ApiError, ApiNotFoundError, ApiPermissionError
|
|
1080
1099
|
|
|
1100
|
+
status = JiraClient._extract_status(error)
|
|
1081
1101
|
if isinstance(error, ApiPermissionError):
|
|
1082
|
-
return JiraAuthError(f"{context}: {error}")
|
|
1102
|
+
return JiraAuthError(f"{context}: {error}", status_code=status)
|
|
1083
1103
|
if isinstance(error, ApiNotFoundError):
|
|
1084
|
-
return JiraNotFoundError(f"{context}: {error}")
|
|
1104
|
+
return JiraNotFoundError(f"{context}: {error}", status_code=status)
|
|
1085
1105
|
if isinstance(error, ApiError):
|
|
1086
|
-
return JiraApiError(f"{context}: {error}")
|
|
1087
|
-
return JiraApiError(f"{context}: unexpected error: {error}")
|
|
1106
|
+
return JiraApiError(f"{context}: {error}", status_code=status)
|
|
1107
|
+
return JiraApiError(f"{context}: unexpected error: {error}", status_code=status)
|
|
@@ -16,22 +16,25 @@ from __future__ import annotations
|
|
|
16
16
|
class JiraAdapterError(Exception):
|
|
17
17
|
"""Base for all Jira client errors."""
|
|
18
18
|
|
|
19
|
-
def __init__(self, message: str) -> None:
|
|
19
|
+
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
20
20
|
self.message = message
|
|
21
|
+
self.status_code = status_code
|
|
21
22
|
super().__init__(message)
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
class JiraAuthError(JiraAdapterError):
|
|
25
26
|
"""401/403 — invalid or missing credentials."""
|
|
26
27
|
|
|
28
|
+
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
29
|
+
super().__init__(message, status_code=status_code)
|
|
30
|
+
|
|
27
31
|
|
|
28
32
|
class JiraNotFoundError(JiraAdapterError):
|
|
29
33
|
"""404 — issue, project, or resource not found."""
|
|
30
34
|
|
|
35
|
+
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
36
|
+
super().__init__(message, status_code=status_code)
|
|
37
|
+
|
|
31
38
|
|
|
32
39
|
class JiraApiError(JiraAdapterError):
|
|
33
40
|
"""Generic API error (incl. post-retry 429, 5xx, etc)."""
|
|
34
|
-
|
|
35
|
-
def __init__(self, message: str, status_code: int | None = None) -> None:
|
|
36
|
-
self.status_code = status_code
|
|
37
|
-
super().__init__(message)
|
|
@@ -16,7 +16,7 @@ import re
|
|
|
16
16
|
import uuid
|
|
17
17
|
from datetime import UTC, datetime
|
|
18
18
|
from pathlib import Path
|
|
19
|
-
from typing import Any
|
|
19
|
+
from typing import Any, cast
|
|
20
20
|
|
|
21
21
|
from raise_cli.adapters.filesystem_models import BacklogItem
|
|
22
22
|
from raise_cli.adapters.key_gen import (
|
|
@@ -322,6 +322,27 @@ class SQLitePMAdapter:
|
|
|
322
322
|
self._store.create(work_item)
|
|
323
323
|
return IssueRef(key=key)
|
|
324
324
|
|
|
325
|
+
def _apply_retype(self, wi: WorkItem, value: object, author: str) -> None:
|
|
326
|
+
"""Apply an issue_type change via the dedicated retype path."""
|
|
327
|
+
new_type = issue_type_to_work_item_type(str(value))
|
|
328
|
+
if new_type != wi.type:
|
|
329
|
+
self._store.append_changelog(wi.id, "type", wi.type, new_type, author)
|
|
330
|
+
self._store.retype(wi.id, new_type)
|
|
331
|
+
|
|
332
|
+
@staticmethod
|
|
333
|
+
def _normalize_list_value(value: object) -> object:
|
|
334
|
+
"""Coerce a list-typed field value to a list of names."""
|
|
335
|
+
if isinstance(value, str):
|
|
336
|
+
return [value] if value else []
|
|
337
|
+
# Jira's `[{"name": "3.1.6"}]` shape (assign_fix_version) → names
|
|
338
|
+
# (RAISE-18975).
|
|
339
|
+
if isinstance(value, list):
|
|
340
|
+
return [
|
|
341
|
+
v["name"] if isinstance(v, dict) and "name" in v else v
|
|
342
|
+
for v in cast("list[Any]", value)
|
|
343
|
+
]
|
|
344
|
+
return value
|
|
345
|
+
|
|
325
346
|
def update_issue(self, key: str, fields: dict[str, Any]) -> IssueRef:
|
|
326
347
|
"""Update fields on an existing issue. Writes changelog for each change."""
|
|
327
348
|
wi = self._resolve_work_item(key)
|
|
@@ -331,18 +352,14 @@ class SQLitePMAdapter:
|
|
|
331
352
|
canonical = _JIRA_FIELD_ALIASES.get(field_name, field_name)
|
|
332
353
|
if canonical in _IMMUTABLE_FIELDS:
|
|
333
354
|
continue
|
|
355
|
+
if canonical == "issue_type":
|
|
356
|
+
self._apply_retype(wi, value, author)
|
|
357
|
+
continue
|
|
334
358
|
# Map to updatable field names
|
|
335
359
|
if canonical == "parent":
|
|
336
360
|
canonical = "parent_local_key"
|
|
337
|
-
if canonical in _LIST_TYPED_FIELDS
|
|
338
|
-
value =
|
|
339
|
-
# Jira's `[{"name": "3.1.6"}]` shape (assign_fix_version) → names
|
|
340
|
-
# (RAISE-18975).
|
|
341
|
-
if canonical in _LIST_TYPED_FIELDS and isinstance(value, list):
|
|
342
|
-
value = [
|
|
343
|
-
v["name"] if isinstance(v, dict) and "name" in v else v
|
|
344
|
-
for v in value
|
|
345
|
-
]
|
|
361
|
+
if canonical in _LIST_TYPED_FIELDS:
|
|
362
|
+
value = self._normalize_list_value(value)
|
|
346
363
|
if canonical in _UPDATABLE_FIELDS:
|
|
347
364
|
old_value = getattr(wi, canonical, None)
|
|
348
365
|
if isinstance(old_value, list):
|
|
@@ -19,6 +19,8 @@ from raise_cli.mcp.workspace_config import (
|
|
|
19
19
|
detect_mcp_pipeline_command,
|
|
20
20
|
render_codex_config_toml,
|
|
21
21
|
)
|
|
22
|
+
from raise_cli.skills.parser import ParseError
|
|
23
|
+
from raise_cli.skills.parser import parse_frontmatter as _parse_skill_frontmatter
|
|
22
24
|
from raise_cli.skills.sync import skill_names as _skill_names
|
|
23
25
|
|
|
24
26
|
_HOOKS_JSON: dict[str, Any] = {
|
|
@@ -211,6 +213,23 @@ exit 0
|
|
|
211
213
|
"""
|
|
212
214
|
|
|
213
215
|
|
|
216
|
+
def _skill_is_public(skill_dir: Path) -> bool:
|
|
217
|
+
"""Return True when the skill's raise.visibility is 'public' (default).
|
|
218
|
+
|
|
219
|
+
Reads the SKILL.md frontmatter and checks the raise.visibility key.
|
|
220
|
+
Defaults to True (public) on any read or parse failure so that skills
|
|
221
|
+
without an explicit visibility field are included — backward-compatible.
|
|
222
|
+
"""
|
|
223
|
+
skill_md = skill_dir / "SKILL.md"
|
|
224
|
+
try:
|
|
225
|
+
content = skill_md.read_text(encoding="utf-8")
|
|
226
|
+
fm, _ = _parse_skill_frontmatter(content)
|
|
227
|
+
metadata = fm.get("metadata", {}) or {}
|
|
228
|
+
return metadata.get("raise.visibility", "public") == "public"
|
|
229
|
+
except (OSError, ParseError):
|
|
230
|
+
return True # default public on read/parse failure
|
|
231
|
+
|
|
232
|
+
|
|
214
233
|
class CodexPlugin:
|
|
215
234
|
"""Generate RaiSE governance config files for Codex CLI.
|
|
216
235
|
|
|
@@ -278,13 +297,23 @@ class CodexPlugin:
|
|
|
278
297
|
|
|
279
298
|
source_skills_dir = project_root / ".agent" / "skills"
|
|
280
299
|
if source_skills_dir.is_dir():
|
|
281
|
-
|
|
282
|
-
#
|
|
283
|
-
#
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
300
|
+
# Copy only public-visibility skills to the plugin — internal skills
|
|
301
|
+
# must not be distributed (RAISE-19076). Default is public so that
|
|
302
|
+
# skills without a raise.visibility field are included.
|
|
303
|
+
plugin_skills_dir.mkdir(parents=True, exist_ok=True)
|
|
304
|
+
public_source_names: set[str] = set()
|
|
305
|
+
for name in _skill_names(source_skills_dir):
|
|
306
|
+
if _skill_is_public(source_skills_dir / name):
|
|
307
|
+
shutil.copytree(
|
|
308
|
+
source_skills_dir / name,
|
|
309
|
+
plugin_skills_dir / name,
|
|
310
|
+
dirs_exist_ok=True,
|
|
311
|
+
)
|
|
312
|
+
public_source_names.add(name)
|
|
313
|
+
# Remove stale skill dirs that no longer exist in source (or were
|
|
314
|
+
# demoted to internal) — prevents ghost entries after a rename or
|
|
315
|
+
# visibility change from dirtying the tree on every sync (RAISE-18967).
|
|
316
|
+
for name in _skill_names(plugin_skills_dir) - public_source_names:
|
|
288
317
|
shutil.rmtree(plugin_skills_dir / name)
|
|
289
318
|
else:
|
|
290
319
|
plugin_skills_dir.mkdir(parents=True, exist_ok=True)
|
|
@@ -130,6 +130,19 @@ def pipeline_run_active() -> bool:
|
|
|
130
130
|
return any_pipeline_run_active()
|
|
131
131
|
|
|
132
132
|
|
|
133
|
+
def active_run_issue_ids() -> frozenset[str]:
|
|
134
|
+
"""Return the set of issue_ids that have at least one active pipeline run.
|
|
135
|
+
|
|
136
|
+
Single store query; used by ``batch-transition`` to evaluate the
|
|
137
|
+
engine-ownership guard per-key (RAISE-19625). Fail-open per RAISE-10966.
|
|
138
|
+
"""
|
|
139
|
+
from raise_cli.pipeline.execution_context import (
|
|
140
|
+
active_run_issue_ids as _active_run_issue_ids,
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
return _active_run_issue_ids()
|
|
144
|
+
|
|
145
|
+
|
|
133
146
|
def _current_fix_versions(project: Path, jira_key: str) -> list[str]:
|
|
134
147
|
"""Read the issue's current fixVersion names from the configured PM adapter."""
|
|
135
148
|
from raise_cli.adapters.resolve import resolve_pm_adapter
|