raise-cli 3.1.2__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.2 → raise_cli-3.1.4}/PKG-INFO +2 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/pyproject.toml +5 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/__main__.py +24 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/backlog_config.py +16 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/composite_pm.py +4 -4
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem.py +2 -2
- raise_cli-3.1.4/src/raise_cli/adapters/id_utils.py +41 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_config_gen.py +10 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/key_gen.py +11 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/models/pm.py +8 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/resolve.py +7 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/sqlite_pm.py +12 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/claude_plugin.py +5 -9
- raise_cli-3.1.4/src/raise_cli/artifacts/html_to_md.py +115 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/migrate.py +5 -4
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/backlog.py +67 -43
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/clean.py +4 -4
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/ddd.py +3 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/docs.py +105 -17
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/graph.py +6 -4
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/init.py +4 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/ledger.py +19 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/release.py +44 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/self_update.py +2 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/session.py +8 -3
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/session_lease.py +38 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/sessions.py +1 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cwd_binding.py +15 -12
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/clustering.py +87 -6
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/escalation.py +12 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/persistence.py +35 -9
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical_prompts.py +9 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/type_cmd.py +17 -8
- raise_cli-3.1.4/src/raise_cli/doctor/checks/environment.py +285 -0
- raise_cli-3.1.4/src/raise_cli/doctor/checks/graph_annotations.py +232 -0
- raise_cli-3.1.4/src/raise_cli/doctor/checks/hooks.py +253 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/fix.py +11 -7
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/runner.py +3 -3
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/_runner.py +195 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/types_tests_advisory.py +9 -3
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/capability/capability_overlap.py +2 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/baseline.py +32 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/dead_public_api.py +2 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/post_refactor_orphan.py +2 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/execution.py +2 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/artifacts_gate.py +8 -4
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/close_sync_gate.py +137 -7
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/governance_trail_ci_gate.py +17 -13
- raise_cli-3.1.4/src/raise_cli/gates/governance/revert_scope_gate.py +168 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/repository_hygiene.py +14 -3
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/api_schema_lock.py +18 -9
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/backends/sqlite.py +21 -10
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/harness_review/claude_adapter.py +12 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/graph_update.py +1 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/memory_index.py +19 -9
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/bootstrap.py +15 -3
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/memory_md.py +1 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/engine.py +6 -51
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/epic_story_iteration.py +70 -28
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/lifecycle.py +6 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/loader.py +19 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_pipeline.py +148 -10
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_session.py +16 -10
- raise_cli-3.1.4/src/raise_cli/pipeline/when.py +112 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/project_config/__init__.py +2 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/project_config/branches.py +213 -7
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/lens.py +6 -5
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/targets.py +65 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/propagation.py +52 -11
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/self_update/updater.py +22 -5
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/derive.py +113 -11
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/doctor.py +92 -41
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/open_service.py +105 -18
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +10 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-close-enterprise/SKILL.md +20 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mr-create/SKILL.md +14 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mr-merge/SKILL.md +13 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-run/SKILL.md +3 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-spike-journal/SKILL.md +22 -15
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-worktree-close/SKILL.md +3 -3
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/leases.py +12 -2
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/schema.py +136 -1
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/work_items.py +14 -4
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_events/ref_resolver.py +7 -7
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_item/open_service.py +12 -1
- raise_cli-3.1.2/src/raise_cli/doctor/checks/environment.py +0 -110
- raise_cli-3.1.2/src/raise_cli/doctor/checks/hooks.py +0 -99
- {raise_cli-3.1.2 → raise_cli-3.1.4}/.gitignore +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/README.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/_agent_session.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/_cc_session.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/composite_docs.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_client.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_config_gen.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_discovery.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_exceptions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/confluence_markdown.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/discovery.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/expressions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/declarative/schema.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/errors.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem_docs.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/filesystem_models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/google_drive_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/google_drive_exceptions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/graph_refresh.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_adf.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_client.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_discovery.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/jira_exceptions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/ledger_aware.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/llm_enrichment.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/mcp_bridge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/models/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/models/docs.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/models/governance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/models/health.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/models/sync.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/oauth_token.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/pending_ops.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/platform_docs.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/protocols.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/sync.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/adapters/types_config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/antigravity.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/bob.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/bob_plugin.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/claude.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/codex.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/codex_plugin.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/copilot.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/copilot_plugin.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/cursor.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/devin.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/devin_plugin.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/hermes.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/kimi.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/kimi_plugin.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/mcp_template.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/roo.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/agents/windsurf.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/artifacts/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/artifacts/identity.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/artifacts/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/artifacts/render.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/artifacts/store.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/auth/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/auth/google.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/close_drift.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/hooks.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/merge_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/mr_classify.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/reconcile.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/scanner.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/seed.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/backlog/sync.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/calibration/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/calibration/merge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/calibration/server_client.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges/cli.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges/formatter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges/secret_scan.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges/server_client.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges/server_install.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges/server_models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/instances/ontology.json +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/management-ontology/instances/practices.json +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/glossary.json +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/ontology.json +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/practices.json +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-methodology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-methodology/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cartridges_base/raise-methodology/instances/methodology.json +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_graph_fields.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_graph_filter_parser.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_resolve.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/_server_write.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/adapter_route.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/adapter_setup.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/adapters.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/artifact.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/auth.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/backlog_migrate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/base.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/bot.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/connect.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/db.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/dev.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/discover.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/distillation.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/docs_architecture.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/docs_type.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/doctor.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/drift.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/fleet.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/forward_merge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/governance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/hook.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/impact.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/info.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/journal.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/learn.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/manifest.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/mcp.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/memory.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/onboard.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/pattern.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/pipeline.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/portfolio.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/profile.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/project.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/quality.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/reliability.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/repo.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/schema.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/scm.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/scm_review.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/self_upgrade.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/signal.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/skill.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/skill_set.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/story.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/telemetry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/whoami.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/commands/worktree.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/error_handler.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/extensions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cli/main.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/agent.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/app.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/data.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/env.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/filter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/launch.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/pipeline_view.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/protocols.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/state.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tokens.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/app.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/command.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/confirm.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/help.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/logs.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/screens/new_session.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/services.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/sources.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/styles.tcss +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/theme.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/degraded_banner.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/detail_panel.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/filter_bar.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/recovery_menu.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/session_rail.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/tui/widgets/top_bar.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/types.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/cockpit/worktree_ops.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compat.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compliance/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compliance/controls.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compliance/evidence.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compliance/extractors/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compliance/extractors/git.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compliance/loader.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/compliance/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/agent_plugin.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/agent_registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/agents.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/ide.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/org_binding.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/paths.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/repo_binding.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/server.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/config/settings.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/protocol.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/python.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/signals.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/analyzers/typescript.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/builder.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/diff.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/drift.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/extractors/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/extractors/relationships.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/extractors/skills.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/extractors/structure.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/freshness.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/architecture.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/components.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/documents.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/guardrails.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/identity.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/memory.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/symbols.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/context/loaders/work.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/core/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/core/files.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/core/manifest.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/core/rai_header.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/core/text.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/core/tools.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/classifier.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/cohesion.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/discover.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/domain_model.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/heuristics.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/hitl_html.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/naming.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/panel.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/pipeline.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical_report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/tactical_validation.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/templates/tactical_hitl.html.j2 +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/ddd/validation.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/compose.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/env.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/envrc.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/ports.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/processes.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/provisioner.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/reaper.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/runtime_image.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/dev/status.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/developer_profile/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/developer_profile/persistence.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/developer_profile/profile.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/developer_profile/profile_portability.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/analyzer.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/check.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/clone.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/corpus.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/drift.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/metric.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/sast.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/scanner.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/temporal.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/discovery/thresholds.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/adapters.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/agent.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/backfill.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/classifier.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/clustering.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/conformance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/evasion.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/hook.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/journal.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/llm_classifier.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/parser.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/segment.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/distillation/storage.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/bundle.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/fingerprint.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/module_id.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/regions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/architecture/validate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/docs/migrate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/acli.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/adapters.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/backlog_migration.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/backlog_workflow_scope.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/bob.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/developer.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/developer_yaml.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/legacy_install.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/legacy_residues.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/legacy_work_items.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/local_db.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/onboarding.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/pipeline_coverage.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/project.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/runtimes.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/session_index.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/skills.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/stash_hygiene.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/update.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/workspace_readiness.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/checks/worktrees.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/protocol.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/doctor/report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/embeddings/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/embeddings/provider.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/engines/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/_models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/_paths.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/ab.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/cli.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/datasets.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/harness.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/memory_recall.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/metrics.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/recalibrate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/json_report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/latex.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/reporters/markdown.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/stats.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/eval/tuning.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/exceptions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/auto_approve.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/binding.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/cost.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/dispatch_service.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/heartbeat.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/nl_parser.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/noop_collision.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/notifications.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/prompt_builder.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/provisioning.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/fleet/subagent_dispatcher.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/alembic/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/alembic/single_head_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/ar/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/ar/bugfix_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/ar/story_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/budget/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/budget/budget_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/coverage.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/format.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/graph_applies_to.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/lint.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/suppression_ratchet.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/tests.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/builtin/types.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/calibration/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/calibration/log.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/calibration/promotion_policy.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/capability/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/capability/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/ddd/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/ddd/domain_model_ratified_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/ddd/tactical_drift_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/docs_architecture.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/docs_sync.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/_base.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/_delta.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/auth_fan_out.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/epic_close.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/import_fan_in.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/linter_suppression.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/parallel_siblings.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/drift/story_accretion.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/execution_ledger.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/_initiative_context.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/_portfolio_config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/backlog_sync_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/before_ready_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/child_epics_complete_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/pipeline_coverage_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/public_mirror_push_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/skill_cli_refint_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/strategic_fit_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance/workflow_transition_ownership_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/governance_freshness.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/hook.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/pm/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/pm/_config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/pm/_utils.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/pm/discovery_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/pm/icp_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/pm/jtbd_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/pm/ownership_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/protocol.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/release/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/release/version_group_consistent.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/auth_invariant.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/cage_profile_lint.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/cwd_topology.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/protocol_parity.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/slice1/spi_conformance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/sync/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/sync/sync_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/gates/worker_budget.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/git/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/git/branch_guard.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/governance/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/governance/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/governance/sync.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/governance_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/api_graph_read_backend.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/backends/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/backends/api.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/backends/dual.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/backends/pending.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/exceptions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/merge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/query_backend.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/graph/utils.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/handlers/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/harness_review/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/harness_review/adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/harness_review/detection.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/harness_review/pre_submission.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hook_bus/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hook_bus/emitter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hook_bus/events.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hook_bus/protocol.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hook_bus/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/memory.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/pipeline_events.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/emitter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/events.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/git_commit_block.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/post_merge_staleness.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/posttooluse.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/pretooluse.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/protocol.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/hooks/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/git_diff.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/ownership.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/policy.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/recommendations.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/rendering.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/impact/report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/legacy/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/legacy/cleaner.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/legacy/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/legacy/scanner.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/legacy/snooze.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/mcp/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/mcp/bridge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/mcp/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/mcp/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/mcp/schema.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/mcp/workspace_config.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/api_patterns_backend.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/content_hash.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/dedup.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/frontmatter_extractor.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/hint_oracle.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/ingest_cartridge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/learning.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/migrate_claude.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/migration.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/pattern_evaluator.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/patterns_backend.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/portability.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/push.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/sync.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/memory/writer.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/mr_create_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/cartridges.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/claudemd.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/cli_commands.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/conventions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/detection.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/governance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/instructions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/instructions_check.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/manifest.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/manifest_validate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/merge_conventions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/migration.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/profile.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/profile_portability.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/purge.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/router.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/skill_conflict.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/skill_manifest.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/skills.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/onboarding/workflows.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/console.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/formatters/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/formatters/adapters.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/formatters/backlog_node.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/formatters/discover.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/formatters/graph.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/formatters/skill.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/output/symbols.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/_caller_context.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/_compact.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/_mcp_decorators.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/_mcp_instance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/_startup_checks.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/_telemetry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/agent_runtime_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/api_run_store.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/branch_guard.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/dispatch.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/execution_context.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/executor.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/gates.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/lease_enforcement.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_lifecycle.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_server.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_artifact.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_backlog.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_docs.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_fleet.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_gate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_graph.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_pattern.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_story.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/mcp_tools_task.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/bugfix-enterprise.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/bugfix-lean.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic-design-pdcv.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic-enterprise.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic-flat.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/epic.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/initiative-enterprise.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/initiative.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/spike-enterprise.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/spike.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/story-enterprise.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/story-legacy.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/story.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/pipelines_base/upgrade.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/prompt.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/provider_model.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/rai_header.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/resilient_run_store.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/run_store.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/skill_model.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/templates/adversarial-ar.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/templates/adversarial-qr.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/terminal_status.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/transitions.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/workflow_point_resolver.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/worktree.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/pipeline/worktree_lock.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/component_map.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/dependency/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/dependency/graph.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/derivation.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/dsm_render.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/git_attr.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/storage.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/portfolio/suggest.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/project.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/project_config/manifest.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/project_config/manifest_validate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/project_config/types.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/publish/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/publish/changelog.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/publish/check.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/publish/version.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/quality/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/quality/classifier.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/quality/enrichment.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/quality/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/framework/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/backlog.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/prd.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/governance/vision.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/core.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/core.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/identity/perspective.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/memory/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/release_preflight.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/release_version.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/cfr.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/classification_models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/cohort.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/deployments.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/gate_escape.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/multitrack.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/recommendations.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/rollup.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/session_condition.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/reliability/target_classifier.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/schemas/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/schemas/journal.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/schemas/session_ledger.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/schemas/session_state.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/PROVIDERS.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/azdo_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/bitbucket_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/conflict_rules.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/github_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/gitlab_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/scm/governance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/self_update/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/self_update/manifest.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/api_context_backend.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/bundle.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/bundle_data.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/bundle_formatters.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/bundle_governance.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/alias.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/catalog.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/models.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/reconcile.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/runtime.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/scope.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/catalog/source.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/close.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/connect.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/context_backend.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/context_env.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/donor.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/identity.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/index.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/journal.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/ledger.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/lifecycle.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/measure.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/monitor.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/peek.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/prefix.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/protocols.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/qr_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/resolver.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/runner.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/scope.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/state.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/terminal.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/session/update_cache.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/locator.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/name_checker.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/parser.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/scaffold.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/schema.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/skillsets.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/sync.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills/validator.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/contract-template.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/preamble.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-adversarial-review/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-backlog-setup/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bug-file/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-close-lean/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-fix-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-fix-lean/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-pir/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-start-lean/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-cartridge-agent/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-corpus-curate/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-debug/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-discover/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-docs-setup/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-docs-setup-advanced/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-close-enterprise/templates/retrospective.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/design.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/scope.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-journal/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-predesign-evidence/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-start-enterprise/templates/brief.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-epic-ux-design/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-forward-merge/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-initiative-delivering/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-initiative-shaped/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-kc-build/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-onboard-repo/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-pipeline-run/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-pipeline-run-lean/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-project-create/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-project-upgrade/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-quality-review/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-critic/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-evidence/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-frame/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-scope/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-search/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-synthesize/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-research-verify/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-diary/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-orchestrator/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-session-start/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-skill-create/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-skillset-manage/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-spike-close/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-spike-start/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-close/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-design/SKILL.md +0 -0
- {raise_cli-3.1.2 → 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.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-review/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-start/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-story-start-enterprise/templates/story.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-welcome/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/rai-worktree-open/SKILL.md +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/skills_base/skillsets/enterprise.yaml +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/cartridge_projection.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/connection.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/consolidate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/counter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/maintenance_lock.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/migrate.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/migrate_project_slug.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/pause_states.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/port_allocations.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/schema_sum.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/work_items_outbox.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/storage/worktrees.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/story/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/story/close_service.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/story/open_service.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/task/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/task/complete_service.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/adapter_registry.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/attribution.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/audit.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/backfill.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/cc_adapter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/cost_report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/defect_attribution.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/emit_work.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/emitter.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/guardrails.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/phase_map.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/phase_report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/region_szz.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/root_cause.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/schemas.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/session_tokens.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/szz.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/token_daily.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/tool_cost.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/telemetry/trailer.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/testing/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/testing/profiling_plugin.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/testing/shadow_policy.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/testing/xdist_safety.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/tier/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/tier/context.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/version_report.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/viz/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/viz/generator.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_events/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_events/backfill.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_events/retry_queue.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_events/schemas.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_events/translator.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_item/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/work_item/close_service.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/workspace/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/workspace/readiness.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/worktree/__init__.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/worktree/base_resolver.py +0 -0
- {raise_cli-3.1.2 → raise_cli-3.1.4}/src/raise_cli/worktree/provision.py +0 -0
- {raise_cli-3.1.2 → 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",
|
|
@@ -150,6 +150,7 @@ governance-trail-ci = "raise_cli.gates.governance.governance_trail_ci_gate:Gover
|
|
|
150
150
|
gate-public-mirror-push = "raise_cli.gates.governance.public_mirror_push_gate:PublicMirrorPushGate"
|
|
151
151
|
domain-model-ratified = "raise_cli.gates.ddd.domain_model_ratified_gate:DomainModelRatifiedGate"
|
|
152
152
|
ddd-tactical-drift = "raise_cli.gates.ddd.tactical_drift_gate:TacticalDriftGate"
|
|
153
|
+
gate-revert-scope = "raise_cli.gates.governance.revert_scope_gate:RevertScopeGate"
|
|
153
154
|
|
|
154
155
|
[project.entry-points."rai.doctor.checks"]
|
|
155
156
|
environment = "raise_cli.doctor.checks.environment:EnvironmentCheck"
|
|
@@ -172,6 +173,8 @@ stash-hygiene = "raise_cli.doctor.checks.stash_hygiene:StashHygieneCheck"
|
|
|
172
173
|
legacy-install = "raise_cli.doctor.checks.legacy_install:LegacyInstallCheck"
|
|
173
174
|
legacy-residues = "raise_cli.doctor.checks.legacy_residues:LegacyResiduesCheck"
|
|
174
175
|
legacy-work-items = "raise_cli.doctor.checks.legacy_work_items:LegacyWorkItemsCheck"
|
|
176
|
+
graph-annotation-always-null-column = "raise_cli.doctor.checks.graph_annotations:GraphAnnotationAlwaysNullColumnCheck"
|
|
177
|
+
graph-annotation-scoping-drift = "raise_cli.doctor.checks.graph_annotations:GraphAnnotationScopingDriftCheck"
|
|
175
178
|
update = "raise_cli.doctor.checks.update:UpdateCheck"
|
|
176
179
|
worktrees = "raise_cli.doctor.checks.worktrees:WorktreesCheck"
|
|
177
180
|
session-index = "raise_cli.doctor.checks.session_index:SessionIndexCheck"
|
|
@@ -9,11 +9,31 @@ from raise_cli.cli.main import app
|
|
|
9
9
|
from raise_cli.exceptions import RaiError
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
def _handle_unexpected_error(error: Exception) -> None:
|
|
13
|
+
"""Print unexpected exception safely — no frame locals, no traceback by default.
|
|
14
|
+
|
|
15
|
+
Frame locals are suppressed to prevent leaking API keys and tokens that may
|
|
16
|
+
be in scope when the exception occurs (RAISE-18038). Set RAI_DEBUG=1 to
|
|
17
|
+
include the full traceback for debugging.
|
|
18
|
+
"""
|
|
19
|
+
import traceback
|
|
20
|
+
|
|
21
|
+
error_type = type(error).__name__
|
|
22
|
+
print(f"Unexpected error ({error_type}): {error}", file=sys.stderr)
|
|
23
|
+
|
|
24
|
+
if os.environ.get("RAI_DEBUG") == "1":
|
|
25
|
+
traceback.print_exc()
|
|
26
|
+
else:
|
|
27
|
+
print("Set RAI_DEBUG=1 for full traceback.", file=sys.stderr)
|
|
28
|
+
|
|
29
|
+
|
|
12
30
|
def main() -> None:
|
|
13
31
|
"""Run the CLI application with error handling.
|
|
14
32
|
|
|
15
33
|
Catches RaiError exceptions and displays them with proper formatting,
|
|
16
|
-
then exits with the appropriate exit code.
|
|
34
|
+
then exits with the appropriate exit code. Any other unhandled exception
|
|
35
|
+
is caught and displayed safely (without frame locals) to prevent leaking
|
|
36
|
+
API keys and tokens to the terminal and CI logs (RAISE-18038).
|
|
17
37
|
"""
|
|
18
38
|
if os.environ.get("RAISE_TEST_BLOCK_GRAPH_BUILD") == "1" and sys.argv[1:3] == [
|
|
19
39
|
"graph",
|
|
@@ -32,6 +52,9 @@ def main() -> None:
|
|
|
32
52
|
output_format = get_output_format()
|
|
33
53
|
exit_code = handle_error(error, output_format=output_format)
|
|
34
54
|
sys.exit(exit_code)
|
|
55
|
+
except Exception as error: # noqa: BLE001
|
|
56
|
+
_handle_unexpected_error(error)
|
|
57
|
+
sys.exit(1)
|
|
35
58
|
|
|
36
59
|
|
|
37
60
|
if __name__ == "__main__":
|
|
@@ -293,6 +293,22 @@ def derive_state_machine( # noqa: C901
|
|
|
293
293
|
if not state_map:
|
|
294
294
|
return _empty()
|
|
295
295
|
|
|
296
|
+
# RAISE-17917: register status_mapping role-key aliases pointing at the
|
|
297
|
+
# same StateSpec as the state they resolve to. Pipeline YAMLs declare
|
|
298
|
+
# target_status using the canonical role key (e.g. "committed"), which
|
|
299
|
+
# only coincidentally matches slugify(display_name) — a real Jira typo
|
|
300
|
+
# ("Commited", one 't') otherwise makes the role key unresolvable.
|
|
301
|
+
# WorkflowStateMachine.resolve() returns the aliased StateSpec's own
|
|
302
|
+
# .slug, so alias and real-name resolution agree.
|
|
303
|
+
id_to_slug = {
|
|
304
|
+
spec.native_id: slug for slug, spec in state_map.items() if spec.native_id
|
|
305
|
+
}
|
|
306
|
+
for wf_config in sections.values():
|
|
307
|
+
for role, status_id in wf_config.status_mapping.items():
|
|
308
|
+
target_slug = id_to_slug.get(status_id)
|
|
309
|
+
if target_slug and role not in state_map:
|
|
310
|
+
state_map[role] = state_map[target_slug]
|
|
311
|
+
|
|
296
312
|
# Full transition mesh — fail-open (C-2 mesh rule)
|
|
297
313
|
all_slugs = frozenset(state_map.keys())
|
|
298
314
|
transitions: dict[str, frozenset[str]] = {
|
|
@@ -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
|
|
@@ -137,7 +137,7 @@ class FilesystemPMAdapter:
|
|
|
137
137
|
"""Resolve path for key; raises KeyError if not found."""
|
|
138
138
|
path = self._resolve_item_path(key)
|
|
139
139
|
if path is None:
|
|
140
|
-
raise KeyError(key)
|
|
140
|
+
raise KeyError(f"Issue {key} not found")
|
|
141
141
|
return path
|
|
142
142
|
|
|
143
143
|
def _load_item(self, key: str) -> BacklogItem:
|
|
@@ -508,7 +508,7 @@ class FilesystemPMAdapter:
|
|
|
508
508
|
"""
|
|
509
509
|
old_path = self._resolve_item_path(old_key)
|
|
510
510
|
if old_path is None:
|
|
511
|
-
raise KeyError(old_key)
|
|
511
|
+
raise KeyError(f"Issue {old_key} not found")
|
|
512
512
|
|
|
513
513
|
# Load, update key field, determine new path
|
|
514
514
|
raw = yaml.safe_load(old_path.read_text(encoding="utf-8"))
|
|
@@ -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
|
|
|
@@ -45,7 +45,17 @@ def issue_type_to_work_item_type(issue_type: str) -> str:
|
|
|
45
45
|
stores it in ``custom_fields["source_issue_type"]``).
|
|
46
46
|
"""
|
|
47
47
|
lower = issue_type.lower()
|
|
48
|
-
valid = {
|
|
48
|
+
valid = {
|
|
49
|
+
"theme",
|
|
50
|
+
"initiative",
|
|
51
|
+
"epic",
|
|
52
|
+
"story",
|
|
53
|
+
"task",
|
|
54
|
+
"bug",
|
|
55
|
+
"spike",
|
|
56
|
+
"sub-task",
|
|
57
|
+
"research",
|
|
58
|
+
}
|
|
49
59
|
if lower in valid:
|
|
50
60
|
return lower
|
|
51
61
|
return "story" # default fallback
|
|
@@ -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
|
|
|
@@ -77,6 +77,14 @@ _UPDATABLE_FIELDS: frozenset[str] = frozenset(
|
|
|
77
77
|
}
|
|
78
78
|
)
|
|
79
79
|
|
|
80
|
+
# List[str]-typed fields (mirrors WorkItemStore._FIELD_VALIDATORS' list-shaped
|
|
81
|
+
# entries). The dedicated CLI flags (--fix-version) already wrap their value
|
|
82
|
+
# in a list before it reaches the adapter; the generic `-F fixVersions=...`
|
|
83
|
+
# escape hatch does not, so a bare string here would otherwise blow past
|
|
84
|
+
# WorkItemStore.update_fields' TypeAdapter(list[str]) with
|
|
85
|
+
# "expected list, got str" (RAISE-17094).
|
|
86
|
+
_LIST_TYPED_FIELDS: frozenset[str] = frozenset({"fix_versions", "labels"})
|
|
87
|
+
|
|
80
88
|
|
|
81
89
|
def _capitalize_type(type_str: str) -> str:
|
|
82
90
|
"""Capitalize the first letter of a work item type for display."""
|
|
@@ -148,7 +156,7 @@ class SQLitePMAdapter:
|
|
|
148
156
|
if wi is None:
|
|
149
157
|
wi = self._store.get_by_jira_key(key)
|
|
150
158
|
if wi is None:
|
|
151
|
-
raise KeyError(key)
|
|
159
|
+
raise KeyError(f"Issue {key} not found")
|
|
152
160
|
return wi
|
|
153
161
|
|
|
154
162
|
# -- Key generation helpers -----------------------------------------------
|
|
@@ -326,6 +334,8 @@ class SQLitePMAdapter:
|
|
|
326
334
|
# Map to updatable field names
|
|
327
335
|
if canonical == "parent":
|
|
328
336
|
canonical = "parent_local_key"
|
|
337
|
+
if canonical in _LIST_TYPED_FIELDS and isinstance(value, str):
|
|
338
|
+
value = [value] if value else []
|
|
329
339
|
if canonical in _UPDATABLE_FIELDS:
|
|
330
340
|
old_value = getattr(wi, canonical, None)
|
|
331
341
|
if isinstance(old_value, list):
|
|
@@ -457,7 +467,7 @@ class SQLitePMAdapter:
|
|
|
457
467
|
"""
|
|
458
468
|
wi = self._store.get_by_local_key(old_key)
|
|
459
469
|
if wi is None:
|
|
460
|
-
raise KeyError(old_key)
|
|
470
|
+
raise KeyError(f"Issue {old_key} not found")
|
|
461
471
|
|
|
462
472
|
conn = self._store._conn # pyright: ignore[reportPrivateUsage] — D-S3.7: direct SQL for identity columns excluded from update_fields
|
|
463
473
|
with conn:
|
|
@@ -14,7 +14,6 @@ context injection per agent).
|
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
16
|
import json
|
|
17
|
-
import sys
|
|
18
17
|
from pathlib import Path
|
|
19
18
|
from typing import Any
|
|
20
19
|
|
|
@@ -26,11 +25,10 @@ _HOOK_COMMAND_POSIX = (
|
|
|
26
25
|
"rai hook user-prompt-submit || exit 0"
|
|
27
26
|
)
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
)
|
|
28
|
+
# Claude Code executes hooks via bash on all platforms (Git Bash on Windows),
|
|
29
|
+
# so the POSIX command works everywhere. CMD syntax (%REPO_ROOT%) caused
|
|
30
|
+
# 'cd: %REPO_ROOT%: No such file or directory' in Git Bash (RAISE-18085).
|
|
31
|
+
_HOOK_COMMAND_WINDOWS = _HOOK_COMMAND_POSIX
|
|
34
32
|
|
|
35
33
|
SETTINGS_USER_PROMPT_SUBMIT_BLOCK: dict[str, Any] = {
|
|
36
34
|
"hooks": [
|
|
@@ -80,9 +78,7 @@ class ClaudePlugin:
|
|
|
80
78
|
Returns:
|
|
81
79
|
List of relative file paths created/updated.
|
|
82
80
|
"""
|
|
83
|
-
command =
|
|
84
|
-
_HOOK_COMMAND_WINDOWS if sys.platform == "win32" else _HOOK_COMMAND_POSIX
|
|
85
|
-
)
|
|
81
|
+
command = _HOOK_COMMAND_POSIX
|
|
86
82
|
hook_block: dict[str, Any] = {
|
|
87
83
|
"hooks": [{"type": "command", "command": command}]
|
|
88
84
|
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"""Derive a Markdown companion from a self-contained HTML artifact.
|
|
2
|
+
|
|
3
|
+
RAISE-16870 introduced HTML as a first-class artifact format for governance
|
|
4
|
+
documents (self-contained reports published to the RaiSE platform target).
|
|
5
|
+
Downstream tooling (artifact-validation gates, grep/diff/git-blame,
|
|
6
|
+
search) still expects a paired ``.md`` file next to the ``.html`` one --
|
|
7
|
+
this module is the single place that derives it, so every publish path
|
|
8
|
+
(MCP tool, CLI) can share it instead of hand-rolling a conversion on
|
|
9
|
+
demand (RAISE-17804).
|
|
10
|
+
|
|
11
|
+
The conversion is intentionally lossy and dependency-free (stdlib
|
|
12
|
+
``html.parser`` only, no markdownify/html2text): headings, paragraphs,
|
|
13
|
+
lists, bold/italic and links degrade to Markdown syntax; everything else
|
|
14
|
+
degrades to plain text. ``<script>``/``<style>`` content is dropped
|
|
15
|
+
entirely. It exists to keep the companion readable and searchable, not to
|
|
16
|
+
round-trip the original HTML.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
from __future__ import annotations
|
|
20
|
+
|
|
21
|
+
import re
|
|
22
|
+
from html import unescape
|
|
23
|
+
from html.parser import HTMLParser
|
|
24
|
+
|
|
25
|
+
_SKIPPED_TAGS = {"script", "style"}
|
|
26
|
+
_BLOCK_TAGS = {"p", "div", "section", "article", "header", "footer", "tr", "table"}
|
|
27
|
+
_HEADING_LEVELS = {f"h{n}": n for n in range(1, 7)}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class _HtmlToMdParser(HTMLParser):
|
|
31
|
+
"""Minimal streaming HTML -> Markdown-ish text converter (stdlib only)."""
|
|
32
|
+
|
|
33
|
+
def __init__(self) -> None:
|
|
34
|
+
super().__init__(convert_charrefs=True)
|
|
35
|
+
self._out: list[str] = []
|
|
36
|
+
self._skip_depth = 0
|
|
37
|
+
self._link_href: str | None = None
|
|
38
|
+
|
|
39
|
+
def handle_starttag(self, tag: str, attrs: list[tuple[str, str | None]]) -> None:
|
|
40
|
+
if tag in _SKIPPED_TAGS:
|
|
41
|
+
self._skip_depth += 1
|
|
42
|
+
return
|
|
43
|
+
if self._skip_depth:
|
|
44
|
+
return
|
|
45
|
+
if tag in _HEADING_LEVELS or tag in _BLOCK_TAGS or tag in ("br", "li"):
|
|
46
|
+
self._start_structural(tag)
|
|
47
|
+
else:
|
|
48
|
+
self._start_inline(tag, attrs)
|
|
49
|
+
|
|
50
|
+
def _start_structural(self, tag: str) -> None:
|
|
51
|
+
"""Headings, block containers, line breaks, and list items."""
|
|
52
|
+
if tag in _HEADING_LEVELS:
|
|
53
|
+
self._out.append("\n\n" + "#" * _HEADING_LEVELS[tag] + " ")
|
|
54
|
+
elif tag == "br":
|
|
55
|
+
self._out.append("\n")
|
|
56
|
+
elif tag == "li":
|
|
57
|
+
self._out.append("\n- ")
|
|
58
|
+
else: # block tag
|
|
59
|
+
self._out.append("\n\n")
|
|
60
|
+
|
|
61
|
+
def _start_inline(self, tag: str, attrs: list[tuple[str, str | None]]) -> None:
|
|
62
|
+
"""Links and inline emphasis markers."""
|
|
63
|
+
if tag == "a":
|
|
64
|
+
href = dict(attrs).get("href")
|
|
65
|
+
self._link_href = href
|
|
66
|
+
if href:
|
|
67
|
+
self._out.append("[")
|
|
68
|
+
elif tag in ("strong", "b"):
|
|
69
|
+
self._out.append("**")
|
|
70
|
+
elif tag in ("em", "i"):
|
|
71
|
+
self._out.append("_")
|
|
72
|
+
|
|
73
|
+
def handle_endtag(self, tag: str) -> None:
|
|
74
|
+
if tag in _SKIPPED_TAGS:
|
|
75
|
+
self._skip_depth = max(0, self._skip_depth - 1)
|
|
76
|
+
return
|
|
77
|
+
if self._skip_depth:
|
|
78
|
+
return
|
|
79
|
+
if tag == "a" and self._link_href:
|
|
80
|
+
self._out.append(f"]({self._link_href})")
|
|
81
|
+
self._link_href = None
|
|
82
|
+
elif tag in ("strong", "b"):
|
|
83
|
+
self._out.append("**")
|
|
84
|
+
elif tag in ("em", "i"):
|
|
85
|
+
self._out.append("_")
|
|
86
|
+
elif tag in (*_HEADING_LEVELS, *_BLOCK_TAGS, "li", "ul", "ol"):
|
|
87
|
+
self._out.append("\n")
|
|
88
|
+
|
|
89
|
+
def handle_data(self, data: str) -> None:
|
|
90
|
+
if self._skip_depth:
|
|
91
|
+
return
|
|
92
|
+
self._out.append(data)
|
|
93
|
+
|
|
94
|
+
def get_markdown(self) -> str:
|
|
95
|
+
text = "".join(self._out)
|
|
96
|
+
text = unescape(text)
|
|
97
|
+
text = re.sub(r"[ \t]+", " ", text)
|
|
98
|
+
text = re.sub(r"[ \t]*\n[ \t]*", "\n", text)
|
|
99
|
+
text = re.sub(r"\n{3,}", "\n\n", text)
|
|
100
|
+
stripped = text.strip()
|
|
101
|
+
return f"{stripped}\n" if stripped else ""
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def html_to_md(html_content: str) -> str:
|
|
105
|
+
"""Convert self-contained HTML content into a readable Markdown companion.
|
|
106
|
+
|
|
107
|
+
Best-effort, dependency-free conversion: headings, paragraphs, lists,
|
|
108
|
+
bold/italic and links are preserved as Markdown; everything else
|
|
109
|
+
degrades to plain text. ``<script>``/``<style>`` content is dropped
|
|
110
|
+
entirely so generated CSS/JS never leaks into the companion.
|
|
111
|
+
"""
|
|
112
|
+
parser = _HtmlToMdParser()
|
|
113
|
+
parser.feed(html_content)
|
|
114
|
+
parser.close()
|
|
115
|
+
return parser.get_markdown()
|
|
@@ -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
|
|