raise-cli 3.1.3__tar.gz → 3.1.4__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.3 → raise_cli-3.1.4}/PKG-INFO +2 -2
- {raise_cli-3.1.3 → raise_cli-3.1.4}/pyproject.toml +2 -2
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/composite_pm.py +4 -4
- raise_cli-3.1.4/src/raise_cli/adapters/id_utils.py +41 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_config_gen.py +10 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/models/pm.py +8 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/resolve.py +7 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/migrate.py +5 -4
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/graph.py +3 -2
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/init.py +4 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/session.py +7 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/session_lease.py +38 -2
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cwd_binding.py +15 -12
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/graph_annotations.py +1 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/fix.py +11 -7
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/artifacts_gate.py +8 -4
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/close_sync_gate.py +4 -2
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/repository_hygiene.py +1 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/memory_index.py +19 -9
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/bootstrap.py +15 -3
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/memory_md.py +1 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/epic_story_iteration.py +70 -28
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_session.py +16 -10
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/doctor.py +3 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/open_service.py +56 -15
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +10 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-close-enterprise/SKILL.md +20 -2
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-run/SKILL.md +3 -1
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-worktree-close/SKILL.md +3 -3
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/leases.py +12 -2
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_events/ref_resolver.py +7 -7
- {raise_cli-3.1.3 → raise_cli-3.1.4}/.gitignore +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/README.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/__main__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/_agent_session.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/_cc_session.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/backlog_config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/composite_docs.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_client.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_config_gen.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_discovery.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_exceptions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_markdown.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/discovery.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/expressions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/schema.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/errors.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem_docs.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem_models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/google_drive_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/google_drive_exceptions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/graph_refresh.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_adf.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_client.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_discovery.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_exceptions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/key_gen.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/ledger_aware.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/llm_enrichment.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/mcp_bridge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/models/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/models/docs.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/models/governance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/models/health.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/models/sync.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/oauth_token.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/pending_ops.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/platform_docs.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/protocols.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/sqlite_pm.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/sync.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/adapters/types_config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/antigravity.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/bob.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/bob_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/claude.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/claude_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/codex.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/codex_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/copilot.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/copilot_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/cursor.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/devin.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/devin_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/hermes.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/kimi.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/kimi_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/mcp_template.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/roo.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/agents/windsurf.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/artifacts/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/artifacts/html_to_md.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/artifacts/identity.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/artifacts/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/artifacts/render.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/artifacts/store.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/auth/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/auth/google.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/close_drift.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/hooks.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/merge_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/mr_classify.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/reconcile.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/scanner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/seed.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/backlog/sync.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/calibration/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/calibration/merge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/calibration/server_client.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges/cli.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges/formatter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges/secret_scan.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges/server_client.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges/server_install.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges/server_models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/instances/ontology.json +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/instances/practices.json +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/glossary.json +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/ontology.json +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/practices.json +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-methodology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-methodology/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-methodology/instances/methodology.json +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_graph_fields.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_graph_filter_parser.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_resolve.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_server_write.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/adapter_route.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/adapter_setup.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/adapters.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/artifact.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/auth.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/backlog.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/backlog_migrate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/base.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/bot.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/clean.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/connect.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/db.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/ddd.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/dev.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/discover.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/distillation.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/docs.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/docs_architecture.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/docs_type.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/doctor.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/drift.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/fleet.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/forward_merge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/governance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/hook.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/impact.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/info.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/journal.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/learn.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/ledger.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/manifest.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/mcp.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/memory.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/onboard.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/pattern.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/pipeline.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/portfolio.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/profile.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/project.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/quality.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/release.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/reliability.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/repo.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/schema.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/scm.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/scm_review.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/self_update.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/self_upgrade.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/signal.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/skill.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/skill_set.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/story.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/telemetry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/whoami.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/commands/worktree.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/error_handler.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/extensions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cli/main.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/agent.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/app.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/data.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/env.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/filter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/launch.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/pipeline_view.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/protocols.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/sessions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/state.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tokens.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/app.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/command.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/confirm.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/help.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/logs.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/new_session.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/services.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/sources.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/styles.tcss +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/theme.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/degraded_banner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/detail_panel.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/filter_bar.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/recovery_menu.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/session_rail.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/top_bar.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/types.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/cockpit/worktree_ops.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compat.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compliance/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compliance/controls.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compliance/evidence.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compliance/extractors/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compliance/extractors/git.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compliance/loader.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/compliance/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/agent_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/agent_registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/agents.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/ide.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/org_binding.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/paths.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/repo_binding.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/server.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/config/settings.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/protocol.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/python.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/signals.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/typescript.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/builder.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/diff.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/drift.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/extractors/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/extractors/relationships.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/extractors/skills.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/extractors/structure.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/freshness.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/architecture.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/components.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/documents.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/guardrails.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/identity.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/memory.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/symbols.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/context/loaders/work.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/core/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/core/files.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/core/manifest.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/core/rai_header.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/core/text.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/core/tools.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/classifier.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/clustering.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/cohesion.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/discover.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/domain_model.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/escalation.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/heuristics.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/hitl_html.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/naming.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/panel.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/persistence.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/pipeline.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical_prompts.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical_report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical_validation.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/templates/tactical_hitl.html.j2 +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/type_cmd.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/ddd/validation.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/compose.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/env.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/envrc.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/ports.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/processes.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/provisioner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/reaper.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/runtime_image.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/dev/status.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/developer_profile/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/developer_profile/persistence.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/developer_profile/profile.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/developer_profile/profile_portability.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/analyzer.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/check.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/clone.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/corpus.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/drift.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/metric.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/sast.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/scanner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/temporal.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/discovery/thresholds.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/adapters.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/agent.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/backfill.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/classifier.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/clustering.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/conformance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/evasion.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/hook.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/journal.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/llm_classifier.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/parser.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/segment.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/distillation/storage.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/bundle.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/fingerprint.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/module_id.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/regions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/validate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/docs/migrate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/acli.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/adapters.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/backlog_migration.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/backlog_workflow_scope.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/bob.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/developer.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/developer_yaml.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/environment.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/hooks.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/legacy_install.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/legacy_residues.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/legacy_work_items.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/local_db.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/onboarding.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/pipeline_coverage.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/project.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/runtimes.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/session_index.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/skills.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/stash_hygiene.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/update.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/workspace_readiness.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/worktrees.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/protocol.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/doctor/runner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/embeddings/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/embeddings/provider.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/engines/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/_models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/_paths.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/ab.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/cli.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/datasets.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/harness.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/memory_recall.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/metrics.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/recalibrate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/json_report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/latex.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/markdown.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/stats.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/eval/tuning.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/exceptions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/auto_approve.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/binding.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/cost.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/dispatch_service.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/heartbeat.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/nl_parser.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/noop_collision.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/notifications.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/prompt_builder.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/provisioning.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/fleet/subagent_dispatcher.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/alembic/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/alembic/single_head_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/ar/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/ar/bugfix_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/ar/story_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/budget/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/budget/budget_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/_runner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/coverage.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/format.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/graph_applies_to.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/lint.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/suppression_ratchet.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/tests.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/types.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/types_tests_advisory.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/calibration/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/calibration/log.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/calibration/promotion_policy.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/capability/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/capability/capability_overlap.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/capability/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/ddd/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/ddd/domain_model_ratified_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/ddd/tactical_drift_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/docs_architecture.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/docs_sync.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/_base.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/_delta.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/auth_fan_out.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/baseline.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/dead_public_api.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/epic_close.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/import_fan_in.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/linter_suppression.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/parallel_siblings.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/post_refactor_orphan.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/drift/story_accretion.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/execution.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/execution_ledger.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/_initiative_context.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/_portfolio_config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/backlog_sync_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/before_ready_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/child_epics_complete_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/governance_trail_ci_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/pipeline_coverage_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/public_mirror_push_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/revert_scope_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/skill_cli_refint_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/strategic_fit_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance/workflow_transition_ownership_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/governance_freshness.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/hook.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/pm/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/pm/_config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/pm/_utils.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/pm/discovery_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/pm/icp_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/pm/jtbd_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/pm/ownership_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/protocol.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/release/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/release/version_group_consistent.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/api_schema_lock.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/auth_invariant.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/cage_profile_lint.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/cwd_topology.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/protocol_parity.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/spi_conformance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/sync/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/sync/sync_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/gates/worker_budget.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/git/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/git/branch_guard.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/governance/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/governance/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/governance/sync.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/governance_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/api_graph_read_backend.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/backends/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/backends/api.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/backends/dual.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/backends/pending.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/backends/sqlite.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/exceptions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/merge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/query_backend.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/graph/utils.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/handlers/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/harness_review/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/harness_review/adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/harness_review/claude_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/harness_review/detection.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/harness_review/pre_submission.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hook_bus/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hook_bus/emitter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hook_bus/events.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hook_bus/protocol.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hook_bus/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/graph_update.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/memory.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/pipeline_events.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/emitter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/events.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/git_commit_block.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/post_merge_staleness.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/posttooluse.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/pretooluse.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/protocol.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/hooks/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/git_diff.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/ownership.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/policy.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/recommendations.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/rendering.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/impact/report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/legacy/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/legacy/cleaner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/legacy/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/legacy/scanner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/legacy/snooze.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/mcp/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/mcp/bridge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/mcp/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/mcp/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/mcp/schema.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/mcp/workspace_config.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/api_patterns_backend.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/content_hash.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/dedup.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/frontmatter_extractor.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/hint_oracle.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/ingest_cartridge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/learning.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/migrate_claude.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/migration.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/pattern_evaluator.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/patterns_backend.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/portability.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/push.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/sync.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/memory/writer.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/mr_create_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/cartridges.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/claudemd.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/cli_commands.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/conventions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/detection.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/governance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/instructions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/instructions_check.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/manifest.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/manifest_validate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/merge_conventions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/migration.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/profile.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/profile_portability.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/purge.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/router.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/skill_conflict.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/skill_manifest.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/skills.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/onboarding/workflows.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/console.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/formatters/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/formatters/adapters.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/formatters/backlog_node.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/formatters/discover.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/formatters/graph.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/formatters/skill.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/output/symbols.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/_caller_context.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/_compact.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/_mcp_decorators.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/_mcp_instance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/_startup_checks.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/_telemetry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/agent_runtime_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/api_run_store.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/branch_guard.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/dispatch.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/engine.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/execution_context.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/executor.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/gates.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/lease_enforcement.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/lifecycle.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/loader.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_lifecycle.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_server.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_artifact.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_backlog.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_docs.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_fleet.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_gate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_graph.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_pattern.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_pipeline.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_story.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_task.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/bugfix-enterprise.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/bugfix-lean.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic-design-pdcv.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic-enterprise.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic-flat.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/initiative-enterprise.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/initiative.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/spike-enterprise.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/spike.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/story-enterprise.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/story-legacy.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/story.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/upgrade.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/prompt.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/provider_model.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/rai_header.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/resilient_run_store.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/run_store.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/skill_model.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/templates/adversarial-ar.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/templates/adversarial-qr.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/terminal_status.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/transitions.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/when.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/workflow_point_resolver.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/worktree.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/pipeline/worktree_lock.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/component_map.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/dependency/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/dependency/graph.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/derivation.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/dsm_render.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/git_attr.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/storage.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/portfolio/suggest.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/project.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/project_config/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/project_config/branches.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/project_config/manifest.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/project_config/manifest_validate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/project_config/types.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/publish/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/publish/changelog.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/publish/check.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/publish/version.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/quality/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/quality/classifier.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/quality/enrichment.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/quality/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/framework/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/backlog.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/prd.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/vision.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/core.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/core.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/perspective.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/memory/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/release_preflight.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/release_version.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/cfr.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/classification_models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/cohort.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/deployments.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/gate_escape.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/lens.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/multitrack.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/recommendations.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/rollup.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/session_condition.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/target_classifier.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/reliability/targets.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/schemas/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/schemas/journal.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/schemas/session_ledger.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/schemas/session_state.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/PROVIDERS.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/azdo_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/bitbucket_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/conflict_rules.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/github_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/gitlab_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/governance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/scm/propagation.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/self_update/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/self_update/manifest.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/self_update/updater.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/api_context_backend.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/bundle.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/bundle_data.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/bundle_formatters.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/bundle_governance.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/alias.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/catalog.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/models.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/reconcile.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/runtime.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/scope.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/catalog/source.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/close.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/connect.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/context_backend.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/context_env.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/derive.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/donor.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/identity.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/index.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/journal.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/ledger.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/lifecycle.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/measure.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/monitor.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/peek.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/prefix.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/protocols.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/qr_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/resolver.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/runner.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/scope.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/state.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/terminal.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/session/update_cache.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/locator.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/name_checker.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/parser.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/scaffold.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/schema.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/skillsets.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/sync.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills/validator.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/contract-template.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/preamble.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-adversarial-review/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-backlog-setup/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bug-file/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-close-lean/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-fix-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-fix-lean/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-pir/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-start-lean/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-cartridge-agent/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-corpus-curate/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-debug/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-discover/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-docs-setup/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-docs-setup-advanced/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-close-enterprise/templates/retrospective.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/design.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/scope.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-journal/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-predesign-evidence/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-start-enterprise/templates/brief.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-ux-design/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-forward-merge/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-initiative-delivering/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-initiative-shaped/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-kc-build/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mr-create/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mr-merge/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-onboard-repo/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-pipeline-run/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-pipeline-run-lean/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-project-create/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-project-upgrade/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-quality-review/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-critic/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-evidence/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-frame/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-scope/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-search/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-synthesize/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-verify/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-diary/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-orchestrator/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-start/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-skill-create/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-skillset-manage/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-spike-close/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-spike-journal/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-spike-start/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-close/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-design/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-review/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-start/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-start-enterprise/templates/story.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-welcome/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-worktree-open/SKILL.md +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/skills_base/skillsets/enterprise.yaml +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/cartridge_projection.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/connection.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/consolidate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/counter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/maintenance_lock.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/migrate.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/migrate_project_slug.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/pause_states.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/port_allocations.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/schema.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/schema_sum.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/work_items.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/work_items_outbox.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/storage/worktrees.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/story/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/story/close_service.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/story/open_service.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/task/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/task/complete_service.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/adapter_registry.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/attribution.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/audit.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/backfill.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/cc_adapter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/cost_report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/defect_attribution.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/emit_work.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/emitter.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/guardrails.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/phase_map.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/phase_report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/region_szz.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/root_cause.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/schemas.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/session_tokens.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/szz.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/token_daily.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/tool_cost.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/telemetry/trailer.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/testing/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/testing/profiling_plugin.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/testing/shadow_policy.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/testing/xdist_safety.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/tier/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/tier/context.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/version_report.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/viz/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/viz/generator.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_events/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_events/backfill.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_events/retry_queue.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_events/schemas.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_events/translator.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_item/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_item/close_service.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/work_item/open_service.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/workspace/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/workspace/readiness.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/worktree/__init__.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/worktree/base_resolver.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/worktree/provision.py +0 -0
- {raise_cli-3.1.3 → raise_cli-3.1.4}/src/raise_cli/worktree/prune.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: raise-cli
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.4
|
|
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
|
|
@@ -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.4
|
|
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.4"
|
|
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.4",
|
|
25
25
|
"typer>=0.12.0",
|
|
26
26
|
"rich>=13.7.0",
|
|
27
27
|
"pydantic>=2.6.0",
|
|
@@ -14,7 +14,6 @@ from __future__ import annotations
|
|
|
14
14
|
|
|
15
15
|
import contextlib
|
|
16
16
|
import logging
|
|
17
|
-
import re
|
|
18
17
|
from collections.abc import Callable
|
|
19
18
|
from datetime import UTC, datetime
|
|
20
19
|
from pathlib import Path
|
|
@@ -25,6 +24,7 @@ from pydantic import ValidationError
|
|
|
25
24
|
|
|
26
25
|
from raise_cli.adapters.errors import AdapterSyncError
|
|
27
26
|
from raise_cli.adapters.filesystem_models import BacklogItem
|
|
27
|
+
from raise_cli.adapters.id_utils import DEFAULT_ID_PATTERN, work_id_re
|
|
28
28
|
from raise_cli.adapters.models import (
|
|
29
29
|
AdapterHealth,
|
|
30
30
|
AttachmentDetail,
|
|
@@ -55,8 +55,6 @@ _RemoteAction = Callable[[Any, str], None]
|
|
|
55
55
|
|
|
56
56
|
MAX_RETRIES = 5
|
|
57
57
|
|
|
58
|
-
_JIRA_KEY_RE = re.compile(r"^[A-Z][A-Z0-9]*-\d+$")
|
|
59
|
-
|
|
60
58
|
|
|
61
59
|
class RemoteWriteOutcome(NamedTuple):
|
|
62
60
|
"""Return contract for ``_write_to_remotes_keyed`` (RAISE-12598).
|
|
@@ -91,12 +89,14 @@ class CompositeBacklogAdapter:
|
|
|
91
89
|
pending: PendingOpsLog,
|
|
92
90
|
*,
|
|
93
91
|
server_first: bool = False,
|
|
92
|
+
id_pattern: str = DEFAULT_ID_PATTERN,
|
|
94
93
|
) -> None:
|
|
95
94
|
self._local = adapters[0]
|
|
96
95
|
self._remotes = adapters[1:]
|
|
97
96
|
self._wi_store = wi_store
|
|
98
97
|
self._pending = pending
|
|
99
98
|
self._server_first = server_first
|
|
99
|
+
self._id_re = work_id_re(id_pattern)
|
|
100
100
|
|
|
101
101
|
@property
|
|
102
102
|
def remotes(self) -> list[Any]:
|
|
@@ -1104,7 +1104,7 @@ class CompositeBacklogAdapter:
|
|
|
1104
1104
|
remote_key = self._wi_store.get_jira_key(local_key)
|
|
1105
1105
|
if remote_key is None:
|
|
1106
1106
|
if self._local_has_key(local_key):
|
|
1107
|
-
if
|
|
1107
|
+
if self._id_re.match(local_key):
|
|
1108
1108
|
# Auto-heal: local key IS a remote key (migrated/imported
|
|
1109
1109
|
# item with NULL jira_key). Self-map and pass through.
|
|
1110
1110
|
remote_key = local_key
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
r"""Utility for configurable work-item ID regex — RAISE-18508.
|
|
2
|
+
|
|
3
|
+
Centralizes the pattern used to validate work-item keys across gates,
|
|
4
|
+
pipeline modules, and adapters. Callers compile the regex once via
|
|
5
|
+
``work_id_re`` and should NOT hardcode ``[A-Z][A-Z0-9]*-\\d+`` directly.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import re
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
DEFAULT_ID_PATTERN: str = r"[A-Z][A-Z0-9]*-\d+"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def work_id_re(pattern: str) -> re.Pattern[str]:
|
|
17
|
+
"""Return a compiled regex for the given work-item ID pattern."""
|
|
18
|
+
return re.compile(pattern)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def load_id_pattern(project_root: Path) -> str:
|
|
22
|
+
"""Read ``id_pattern`` from ``.raise/backlog.yaml``.
|
|
23
|
+
|
|
24
|
+
Returns ``DEFAULT_ID_PATTERN`` on any error (missing file, invalid YAML,
|
|
25
|
+
adapter not found) so callers never need to handle the failure.
|
|
26
|
+
"""
|
|
27
|
+
try:
|
|
28
|
+
from raise_cli.adapters.backlog_config import (
|
|
29
|
+
get_configured_adapters,
|
|
30
|
+
load_backlog_config,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
adapters = get_configured_adapters(project_root)
|
|
34
|
+
if not adapters:
|
|
35
|
+
return DEFAULT_ID_PATTERN
|
|
36
|
+
adapter_name = next(iter(adapters))
|
|
37
|
+
cfg = load_backlog_config(project_root, adapter_name)
|
|
38
|
+
re.compile(cfg.id_pattern) # validate — re.error falls through to except
|
|
39
|
+
return cfg.id_pattern
|
|
40
|
+
except Exception: # noqa: BLE001 — fail-open: always return a usable pattern
|
|
41
|
+
return DEFAULT_ID_PATTERN
|
|
@@ -189,6 +189,16 @@ _CONFIG_HEADER = """\
|
|
|
189
189
|
# organizations.<name>.url: tool endpoint domain
|
|
190
190
|
# projects.<key>.org: which organization owns this project
|
|
191
191
|
#
|
|
192
|
+
# id_pattern: optional regex for work-item IDs (default: Jira format [A-Z][A-Z0-9]*-\\d+)
|
|
193
|
+
# Override when your project uses non-Jira IDs (e.g. E14, S1.1, BUG-ALR-01).
|
|
194
|
+
# Example patterns:
|
|
195
|
+
# Jira (default): '[A-Z][A-Z0-9]*-\\d+'
|
|
196
|
+
# Epics only: 'E\\d+'
|
|
197
|
+
# Stories only: 'S\\d+\\.\\d+'
|
|
198
|
+
# Multi-segment: '[A-Z]+-[A-Z]+-\\d+'
|
|
199
|
+
# Uncomment and set under the adapter section (e.g. under jira:):
|
|
200
|
+
# # id_pattern: 'E\\d+'
|
|
201
|
+
#
|
|
192
202
|
"""
|
|
193
203
|
|
|
194
204
|
|
|
@@ -530,6 +530,14 @@ class BacklogAdapterConfig(BaseModel, frozen=True):
|
|
|
530
530
|
default_factory=dict,
|
|
531
531
|
description="Issue type → key prefix (e.g. Epic → e, Story → s). Populated by issue-types discover.",
|
|
532
532
|
)
|
|
533
|
+
id_pattern: str = Field(
|
|
534
|
+
default=r"[A-Z][A-Z0-9]*-\d+",
|
|
535
|
+
description=(
|
|
536
|
+
"Regex pattern for work-item ID validation (RAISE-18508). "
|
|
537
|
+
"Default matches Jira-style keys (e.g. RAISE-123). "
|
|
538
|
+
"Override for non-Jira systems: e.g. 'E\\d+' for InterWare."
|
|
539
|
+
),
|
|
540
|
+
)
|
|
533
541
|
|
|
534
542
|
@model_validator(mode="before")
|
|
535
543
|
@classmethod
|
|
@@ -245,8 +245,14 @@ def _compose_pm_adapters(
|
|
|
245
245
|
# Consulta env vars + ~/.rai/server.json (vía get_server_credentials).
|
|
246
246
|
# El código anterior solo leía env vars, ignorando rai connect → server.json.
|
|
247
247
|
server_first = get_server_credentials() is not None
|
|
248
|
+
from raise_cli.adapters.id_utils import load_id_pattern
|
|
249
|
+
|
|
248
250
|
return CompositeBacklogAdapter(
|
|
249
|
-
instances,
|
|
251
|
+
instances,
|
|
252
|
+
wi_store,
|
|
253
|
+
pending,
|
|
254
|
+
server_first=server_first,
|
|
255
|
+
id_pattern=load_id_pattern(root),
|
|
250
256
|
)
|
|
251
257
|
|
|
252
258
|
|
|
@@ -22,13 +22,14 @@ from pydantic import BaseModel
|
|
|
22
22
|
|
|
23
23
|
from raise_cli.adapters.filesystem import FilesystemPMAdapter
|
|
24
24
|
from raise_cli.adapters.filesystem_models import BacklogItem
|
|
25
|
+
from raise_cli.adapters.id_utils import DEFAULT_ID_PATTERN, work_id_re
|
|
25
26
|
from raise_cli.adapters.key_gen import issue_type_to_work_item_type
|
|
26
27
|
from raise_cli.storage.work_items import WorkItem, WorkItemStore
|
|
27
28
|
|
|
28
29
|
# D5: strict wire-key shape. Excludes local-only keys (E1, S1.1) and
|
|
29
30
|
# hex-suffixed staged keys (TMP-7D983BB0) that `_save_item`'s looser
|
|
30
|
-
# `not key.startswith("e")` heuristic would mis-tag as
|
|
31
|
-
_WIRE_KEY_RE =
|
|
31
|
+
# `not key.startswith("e")` heuristic would mis-tag as remote keys.
|
|
32
|
+
_WIRE_KEY_RE = work_id_re(DEFAULT_ID_PATTERN)
|
|
32
33
|
|
|
33
34
|
# D11: work_items columns eligible for the fill-only-empty update rule,
|
|
34
35
|
# in a fixed order so `MigrationAction.fields` is deterministic.
|
|
@@ -45,9 +46,9 @@ _FILL_ONLY_EMPTY_FIELDS: tuple[str, ...] = (
|
|
|
45
46
|
)
|
|
46
47
|
|
|
47
48
|
|
|
48
|
-
def _wire_key(key: str | None) -> str | None:
|
|
49
|
+
def _wire_key(key: str | None, *, id_re: re.Pattern[str] = _WIRE_KEY_RE) -> str | None:
|
|
49
50
|
"""Return *key* iff it strictly matches the wire-key shape (D5), else None."""
|
|
50
|
-
if key and
|
|
51
|
+
if key and id_re.fullmatch(key):
|
|
51
52
|
return key
|
|
52
53
|
return None
|
|
53
54
|
|
|
@@ -2008,13 +2008,14 @@ def _find_stale_cartridges(
|
|
|
2008
2008
|
current_fps = {n.id: compute_fp(n.id, n.content, spec) for n in nodes}
|
|
2009
2009
|
deleted_ids = set(existing_fps) - {n.id for n in nodes}
|
|
2010
2010
|
changed = any(current_fps[n.id] != existing_fps.get(n.id) for n in nodes)
|
|
2011
|
-
|
|
2011
|
+
existing_embeddings = _load_existing_embeddings(instances_dir)
|
|
2012
|
+
if not changed and not deleted_ids and existing_fps and existing_embeddings:
|
|
2012
2013
|
continue
|
|
2013
2014
|
work_items.append(
|
|
2014
2015
|
(
|
|
2015
2016
|
instances_dir,
|
|
2016
2017
|
nodes,
|
|
2017
|
-
|
|
2018
|
+
existing_embeddings,
|
|
2018
2019
|
existing_fps,
|
|
2019
2020
|
)
|
|
2020
2021
|
)
|
|
@@ -1245,7 +1245,10 @@ def _scaffold_per_agent(
|
|
|
1245
1245
|
|
|
1246
1246
|
claude_memory = get_claude_memory_path(project_path)
|
|
1247
1247
|
claude_memory.parent.mkdir(parents=True, exist_ok=True)
|
|
1248
|
-
claude_memory.
|
|
1248
|
+
if not claude_memory.exists() or force:
|
|
1249
|
+
claude_memory.write_text(memory_content, encoding="utf-8")
|
|
1250
|
+
else:
|
|
1251
|
+
logger.debug("Kept (exists): %s", claude_memory)
|
|
1249
1252
|
|
|
1250
1253
|
plugin.post_init(project_path, config)
|
|
1251
1254
|
|
|
@@ -961,6 +961,13 @@ def start( # noqa: C901
|
|
|
961
961
|
typer.echo(f"▶ Session {session_id}{display_name} started ({agent_name})")
|
|
962
962
|
else:
|
|
963
963
|
typer.echo(f"▶ Session started ({agent_name})")
|
|
964
|
+
lease = payload.session_lease
|
|
965
|
+
if lease is not None and lease.get("reason") == "unregistered":
|
|
966
|
+
typer.echo(
|
|
967
|
+
"⚠ This worktree is not registered, so no session lease was taken"
|
|
968
|
+
f" — run `{lease.get('hint', 'rai worktree register')}` and reopen"
|
|
969
|
+
" the session."
|
|
970
|
+
)
|
|
964
971
|
|
|
965
972
|
|
|
966
973
|
@session_app.command()
|
|
@@ -10,11 +10,41 @@ import logging
|
|
|
10
10
|
import os
|
|
11
11
|
from pathlib import Path
|
|
12
12
|
|
|
13
|
-
from raise_cli.storage.leases import SqliteLeaseStore
|
|
13
|
+
from raise_cli.storage.leases import Lease, SqliteLeaseStore
|
|
14
|
+
from raise_cli.storage.worktrees import (
|
|
15
|
+
SqliteWorktreeStore,
|
|
16
|
+
Worktree,
|
|
17
|
+
WorktreeNotFoundError,
|
|
18
|
+
)
|
|
14
19
|
|
|
15
20
|
_log = logging.getLogger(__name__)
|
|
16
21
|
|
|
17
22
|
|
|
23
|
+
def usable_worktree(lease: Lease, wt_store: SqliteWorktreeStore) -> Worktree | None:
|
|
24
|
+
"""Return the lease's worktree when it is a usable binding target, else None.
|
|
25
|
+
|
|
26
|
+
Usable means: the registry row exists, its status is not ``closed`` and
|
|
27
|
+
its directory exists on disk (RAISE-18504). A missing row (orphan lease)
|
|
28
|
+
answers None, accepted behaviour change vs the old fail-open: the
|
|
29
|
+
hook now skips it and may bind an older usable sibling lease.
|
|
30
|
+
|
|
31
|
+
Deliberately does NOT evaluate pid liveness (that is the lease store's
|
|
32
|
+
``pid_alive`` filter; the MCP-pid caveat is RAISE-18043) nor lease expiry
|
|
33
|
+
(no TTL on the read path; an expired lease with a live holder still
|
|
34
|
+
binds; a policy decision belonging to the ADR). This is the seam where
|
|
35
|
+
a future shared predicate extends.
|
|
36
|
+
|
|
37
|
+
Lookup errors other than "row absent" propagate so callers fail open.
|
|
38
|
+
"""
|
|
39
|
+
try:
|
|
40
|
+
wt = wt_store.get_by_name(lease.worktree_id)
|
|
41
|
+
except WorktreeNotFoundError:
|
|
42
|
+
return None
|
|
43
|
+
if wt.status == "closed" or not Path(wt.path).is_dir():
|
|
44
|
+
return None
|
|
45
|
+
return wt
|
|
46
|
+
|
|
47
|
+
|
|
18
48
|
def acquire_session_lease(
|
|
19
49
|
store: SqliteLeaseStore,
|
|
20
50
|
worktree_id: str,
|
|
@@ -26,9 +56,15 @@ def acquire_session_lease(
|
|
|
26
56
|
the call is a no-op (does not raise — session open is not the place
|
|
27
57
|
to hard-block).
|
|
28
58
|
|
|
29
|
-
|
|
59
|
+
A same-session live holder is renewed (heartbeat + expiry, pid
|
|
60
|
+
preserved) so a reopen makes this worktree the session's most recent
|
|
61
|
+
one (RAISE-18504); the renew result is returned (False on a lost race).
|
|
62
|
+
|
|
63
|
+
Returns True if a lease was acquired or renewed.
|
|
30
64
|
"""
|
|
31
65
|
holder = store.get_live_or_reap(worktree_id)
|
|
66
|
+
if holder is not None and holder.session_id == session_id:
|
|
67
|
+
return store.renew(worktree_id, session_id=session_id)
|
|
32
68
|
if holder is not None:
|
|
33
69
|
_log.info(
|
|
34
70
|
"Worktree '%s' already held by session '%s' (pid %d) — skipping lease",
|
|
@@ -15,8 +15,9 @@ import logging
|
|
|
15
15
|
import sys
|
|
16
16
|
from pathlib import Path
|
|
17
17
|
|
|
18
|
+
from raise_cli.cockpit.session_lease import usable_worktree
|
|
18
19
|
from raise_cli.storage.leases import SqliteLeaseStore
|
|
19
|
-
from raise_cli.storage.worktrees import SqliteWorktreeStore
|
|
20
|
+
from raise_cli.storage.worktrees import SqliteWorktreeStore
|
|
20
21
|
|
|
21
22
|
_log = logging.getLogger(__name__)
|
|
22
23
|
|
|
@@ -38,17 +39,17 @@ class LocalCoordinationStore:
|
|
|
38
39
|
"""Return the worktree path leased by *session_id*, or None.
|
|
39
40
|
|
|
40
41
|
When a session holds several leases (parent + an ``isolation:
|
|
41
|
-
worktree`` subagent sharing its session id and pid), the
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
worktree`` subagent sharing its session id and pid), the most
|
|
43
|
+
recent heartbeat wins — RAISE-17602. Leases whose worktree is
|
|
44
|
+
unusable (row gone, ``closed`` or directory missing —
|
|
45
|
+
``usable_worktree``) are skipped and the next older one binds
|
|
46
|
+
(RAISE-18504); none usable answers None so the hook fails open.
|
|
44
47
|
"""
|
|
45
|
-
lease
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
except WorktreeNotFoundError:
|
|
51
|
-
return None
|
|
48
|
+
for lease in self._leases.iter_live_for_session(session_id):
|
|
49
|
+
wt = usable_worktree(lease, self._worktrees)
|
|
50
|
+
if wt is not None:
|
|
51
|
+
return str(wt.path)
|
|
52
|
+
return None
|
|
52
53
|
|
|
53
54
|
def get_repo_root(self) -> str:
|
|
54
55
|
"""Return the project root as the repo boundary."""
|
|
@@ -94,7 +95,9 @@ def evaluate_pretooluse(
|
|
|
94
95
|
print(
|
|
95
96
|
f"[cwd-binding] BLOCKED: write to {target_path} rejected.\n"
|
|
96
97
|
f" Session '{session_id}' is leased to a different worktree.\n"
|
|
97
|
-
f" Only writes inside your leased worktree are allowed
|
|
98
|
+
f" Only writes inside your leased worktree are allowed.\n"
|
|
99
|
+
f" Working in a new worktree? Register it (`rai worktree register`)"
|
|
100
|
+
f" and reopen the session (`rai session start`).",
|
|
98
101
|
file=sys.stderr,
|
|
99
102
|
)
|
|
100
103
|
return 2
|
|
@@ -109,7 +109,7 @@ class GraphAnnotationAlwaysNullColumnCheck(DoctorCheck):
|
|
|
109
109
|
always_null: list[str] = []
|
|
110
110
|
for col in columns:
|
|
111
111
|
non_null = conn.execute(
|
|
112
|
-
f"SELECT COUNT(*) FROM graph_node_annotations WHERE {col} IS NOT NULL" # noqa: S608 # nosec B608 — col
|
|
112
|
+
f"SELECT COUNT(*) FROM graph_node_annotations WHERE {col} IS NOT NULL" # noqa: S608 # nosec B608 — col comes from PRAGMA table_info on the local trusted DB
|
|
113
113
|
).fetchone()[0]
|
|
114
114
|
if non_null == 0:
|
|
115
115
|
always_null.append(col)
|
|
@@ -34,14 +34,18 @@ def register_fix(
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
@register_fix("rebuild-graph")
|
|
37
|
-
def rebuild_graph(working_dir: Path) -> bool:
|
|
37
|
+
def rebuild_graph(working_dir: Path, timeout: int = 1800) -> bool:
|
|
38
38
|
"""Rebuild the knowledge graph by invoking ``rai graph build``."""
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
try:
|
|
40
|
+
result = subprocess.run(
|
|
41
|
+
[*get_rai_executable(), "graph", "build"],
|
|
42
|
+
cwd=working_dir,
|
|
43
|
+
capture_output=True,
|
|
44
|
+
text=True,
|
|
45
|
+
timeout=timeout,
|
|
46
|
+
)
|
|
47
|
+
except (subprocess.TimeoutExpired, OSError):
|
|
48
|
+
return False
|
|
45
49
|
return result.returncode == 0
|
|
46
50
|
|
|
47
51
|
|
|
@@ -33,12 +33,12 @@ import subprocess
|
|
|
33
33
|
from pathlib import Path
|
|
34
34
|
from typing import ClassVar
|
|
35
35
|
|
|
36
|
+
from raise_cli.adapters.id_utils import load_id_pattern, work_id_re
|
|
36
37
|
from raise_cli.gates.models import GateContext, GateResult
|
|
37
38
|
|
|
38
39
|
_SKIP_ENV = "RAISE_GOVERNANCE_SKIP_REASON"
|
|
39
40
|
_STORY_RE = re.compile(r"^story/(s\d+(?:\.\d+)?)/")
|
|
40
|
-
_STORY_KEY_RE
|
|
41
|
-
_BUG_RE = re.compile(r"^bug/([A-Z][A-Z0-9]*-\d+)/")
|
|
41
|
+
# _STORY_KEY_RE and _BUG_RE are now compiled per-evaluate from id_pattern (RAISE-18508)
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
def _git_branch(working_dir: Path) -> str:
|
|
@@ -84,6 +84,10 @@ class GovernanceArtifactsGate:
|
|
|
84
84
|
)
|
|
85
85
|
|
|
86
86
|
branch = _git_branch(context.working_dir)
|
|
87
|
+
_id_pattern = load_id_pattern(context.working_dir)
|
|
88
|
+
_id_re = work_id_re(_id_pattern)
|
|
89
|
+
_story_key_re = re.compile(rf"^story/({_id_re.pattern})/")
|
|
90
|
+
_bug_re = re.compile(rf"^bug/({_id_re.pattern})/")
|
|
87
91
|
|
|
88
92
|
story_m = _STORY_RE.match(branch)
|
|
89
93
|
if story_m:
|
|
@@ -104,7 +108,7 @@ class GovernanceArtifactsGate:
|
|
|
104
108
|
),
|
|
105
109
|
)
|
|
106
110
|
|
|
107
|
-
story_key_m =
|
|
111
|
+
story_key_m = _story_key_re.match(branch)
|
|
108
112
|
if story_key_m:
|
|
109
113
|
story_key = story_key_m.group(1)
|
|
110
114
|
if _find_story_scope(context.working_dir, story_key) or _find_bug_scope(
|
|
@@ -126,7 +130,7 @@ class GovernanceArtifactsGate:
|
|
|
126
130
|
),
|
|
127
131
|
)
|
|
128
132
|
|
|
129
|
-
bug_m =
|
|
133
|
+
bug_m = _bug_re.match(branch)
|
|
130
134
|
if bug_m:
|
|
131
135
|
bug_key = bug_m.group(1)
|
|
132
136
|
if _find_bug_scope(context.working_dir, bug_key):
|
|
@@ -35,6 +35,7 @@ from dataclasses import dataclass
|
|
|
35
35
|
from pathlib import Path
|
|
36
36
|
from typing import TYPE_CHECKING, ClassVar, Protocol
|
|
37
37
|
|
|
38
|
+
from raise_cli.adapters.id_utils import load_id_pattern, work_id_re
|
|
38
39
|
from raise_cli.gates.models import GateContext, GateResult
|
|
39
40
|
from raise_cli.release_preflight import ReleasePreflightResult, run_release_preflight
|
|
40
41
|
|
|
@@ -45,7 +46,7 @@ logger = logging.getLogger(__name__)
|
|
|
45
46
|
|
|
46
47
|
_SKIP_ENV = "RAISE_CLOSE_SYNC_SKIP"
|
|
47
48
|
_ISSUE_RE = re.compile(r"(?:bug|story)/(RAISE-\d+)/")
|
|
48
|
-
_JIRA_KEY_RE
|
|
49
|
+
# _JIRA_KEY_RE is now compiled per-evaluate from id_pattern (RAISE-18508)
|
|
49
50
|
|
|
50
51
|
|
|
51
52
|
class AmbiguousMergeTargetError(Exception):
|
|
@@ -391,8 +392,9 @@ class CloseSyncVerificationGate:
|
|
|
391
392
|
message=f"Close-sync check skipped: {skip_reason}",
|
|
392
393
|
)
|
|
393
394
|
|
|
395
|
+
_key_re = work_id_re(load_id_pattern(context.working_dir))
|
|
394
396
|
issue_key = context.issue_id
|
|
395
|
-
if issue_key is not None and
|
|
397
|
+
if issue_key is not None and _key_re.fullmatch(issue_key) is None:
|
|
396
398
|
return GateResult(
|
|
397
399
|
passed=False,
|
|
398
400
|
gate_id=self.gate_id,
|
|
@@ -15,7 +15,7 @@ GENERATED_GRAPH_OUTPUTS: tuple[str, ...] = (
|
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
# Cartridge instance embedding caches (RAISE-15996) — regenerable via
|
|
18
|
-
# `rai
|
|
18
|
+
# `rai graph build`, never committed. A glob pathspec (rather than a
|
|
19
19
|
# per-cartridge path list) so newly added cartridges are covered without
|
|
20
20
|
# an edit here.
|
|
21
21
|
GENERATED_EMBEDDING_CACHES: tuple[str, ...] = ("*.npy",)
|
|
@@ -19,7 +19,7 @@ _FRONTMATTER_RE = re.compile(r"^---\s*\n(.*?)\n---", re.DOTALL)
|
|
|
19
19
|
_HEADER = """\
|
|
20
20
|
# Memory Index
|
|
21
21
|
|
|
22
|
-
> Auto-generated by `rai
|
|
22
|
+
> Auto-generated by `rai memory ingest --apply`. Do not edit manually.
|
|
23
23
|
"""
|
|
24
24
|
|
|
25
25
|
_TYPE_SECTIONS: dict[str, str] = {
|
|
@@ -46,7 +46,8 @@ def _passes_tier1(entry: dict[str, str], *, is_active_scope: bool) -> bool:
|
|
|
46
46
|
``missions/{active_mission_id}/``), or ``critical: true``,
|
|
47
47
|
or ``mtime`` is within ``_PROJECT_ACTIVE_DAYS``, else
|
|
48
48
|
Tier-2
|
|
49
|
-
feedback -> Tier-1
|
|
49
|
+
feedback -> Tier-1 by default (opt-OUT); only Tier-2 when
|
|
50
|
+
``critical: false`` is present explicitly (RAISE-18600)
|
|
50
51
|
|
|
51
52
|
Tier-2 is NOT automatically recoverable via ``hint_oracle.get_hints`` —
|
|
52
53
|
that queries the knowledge graph, which only sees a demoted note after
|
|
@@ -55,11 +56,10 @@ def _passes_tier1(entry: dict[str, str], *, is_active_scope: bool) -> bool:
|
|
|
55
56
|
the mitigation until/unless that ingest is wired into this flow.
|
|
56
57
|
|
|
57
58
|
The ``critical`` flag is the one deliberate, additive departure from "no
|
|
58
|
-
new frontmatter field v1"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
demoted, never silently promoted.
|
|
59
|
+
new frontmatter field v1". For ``feedback``, the field is optional and
|
|
60
|
+
defaults to Tier-1 when absent (opt-OUT, RAISE-18600) — Claude Code
|
|
61
|
+
auto-memory never writes ``critical``, so opt-IN silently dropped all
|
|
62
|
+
notes. Only ``critical: false`` explicitly demotes a feedback note.
|
|
63
63
|
|
|
64
64
|
RAISE-16217: ``project`` reuses the same ``critical`` flag as an escape
|
|
65
65
|
hatch from the mtime check — mtime measures when the file was written,
|
|
@@ -74,7 +74,9 @@ def _passes_tier1(entry: dict[str, str], *, is_active_scope: bool) -> bool:
|
|
|
74
74
|
if mem_type == "reference":
|
|
75
75
|
return False
|
|
76
76
|
if mem_type == "feedback":
|
|
77
|
-
|
|
77
|
+
# RAISE-18600: opt-OUT — Tier-1 by default; only demote when critical: false is explicit.
|
|
78
|
+
# Claude Code auto-memory never writes the critical field, so opt-IN silently dropped all notes.
|
|
79
|
+
return entry.get("critical", "").strip().lower() != "false"
|
|
78
80
|
if mem_type == "project":
|
|
79
81
|
if is_active_scope:
|
|
80
82
|
return True
|
|
@@ -133,7 +135,15 @@ def regenerate_memory_index(
|
|
|
133
135
|
|
|
134
136
|
result = "\n".join(lines).rstrip() + "\n"
|
|
135
137
|
memory_dir.mkdir(parents=True, exist_ok=True)
|
|
136
|
-
|
|
138
|
+
memory_file = memory_dir / "MEMORY.md"
|
|
139
|
+
if memory_file.exists():
|
|
140
|
+
backup_dir = memory_dir / "_backup"
|
|
141
|
+
backup_dir.mkdir(exist_ok=True)
|
|
142
|
+
backup_name = f"MEMORY.md.{int(time.time())}"
|
|
143
|
+
(backup_dir / backup_name).write_text(
|
|
144
|
+
memory_file.read_text(encoding="utf-8"), encoding="utf-8"
|
|
145
|
+
)
|
|
146
|
+
memory_file.write_text(result, encoding="utf-8")
|
|
137
147
|
return result
|
|
138
148
|
|
|
139
149
|
|
|
@@ -17,6 +17,7 @@ Example:
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
19
|
import logging
|
|
20
|
+
from datetime import UTC, datetime
|
|
20
21
|
from importlib.resources import files
|
|
21
22
|
from importlib.resources.abc import Traversable
|
|
22
23
|
from pathlib import Path
|
|
@@ -516,10 +517,12 @@ def sync_methodology(project_root: Path) -> bool:
|
|
|
516
517
|
framework_dir = get_framework_dir(project_root)
|
|
517
518
|
dest = framework_dir / "methodology.yaml"
|
|
518
519
|
|
|
520
|
+
backup: Path | None = None
|
|
519
521
|
if dest.exists():
|
|
522
|
+
installed_text = dest.read_text(encoding="utf-8")
|
|
520
523
|
try:
|
|
521
|
-
installed_data = yaml.safe_load(
|
|
522
|
-
installed_version = (installed_data or {}).get("version", 0) or 0
|
|
524
|
+
installed_data = yaml.safe_load(installed_text)
|
|
525
|
+
installed_version = int((installed_data or {}).get("version", 0) or 0)
|
|
523
526
|
except Exception: # noqa: BLE001 — intentional broad catch (grandfathered at BLE001 enablement, RAISE-15490)
|
|
524
527
|
installed_version = 0
|
|
525
528
|
|
|
@@ -527,7 +530,16 @@ def sync_methodology(project_root: Path) -> bool:
|
|
|
527
530
|
logger.debug("Methodology already current (v%d)", installed_version)
|
|
528
531
|
return False
|
|
529
532
|
|
|
533
|
+
# Create timestamped backup before overwriting — RAISE-18509
|
|
534
|
+
timestamp = datetime.now(tz=UTC).strftime("%Y%m%d-%H%M%S")
|
|
535
|
+
backup = dest.with_name(f"{dest.name}.bak.{timestamp}")
|
|
536
|
+
backup.write_text(installed_text, encoding="utf-8")
|
|
537
|
+
|
|
530
538
|
dest.parent.mkdir(parents=True, exist_ok=True)
|
|
531
539
|
dest.write_text(package_content, encoding="utf-8")
|
|
532
|
-
logger.
|
|
540
|
+
logger.info(
|
|
541
|
+
"Methodology updated to v%d%s",
|
|
542
|
+
package_version,
|
|
543
|
+
f" (backup: {backup})" if backup else "",
|
|
544
|
+
)
|
|
533
545
|
return True
|
|
@@ -104,7 +104,7 @@ class MemoryMdGenerator:
|
|
|
104
104
|
def _add_footer(self, lines: list[str]) -> None:
|
|
105
105
|
"""Add document footer with timestamp."""
|
|
106
106
|
lines.append(f"*Last updated: {date.today().isoformat()}*")
|
|
107
|
-
lines.append("*Generated by `rai
|
|
107
|
+
lines.append("*Generated by `rai init`*")
|
|
108
108
|
lines.append("")
|
|
109
109
|
|
|
110
110
|
# =========================================================================
|