raise-cli 3.1.1__tar.gz → 3.1.3__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.1 → raise_cli-3.1.3}/PKG-INFO +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/pyproject.toml +11 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/__main__.py +24 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/backlog_config.py +16 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/composite_pm.py +18 -4
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/filesystem.py +2 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/graph_refresh.py +15 -18
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/jira_adapter.py +204 -52
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/jira_client.py +42 -13
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/key_gen.py +11 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/models/pm.py +20 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/resolve.py +14 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/sqlite_pm.py +12 -2
- raise_cli-3.1.3/src/raise_cli/agents/claude_plugin.py +107 -0
- raise_cli-3.1.3/src/raise_cli/artifacts/html_to_md.py +115 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/reconcile.py +3 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/sync.py +24 -10
- raise_cli-3.1.3/src/raise_cli/cli/commands/artifact.py +161 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/backlog.py +69 -45
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/clean.py +4 -4
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/ddd.py +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/docs.py +105 -17
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/graph.py +31 -20
- raise_cli-3.1.3/src/raise_cli/cli/commands/hook.py +90 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/init.py +9 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/ledger.py +19 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/onboard.py +2 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/release.py +44 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/scm.py +56 -9
- raise_cli-3.1.3/src/raise_cli/cli/commands/scm_review.py +247 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/self_update.py +18 -13
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/session.py +107 -547
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/main.py +4 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/sessions.py +1 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/builder.py +9 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/freshness.py +113 -11
- raise_cli-3.1.3/src/raise_cli/context/loaders/guardrails.py +124 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cwd_binding.py +21 -22
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/clustering.py +87 -6
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/escalation.py +12 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/persistence.py +35 -9
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/tactical_prompts.py +9 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/type_cmd.py +17 -8
- raise_cli-3.1.3/src/raise_cli/doctor/checks/environment.py +285 -0
- raise_cli-3.1.3/src/raise_cli/doctor/checks/graph_annotations.py +232 -0
- raise_cli-3.1.3/src/raise_cli/doctor/checks/hooks.py +253 -0
- raise_cli-3.1.3/src/raise_cli/doctor/checks/legacy_residues.py +66 -0
- raise_cli-3.1.3/src/raise_cli/doctor/checks/legacy_work_items.py +100 -0
- raise_cli-3.1.3/src/raise_cli/doctor/checks/session_index.py +98 -0
- raise_cli-3.1.3/src/raise_cli/doctor/checks/worktrees.py +56 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/runner.py +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/gate.py +5 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/memory_recall.py +1 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/exceptions.py +16 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/subagent_dispatcher.py +8 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/alembic/single_head_gate.py +2 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/ar/story_gate.py +2 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/budget/budget_gate.py +2 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/_runner.py +331 -10
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/coverage.py +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/types_tests_advisory.py +10 -3
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/capability/capability_overlap.py +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/docs_architecture.py +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/docs_sync.py +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/baseline.py +32 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/dead_public_api.py +2 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/post_refactor_orphan.py +2 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/execution.py +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/execution_ledger.py +13 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/artifacts_gate.py +1 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/backlog_sync_gate.py +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/before_ready_gate.py +2 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/child_epics_complete_gate.py +2 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/close_sync_gate.py +134 -5
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/governance_trail_ci_gate.py +20 -13
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/pipeline_coverage_gate.py +1 -0
- raise_cli-3.1.3/src/raise_cli/gates/governance/revert_scope_gate.py +168 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/strategic_fit_gate.py +2 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/models.py +16 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/pm/discovery_gate.py +4 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/pm/icp_gate.py +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/pm/jtbd_gate.py +4 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/pm/ownership_gate.py +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/repository_hygiene.py +13 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/slice1/api_schema_lock.py +22 -11
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/slice1/auth_invariant.py +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/slice1/cage_profile_lint.py +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/slice1/cwd_topology.py +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/slice1/protocol_parity.py +3 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/slice1/spi_conformance.py +6 -4
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/sync/sync_gate.py +5 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/backends/sqlite.py +94 -10
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/query_backend.py +23 -11
- raise_cli-3.1.3/src/raise_cli/harness_review/__init__.py +53 -0
- raise_cli-3.1.3/src/raise_cli/harness_review/adapter.py +154 -0
- raise_cli-3.1.3/src/raise_cli/harness_review/claude_adapter.py +230 -0
- raise_cli-3.1.3/src/raise_cli/harness_review/detection.py +26 -0
- raise_cli-3.1.3/src/raise_cli/harness_review/pre_submission.py +278 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/builtin/graph_update.py +1 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/mcp/bridge.py +8 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/sync.py +0 -52
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/purge.py +1 -10
- raise_cli-3.1.3/src/raise_cli/output/formatters/backlog_node.py +111 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/formatters/graph.py +47 -5
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/_caller_context.py +20 -0
- raise_cli-3.1.3/src/raise_cli/pipeline/_mcp_instance.py +88 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/engine.py +6 -51
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/epic_story_iteration.py +42 -5
- raise_cli-3.1.3/src/raise_cli/pipeline/lifecycle.py +261 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/loader.py +19 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_fleet.py +9 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_graph.py +17 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_pipeline.py +581 -67
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_session.py +25 -84
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/bugfix-enterprise.yaml +1 -0
- raise_cli-3.1.3/src/raise_cli/pipeline/provider_model.py +113 -0
- raise_cli-3.1.3/src/raise_cli/pipeline/when.py +112 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/project_config/__init__.py +2 -0
- raise_cli-3.1.3/src/raise_cli/project_config/branches.py +514 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/project_config/manifest.py +120 -33
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/lens.py +6 -5
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/targets.py +65 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/__init__.py +2 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/adapter.py +27 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/governance.py +47 -6
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/propagation.py +52 -11
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/self_update/updater.py +22 -5
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/derive.py +113 -11
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/doctor.py +90 -41
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/index.py +48 -0
- raise_cli-3.1.3/src/raise_cli/session/lifecycle.py +30 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/open_service.py +450 -235
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/validator.py +33 -3
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/__init__.py +1 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +1 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-start-enterprise/SKILL.md +8 -25
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-journal/SKILL.md +4 -4
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-forward-merge/SKILL.md +9 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-mr-create/SKILL.md +14 -1
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-mr-merge/SKILL.md +13 -0
- raise_cli-3.1.3/src/raise_cli/skills_base/rai-session-orchestrator/SKILL.md +389 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-session-start/SKILL.md +11 -10
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-spike-journal/SKILL.md +22 -15
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-close/SKILL.md +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-close-enterprise/SKILL.md +3 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-review/SKILL.md +2 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/cartridge_projection.py +39 -2
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/leases.py +34 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/schema.py +138 -3
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/work_items.py +14 -4
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_item/close_service.py +183 -33
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_item/open_service.py +38 -4
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/worktree/base_resolver.py +2 -2
- raise_cli-3.1.1/src/raise_cli/agents/claude_plugin.py +0 -164
- raise_cli-3.1.1/src/raise_cli/doctor/checks/environment.py +0 -110
- raise_cli-3.1.1/src/raise_cli/pipeline/_mcp_instance.py +0 -11
- raise_cli-3.1.1/src/raise_cli/project_config/branches.py +0 -292
- {raise_cli-3.1.1 → raise_cli-3.1.3}/.gitignore +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/README.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/_agent_session.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/_cc_session.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/composite_docs.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/confluence_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/confluence_client.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/confluence_config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/confluence_config_gen.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/confluence_discovery.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/confluence_exceptions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/confluence_markdown.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/declarative/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/declarative/adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/declarative/discovery.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/declarative/expressions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/declarative/schema.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/errors.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/filesystem_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/filesystem_docs.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/filesystem_models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/google_drive_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/google_drive_exceptions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/jira_adf.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/jira_config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/jira_config_gen.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/jira_discovery.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/jira_exceptions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/ledger_aware.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/llm_enrichment.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/mcp_bridge.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/models/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/models/docs.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/models/governance.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/models/health.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/models/sync.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/oauth_token.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/pending_ops.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/platform_docs.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/protocols.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/sync.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/adapters/types_config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/antigravity.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/bob.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/bob_plugin.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/claude.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/codex.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/codex_plugin.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/copilot.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/copilot_plugin.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/cursor.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/devin.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/devin_plugin.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/hermes.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/kimi.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/kimi_plugin.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/mcp_template.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/roo.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/agents/windsurf.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/artifacts/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/artifacts/identity.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/artifacts/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/artifacts/render.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/artifacts/store.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/auth/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/auth/google.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/close_drift.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/hooks.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/merge_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/migrate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/mr_classify.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/scanner.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/backlog/seed.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/calibration/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/calibration/merge.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/calibration/server_client.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges/cli.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges/formatter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges/secret_scan.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges/server_client.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges/server_install.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges/server_models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/management-ontology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/management-ontology/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/management-ontology/instances/ontology.json +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/management-ontology/instances/practices.json +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-dev-workflow/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-dev-workflow/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/glossary.json +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/ontology.json +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-dev-workflow/instances/practices.json +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-methodology/CARTRIDGE.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-methodology/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cartridges_base/raise-methodology/instances/methodology.json +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/_graph_fields.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/_graph_filter_parser.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/_resolve.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/_server_write.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/adapter_route.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/adapter_setup.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/adapters.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/auth.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/backlog_migrate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/base.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/bot.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/connect.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/db.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/dev.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/discover.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/distillation.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/docs_architecture.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/docs_type.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/doctor.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/drift.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/fleet.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/forward_merge.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/governance.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/impact.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/info.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/journal.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/learn.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/manifest.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/mcp.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/memory.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/pattern.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/pipeline.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/portfolio.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/profile.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/project.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/quality.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/reliability.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/repo.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/schema.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/self_upgrade.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/signal.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/skill.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/skill_set.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/story.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/telemetry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/whoami.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/commands/worktree.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/error_handler.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cli/extensions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/agent.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/app.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/data.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/env.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/filter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/launch.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/pipeline_view.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/protocols.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/session_lease.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/state.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tokens.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/app.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/screens/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/screens/command.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/screens/confirm.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/screens/help.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/screens/logs.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/screens/new_session.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/services.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/sources.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/styles.tcss +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/theme.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/widgets/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/widgets/degraded_banner.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/widgets/detail_panel.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/widgets/filter_bar.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/widgets/recovery_menu.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/widgets/session_rail.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/tui/widgets/top_bar.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/types.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/cockpit/worktree_ops.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compat.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compliance/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compliance/controls.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compliance/evidence.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compliance/extractors/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compliance/extractors/git.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compliance/loader.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/compliance/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/agent_plugin.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/agent_registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/agents.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/ide.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/org_binding.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/paths.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/repo_binding.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/server.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/config/settings.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/analyzers/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/analyzers/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/analyzers/protocol.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/analyzers/python.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/analyzers/signals.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/analyzers/typescript.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/diff.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/drift.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/extractors/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/extractors/relationships.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/extractors/skills.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/extractors/structure.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/architecture.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/components.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/documents.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/identity.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/memory.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/symbols.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/context/loaders/work.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/core/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/core/files.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/core/manifest.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/core/rai_header.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/core/text.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/core/tools.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/classifier.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/cohesion.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/discover.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/domain_model.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/heuristics.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/hitl_html.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/naming.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/panel.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/pipeline.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/tactical.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/tactical_report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/tactical_validation.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/templates/tactical_hitl.html.j2 +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/ddd/validation.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/compose.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/env.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/envrc.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/ports.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/processes.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/provisioner.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/reaper.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/runtime_image.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/dev/status.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/developer_profile/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/developer_profile/persistence.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/developer_profile/profile.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/developer_profile/profile_portability.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/analyzer.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/check.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/clone.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/corpus.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/drift.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/metric.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/sast.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/scanner.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/temporal.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/discovery/thresholds.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/adapters.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/agent.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/backfill.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/classifier.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/clustering.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/conformance.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/evasion.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/hook.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/journal.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/llm_classifier.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/parser.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/segment.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/distillation/storage.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/architecture/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/architecture/bundle.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/architecture/fingerprint.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/architecture/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/architecture/module_id.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/architecture/regions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/architecture/validate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/docs/migrate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/acli.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/adapters.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/backlog_migration.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/backlog_workflow_scope.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/bob.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/developer.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/developer_yaml.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/legacy_install.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/local_db.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/onboarding.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/pipeline_coverage.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/project.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/runtimes.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/skills.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/stash_hygiene.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/update.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/checks/workspace_readiness.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/fix.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/protocol.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/doctor/report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/embeddings/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/embeddings/provider.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/engines/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/_models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/_paths.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/ab.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/cli.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/datasets.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/harness.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/metrics.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/recalibrate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/reporters/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/reporters/json_report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/reporters/latex.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/reporters/markdown.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/stats.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/eval/tuning.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/auto_approve.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/binding.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/cost.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/dispatch_service.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/heartbeat.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/nl_parser.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/noop_collision.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/notifications.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/prompt_builder.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/fleet/provisioning.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/alembic/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/ar/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/ar/bugfix_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/budget/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/format.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/graph_applies_to.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/lint.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/suppression_ratchet.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/tests.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/builtin/types.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/calibration/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/calibration/log.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/calibration/promotion_policy.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/capability/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/capability/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/ddd/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/ddd/domain_model_ratified_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/ddd/tactical_drift_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/_base.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/_delta.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/auth_fan_out.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/epic_close.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/import_fan_in.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/linter_suppression.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/parallel_siblings.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/drift/story_accretion.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/_initiative_context.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/_portfolio_config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/public_mirror_push_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/skill_cli_refint_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance/workflow_transition_ownership_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/governance_freshness.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/hook.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/pm/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/pm/_config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/pm/_utils.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/protocol.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/release/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/release/version_group_consistent.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/slice1/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/sync/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/gates/worker_budget.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/git/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/git/branch_guard.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/governance/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/governance/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/governance/sync.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/governance_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/api_graph_read_backend.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/backends/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/backends/api.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/backends/dual.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/backends/pending.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/exceptions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/merge.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/graph/utils.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/handlers/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hook_bus/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hook_bus/emitter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hook_bus/events.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hook_bus/protocol.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hook_bus/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/builtin/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/builtin/memory.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/builtin/pipeline_events.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/emitter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/events.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/git_commit_block.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/post_merge_staleness.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/posttooluse.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/pretooluse.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/protocol.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/hooks/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/git_diff.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/ownership.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/policy.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/recommendations.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/rendering.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/impact/report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/legacy/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/legacy/cleaner.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/legacy/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/legacy/scanner.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/legacy/snooze.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/mcp/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/mcp/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/mcp/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/mcp/schema.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/mcp/workspace_config.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/api_patterns_backend.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/content_hash.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/dedup.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/frontmatter_extractor.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/hint_oracle.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/ingest_cartridge.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/learning.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/memory_index.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/migrate_claude.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/migration.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/pattern_evaluator.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/patterns_backend.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/portability.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/push.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/memory/writer.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/mr_create_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/bootstrap.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/cartridges.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/claudemd.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/cli_commands.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/conventions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/detection.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/governance.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/instructions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/instructions_check.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/manifest.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/manifest_validate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/memory_md.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/merge_conventions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/migration.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/profile.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/profile_portability.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/router.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/skill_conflict.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/skill_manifest.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/skills.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/onboarding/workflows.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/console.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/formatters/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/formatters/adapters.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/formatters/discover.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/formatters/skill.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/output/symbols.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/_compact.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/_mcp_decorators.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/_startup_checks.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/_telemetry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/agent_runtime_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/api_run_store.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/branch_guard.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/dispatch.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/execution_context.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/executor.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/gates.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/lease_enforcement.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_lifecycle.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_server.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_artifact.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_backlog.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_docs.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_gate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_pattern.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_story.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/mcp_tools_task.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/bugfix-lean.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/epic-design-pdcv.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/epic-enterprise.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/epic-flat.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/epic.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/initiative-enterprise.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/initiative.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/spike-enterprise.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/spike.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/story-enterprise.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/story-legacy.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/story.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/pipelines_base/upgrade.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/prompt.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/rai_header.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/resilient_run_store.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/run_store.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/skill_model.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/templates/adversarial-ar.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/templates/adversarial-qr.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/terminal_status.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/transitions.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/workflow_point_resolver.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/worktree.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/pipeline/worktree_lock.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/component_map.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/dependency/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/dependency/graph.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/derivation.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/dsm_render.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/git_attr.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/storage.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/portfolio/suggest.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/project.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/project_config/manifest_validate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/project_config/types.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/publish/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/publish/changelog.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/publish/check.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/publish/version.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/quality/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/quality/classifier.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/quality/enrichment.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/quality/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/framework/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/backlog.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/prd.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/governance/vision.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/identity/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/identity/core.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/identity/core.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/identity/perspective.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/memory/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/release_preflight.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/release_version.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/cfr.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/classification_models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/cohort.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/deployments.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/gate_escape.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/multitrack.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/recommendations.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/rollup.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/session_condition.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/reliability/target_classifier.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/schemas/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/schemas/journal.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/schemas/session_ledger.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/schemas/session_state.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/PROVIDERS.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/azdo_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/bitbucket_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/conflict_rules.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/github_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/scm/gitlab_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/self_update/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/self_update/manifest.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/api_context_backend.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/bundle.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/bundle_data.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/bundle_formatters.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/bundle_governance.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/alias.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/catalog.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/models.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/reconcile.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/runtime.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/scope.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/catalog/source.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/close.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/connect.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/context_backend.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/context_env.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/donor.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/identity.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/journal.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/ledger.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/measure.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/monitor.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/peek.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/prefix.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/protocols.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/qr_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/resolver.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/runner.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/scope.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/state.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/terminal.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/session/update_cache.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/locator.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/name_checker.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/parser.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/scaffold.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/schema.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/skillsets.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills/sync.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/contract-template.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/preamble.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-adversarial-review/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-backlog-setup/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bug-file/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-close-lean/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-fix-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-fix-lean/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-pir/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-start-lean/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-cartridge-agent/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-corpus-curate/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-debug/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-discover/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-docs-setup/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-docs-setup-advanced/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-close-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-close-enterprise/templates/retrospective.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-design-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/design.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-design-enterprise/templates/scope.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-predesign-evidence/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-start-enterprise/templates/brief.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-epic-ux-design/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-initiative-delivering/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-initiative-shaped/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-kc-build/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-onboard-repo/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-pipeline-run/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-pipeline-run-lean/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-project-create/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-project-upgrade/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-quality-review/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-critic/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-evidence/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-frame/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-run/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-scope/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-search/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-synthesize/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-research-verify/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-session-diary/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-skill-create/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-skillset-manage/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-spike-close/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-spike-start/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-design/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-start/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-start-enterprise/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-story-start-enterprise/templates/story.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-welcome/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-worktree-close/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/rai-worktree-open/SKILL.md +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/skills_base/skillsets/enterprise.yaml +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/connection.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/consolidate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/counter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/maintenance_lock.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/migrate.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/migrate_project_slug.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/pause_states.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/port_allocations.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/schema_sum.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/work_items_outbox.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/storage/worktrees.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/story/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/story/close_service.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/story/open_service.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/task/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/task/complete_service.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/adapter_registry.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/attribution.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/audit.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/backfill.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/cc_adapter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/cost_report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/defect_attribution.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/emit_work.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/emitter.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/guardrails.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/phase_map.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/phase_report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/region_szz.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/root_cause.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/schemas.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/session_tokens.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/szz.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/token_daily.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/tool_cost.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/telemetry/trailer.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/testing/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/testing/profiling_plugin.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/testing/shadow_policy.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/testing/xdist_safety.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/tier/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/tier/context.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/version_report.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/viz/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/viz/generator.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_events/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_events/backfill.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_events/ref_resolver.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_events/retry_queue.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_events/schemas.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_events/translator.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/work_item/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/workspace/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/workspace/readiness.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/worktree/__init__.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/src/raise_cli/worktree/provision.py +0 -0
- {raise_cli-3.1.1 → raise_cli-3.1.3}/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.3
|
|
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,8 +33,9 @@ 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.3
|
|
37
37
|
Requires-Dist: rich>=13.7.0
|
|
38
|
+
Requires-Dist: ruamel-yaml>=0.18
|
|
38
39
|
Requires-Dist: textual>=0.89.0
|
|
39
40
|
Requires-Dist: tokenizers>=0.19
|
|
40
41
|
Requires-Dist: tree-sitter-c-sharp>=0.23.1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "raise-cli"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.3"
|
|
4
4
|
description = "RaiSE CLI - Reliable AI Software Engineering governance framework"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Emilio Osorio", email = "emilio@humansys.ai"}
|
|
@@ -21,13 +21,14 @@ classifiers = [
|
|
|
21
21
|
]
|
|
22
22
|
|
|
23
23
|
dependencies = [
|
|
24
|
-
"raise-core==3.1.
|
|
24
|
+
"raise-core==3.1.3",
|
|
25
25
|
"typer>=0.12.0",
|
|
26
26
|
"rich>=13.7.0",
|
|
27
27
|
"pydantic>=2.6.0",
|
|
28
28
|
"pydantic-settings>=2.2.0",
|
|
29
29
|
"python-dotenv>=1.0.0",
|
|
30
30
|
"pyyaml>=6.0.1",
|
|
31
|
+
"ruamel.yaml>=0.18",
|
|
31
32
|
"packaging>=24.0",
|
|
32
33
|
"networkx>=3.6.1",
|
|
33
34
|
"tree-sitter>=0.25.2",
|
|
@@ -149,6 +150,7 @@ governance-trail-ci = "raise_cli.gates.governance.governance_trail_ci_gate:Gover
|
|
|
149
150
|
gate-public-mirror-push = "raise_cli.gates.governance.public_mirror_push_gate:PublicMirrorPushGate"
|
|
150
151
|
domain-model-ratified = "raise_cli.gates.ddd.domain_model_ratified_gate:DomainModelRatifiedGate"
|
|
151
152
|
ddd-tactical-drift = "raise_cli.gates.ddd.tactical_drift_gate:TacticalDriftGate"
|
|
153
|
+
gate-revert-scope = "raise_cli.gates.governance.revert_scope_gate:RevertScopeGate"
|
|
152
154
|
|
|
153
155
|
[project.entry-points."rai.doctor.checks"]
|
|
154
156
|
environment = "raise_cli.doctor.checks.environment:EnvironmentCheck"
|
|
@@ -169,7 +171,14 @@ pipeline-coverage = "raise_cli.doctor.checks.pipeline_coverage:PipelineCoverageC
|
|
|
169
171
|
backlog-workflow-scope = "raise_cli.doctor.checks.backlog_workflow_scope:BacklogWorkflowScopeCheck"
|
|
170
172
|
stash-hygiene = "raise_cli.doctor.checks.stash_hygiene:StashHygieneCheck"
|
|
171
173
|
legacy-install = "raise_cli.doctor.checks.legacy_install:LegacyInstallCheck"
|
|
174
|
+
legacy-residues = "raise_cli.doctor.checks.legacy_residues:LegacyResiduesCheck"
|
|
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"
|
|
172
178
|
update = "raise_cli.doctor.checks.update:UpdateCheck"
|
|
179
|
+
worktrees = "raise_cli.doctor.checks.worktrees:WorktreesCheck"
|
|
180
|
+
session-index = "raise_cli.doctor.checks.session_index:SessionIndexCheck"
|
|
181
|
+
hooks = "raise_cli.doctor.checks.hooks:HooksCheck"
|
|
173
182
|
|
|
174
183
|
[project.entry-points."rai.adapters.pm"]
|
|
175
184
|
filesystem = "raise_cli.adapters.filesystem:FilesystemPMAdapter"
|
|
@@ -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]] = {
|
|
@@ -327,10 +327,18 @@ class CompositeBacklogAdapter:
|
|
|
327
327
|
break
|
|
328
328
|
return local_ref
|
|
329
329
|
|
|
330
|
-
def _maybe_promote(
|
|
330
|
+
def _maybe_promote(
|
|
331
|
+
self,
|
|
332
|
+
staging_key: str,
|
|
333
|
+
jira_key: str,
|
|
334
|
+
*,
|
|
335
|
+
issue_type: str | None = None,
|
|
336
|
+
) -> IssueRef:
|
|
331
337
|
"""Call promote_key on local adapter if supported; remove ledger entry.
|
|
332
338
|
|
|
333
339
|
Returns IssueRef with jira_key on success, staging_key on any failure.
|
|
340
|
+
`issue_type` is forwarded to the self-map so the row is not seeded with
|
|
341
|
+
the key-shape default ('story' for remote-native keys, RAISE-17064).
|
|
334
342
|
"""
|
|
335
343
|
promote = getattr(self._local, "promote_key", None)
|
|
336
344
|
if promote is None:
|
|
@@ -340,7 +348,9 @@ class CompositeBacklogAdapter:
|
|
|
340
348
|
self._wi_store.remove_jira_mapping(staging_key)
|
|
341
349
|
# Self-map: jira_key → jira_key so _write_to_remotes_keyed treats it as
|
|
342
350
|
# remote-native (not a local-canonical unsynced key).
|
|
343
|
-
self._wi_store.upsert_jira_mapping(
|
|
351
|
+
self._wi_store.upsert_jira_mapping(
|
|
352
|
+
jira_key, jira_key, issue_type=issue_type
|
|
353
|
+
)
|
|
344
354
|
return IssueRef(key=jira_key)
|
|
345
355
|
except Exception as exc: # noqa: BLE001
|
|
346
356
|
logger.warning(
|
|
@@ -857,9 +867,13 @@ class CompositeBacklogAdapter:
|
|
|
857
867
|
try:
|
|
858
868
|
remote_ref: IssueRef = remote.create_issue(project_key, spec)
|
|
859
869
|
if not skip_ledger_update:
|
|
860
|
-
self._wi_store.upsert_jira_mapping(
|
|
870
|
+
self._wi_store.upsert_jira_mapping(
|
|
871
|
+
op.key, remote_ref.key, issue_type=spec.issue_type
|
|
872
|
+
)
|
|
861
873
|
completed.append(i)
|
|
862
|
-
promoted_ref = self._maybe_promote(
|
|
874
|
+
promoted_ref = self._maybe_promote(
|
|
875
|
+
op.key, remote_ref.key, issue_type=spec.issue_type
|
|
876
|
+
)
|
|
863
877
|
with contextlib.suppress(Exception):
|
|
864
878
|
self._reconcile_local_mirror(
|
|
865
879
|
promoted_ref.key, remote_ref.key, remote
|
|
@@ -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"))
|
|
@@ -48,7 +48,10 @@ from raise_cli.adapters.models import (
|
|
|
48
48
|
from raise_cli.adapters.protocols import SyncVerifiable
|
|
49
49
|
from raise_cli.config.paths import checkout_scope_id
|
|
50
50
|
from raise_cli.storage.connection import get_project_db_path, get_project_id
|
|
51
|
-
from raise_core.cartridges.backlog_items import
|
|
51
|
+
from raise_core.cartridges.backlog_items import (
|
|
52
|
+
backlog_item_key,
|
|
53
|
+
build_backlog_item_node,
|
|
54
|
+
)
|
|
52
55
|
|
|
53
56
|
logger = logging.getLogger(__name__)
|
|
54
57
|
|
|
@@ -126,14 +129,12 @@ def _upsert_items_json(items_path: Path, node: dict[str, Any], key: str) -> None
|
|
|
126
129
|
else:
|
|
127
130
|
nodes = []
|
|
128
131
|
|
|
129
|
-
#
|
|
130
|
-
# rename (RAISE-16940) still carries `jira_key`, and
|
|
131
|
-
# name would leave the stale entry behind and
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
nodes = [n for n in nodes if _node_key(n) != key]
|
|
132
|
+
# backlog_item_key matches on both field names: a cartridge written before
|
|
133
|
+
# the jira_key→key rename (RAISE-16940) still carries `jira_key`, and
|
|
134
|
+
# matching only the new name would leave the stale entry behind and
|
|
135
|
+
# append a duplicate. Shared with generate_backlog_items_cartridge's bulk
|
|
136
|
+
# merge (RAISE-17005 D6.1) so both merge strategies never drift.
|
|
137
|
+
nodes = [n for n in nodes if backlog_item_key(n) != key]
|
|
137
138
|
nodes.append(node)
|
|
138
139
|
|
|
139
140
|
items_path.parent.mkdir(parents=True, exist_ok=True)
|
|
@@ -257,17 +258,13 @@ class GraphRefreshAdapter:
|
|
|
257
258
|
"""
|
|
258
259
|
self._delegate.remove_link(link_id)
|
|
259
260
|
|
|
260
|
-
# --
|
|
261
|
+
# -- Comments (refresh after RAISE-17002) -----------------------------------
|
|
261
262
|
|
|
262
263
|
def add_comment(self, key: str, body: str) -> CommentRef:
|
|
263
|
-
"""Delegate
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
comment cannot change the node. Refreshing here would be a wasted
|
|
268
|
-
round-trip.
|
|
269
|
-
"""
|
|
270
|
-
return self._delegate.add_comment(key, body) # type: ignore[no-any-return]
|
|
264
|
+
"""Delegate then refresh — comments now live in node metadata (D-S2.7)."""
|
|
265
|
+
ref: CommentRef = self._delegate.add_comment(key, body) # type: ignore[no-any-return]
|
|
266
|
+
self._refresh_node(key)
|
|
267
|
+
return ref
|
|
271
268
|
|
|
272
269
|
def get_comments(
|
|
273
270
|
self, key: str, limit: int = 10, offset: int = 0, fetch_all: bool = False
|
|
@@ -17,7 +17,7 @@ import os
|
|
|
17
17
|
import re
|
|
18
18
|
import time
|
|
19
19
|
from pathlib import Path
|
|
20
|
-
from typing import Any
|
|
20
|
+
from typing import Any, Final
|
|
21
21
|
|
|
22
22
|
from raise_cli.adapters.backlog_config import load_backlog_config, save_backlog_config
|
|
23
23
|
from raise_cli.adapters.jira_adf import adf_to_markdown, markdown_to_adf
|
|
@@ -92,6 +92,45 @@ def normalize_status(status: str) -> str:
|
|
|
92
92
|
return status.replace("-", " ").title()
|
|
93
93
|
|
|
94
94
|
|
|
95
|
+
# ── Read-path field allowlist (RAISE-17001) ─────────────────────────
|
|
96
|
+
|
|
97
|
+
# Fixed system block. Includes the five D2 fields (description, comment,
|
|
98
|
+
# issuelinks, created, updated) so RAISE-17001 and RAISE-17002 stay
|
|
99
|
+
# independent (epic design C3).
|
|
100
|
+
# NEVER add customfield_* here — custom ids come from backlog.yaml
|
|
101
|
+
# custom_fields (DD7); field_types is an uncurated auto-cache and must
|
|
102
|
+
# never feed this constant or read_field_list (DD1).
|
|
103
|
+
_SYSTEM_FIELDS: Final[tuple[str, ...]] = (
|
|
104
|
+
"summary",
|
|
105
|
+
"status",
|
|
106
|
+
"issuetype",
|
|
107
|
+
"parent",
|
|
108
|
+
"assignee",
|
|
109
|
+
"priority",
|
|
110
|
+
"labels",
|
|
111
|
+
"fixVersions",
|
|
112
|
+
"description",
|
|
113
|
+
"comment",
|
|
114
|
+
"issuelinks",
|
|
115
|
+
"created",
|
|
116
|
+
"updated",
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def read_field_list(config: BacklogAdapterConfig) -> list[str]:
|
|
121
|
+
"""Fields to request from Jira on the read path (RAISE-17001).
|
|
122
|
+
|
|
123
|
+
Authority is ``backlog.yaml`` ``custom_fields`` (curated by
|
|
124
|
+
``rai-backlog-setup``) — NOT ``field_types``, which is an uncurated
|
|
125
|
+
auto-cache that fills with the whole instance on projects without setup
|
|
126
|
+
(``_auto_cache_field_types``). Empty ``custom_fields`` yields the system
|
|
127
|
+
block only; never ``'*all'``.
|
|
128
|
+
"""
|
|
129
|
+
custom = sorted({cf.id for defs in config.custom_fields.values() for cf in defs})
|
|
130
|
+
seen: set[str] = set()
|
|
131
|
+
return [f for f in (*_SYSTEM_FIELDS, *custom) if not (f in seen or seen.add(f))]
|
|
132
|
+
|
|
133
|
+
|
|
95
134
|
def _normalize_link_type(
|
|
96
135
|
link_type: str, relation_types: list[dict[str, Any]]
|
|
97
136
|
) -> tuple[str, bool]:
|
|
@@ -221,8 +260,17 @@ class PythonApiJiraAdapter:
|
|
|
221
260
|
# ── Response parsers ────────────────────────────────────────────
|
|
222
261
|
|
|
223
262
|
@staticmethod
|
|
224
|
-
def _extract_issue_fields(
|
|
225
|
-
|
|
263
|
+
def _extract_issue_fields(
|
|
264
|
+
data: dict[str, Any],
|
|
265
|
+
*,
|
|
266
|
+
custom_field_ids: frozenset[str] | None = None,
|
|
267
|
+
field_schemas: dict[str, str | FieldSchema] | None = None,
|
|
268
|
+
) -> dict[str, Any]:
|
|
269
|
+
"""Extract common fields from nested Jira API format (RAISE-17002 D2).
|
|
270
|
+
|
|
271
|
+
Returns a dict compatible with both ``IssueSummary(**result)`` and
|
|
272
|
+
``IssueDetail(**result, url=...)``. Absorbs all parsing previously
|
|
273
|
+
split between this method and ``_parse_issue_detail``.
|
|
226
274
|
|
|
227
275
|
Format: ``fields.summary``, ``fields.status.name``, etc.
|
|
228
276
|
"""
|
|
@@ -232,33 +280,11 @@ class PythonApiJiraAdapter:
|
|
|
232
280
|
priority: dict[str, Any] | None = fields.get("priority")
|
|
233
281
|
raw_sp = fields.get("customfield_10004")
|
|
234
282
|
story_points: float | None = float(raw_sp) if raw_sp is not None else None
|
|
235
|
-
return {
|
|
236
|
-
"key": data.get("key", ""),
|
|
237
|
-
"summary": fields.get("summary", ""),
|
|
238
|
-
"status": fields.get("status", {}).get("name", ""),
|
|
239
|
-
"issue_type": fields.get("issuetype", {}).get("name", ""),
|
|
240
|
-
"parent_key": parent.get("key") if parent else None,
|
|
241
|
-
"assignee": assignee.get("displayName") if assignee else None,
|
|
242
|
-
"priority": priority.get("name") if priority else None,
|
|
243
|
-
"labels": fields.get("labels", []),
|
|
244
|
-
"fix_versions": [
|
|
245
|
-
str(v.get("name", ""))
|
|
246
|
-
for v in fields.get("fixVersions") or []
|
|
247
|
-
if v.get("name")
|
|
248
|
-
],
|
|
249
|
-
"status_category": str(
|
|
250
|
-
(fields.get("status", {}).get("statusCategory") or {}).get("key", "")
|
|
251
|
-
),
|
|
252
|
-
"story_points": story_points,
|
|
253
|
-
"metadata": PythonApiJiraAdapter._extract_custom_fields(fields),
|
|
254
|
-
}
|
|
255
283
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
common = self._extract_issue_fields(data)
|
|
259
|
-
fields: dict[str, Any] = data.get("fields") or {}
|
|
260
|
-
comment_field: dict[str, Any] = fields.get("comment") or {}
|
|
284
|
+
# D2: description
|
|
285
|
+
description = adf_to_markdown(fields.get("description", ""))
|
|
261
286
|
|
|
287
|
+
# D2: links (lifted from _parse_issue_detail)
|
|
262
288
|
raw_links: list[dict[str, Any]] = fields.get("issuelinks") or []
|
|
263
289
|
links: list[IssueLink] = []
|
|
264
290
|
for link in raw_links:
|
|
@@ -280,29 +306,144 @@ class PythonApiJiraAdapter:
|
|
|
280
306
|
)
|
|
281
307
|
)
|
|
282
308
|
|
|
309
|
+
# D2: comments (lifted from _parse_issue_detail, bodies are new)
|
|
310
|
+
comment_field: dict[str, Any] = fields.get("comment") or {}
|
|
311
|
+
comment_count = int(comment_field.get("total", 0))
|
|
312
|
+
raw_comments: list[dict[str, Any]] = comment_field.get("comments") or []
|
|
313
|
+
comments: list[Comment] = [
|
|
314
|
+
Comment(
|
|
315
|
+
id=str(c.get("id", "")),
|
|
316
|
+
body=adf_to_markdown(c.get("body", "")),
|
|
317
|
+
author=c.get("author", {}).get("displayName", ""),
|
|
318
|
+
created=c.get("created", ""),
|
|
319
|
+
)
|
|
320
|
+
for c in raw_comments
|
|
321
|
+
]
|
|
322
|
+
|
|
323
|
+
return {
|
|
324
|
+
"key": data.get("key", ""),
|
|
325
|
+
"summary": fields.get("summary", ""),
|
|
326
|
+
"status": fields.get("status", {}).get("name", ""),
|
|
327
|
+
"issue_type": fields.get("issuetype", {}).get("name", ""),
|
|
328
|
+
"parent_key": parent.get("key") if parent else None,
|
|
329
|
+
"assignee": assignee.get("displayName") if assignee else None,
|
|
330
|
+
"priority": priority.get("name") if priority else None,
|
|
331
|
+
"labels": fields.get("labels", []),
|
|
332
|
+
"fix_versions": [
|
|
333
|
+
str(v.get("name", ""))
|
|
334
|
+
for v in fields.get("fixVersions") or []
|
|
335
|
+
if v.get("name")
|
|
336
|
+
],
|
|
337
|
+
"status_category": str(
|
|
338
|
+
(fields.get("status", {}).get("statusCategory") or {}).get("key", "")
|
|
339
|
+
),
|
|
340
|
+
"story_points": story_points,
|
|
341
|
+
"metadata": PythonApiJiraAdapter._extract_custom_fields(
|
|
342
|
+
fields,
|
|
343
|
+
allowlist=custom_field_ids,
|
|
344
|
+
schemas=field_schemas,
|
|
345
|
+
),
|
|
346
|
+
"description": description,
|
|
347
|
+
"created": fields.get("created", ""),
|
|
348
|
+
"updated": fields.get("updated", ""),
|
|
349
|
+
"links": links,
|
|
350
|
+
"comments": comments,
|
|
351
|
+
"comment_count": comment_count,
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
def _custom_field_ids(self) -> frozenset[str] | None:
|
|
355
|
+
"""Derive custom field allowlist from config.custom_fields (RAISE-17002 D2).
|
|
356
|
+
|
|
357
|
+
Returns None when no custom fields are configured — callers treat
|
|
358
|
+
None as "pass all through" (backward compat for projects that have
|
|
359
|
+
not run ``rai backlog fields discover`` yet).
|
|
360
|
+
"""
|
|
361
|
+
ids = frozenset(
|
|
362
|
+
cf.id for defs in self._config.custom_fields.values() for cf in defs
|
|
363
|
+
)
|
|
364
|
+
return ids if ids else None
|
|
365
|
+
|
|
366
|
+
def _parse_issue_detail(self, data: dict[str, Any]) -> IssueDetail:
|
|
367
|
+
"""Parse single nested issue -> IssueDetail (RAISE-17002: delegates to _extract_issue_fields)."""
|
|
368
|
+
schemas = self._get_field_schemas(
|
|
369
|
+
self._client_for_org(self._config.default_org)
|
|
370
|
+
)
|
|
371
|
+
common = self._extract_issue_fields(
|
|
372
|
+
data,
|
|
373
|
+
custom_field_ids=self._custom_field_ids(),
|
|
374
|
+
field_schemas=schemas,
|
|
375
|
+
)
|
|
283
376
|
return IssueDetail(
|
|
284
377
|
**common,
|
|
285
378
|
url=self._build_url(common["key"]),
|
|
286
|
-
description=adf_to_markdown(fields.get("description", "")),
|
|
287
|
-
created=fields.get("created", ""),
|
|
288
|
-
updated=fields.get("updated", ""),
|
|
289
|
-
comment_count=int(comment_field.get("total", 0)),
|
|
290
|
-
links=links,
|
|
291
379
|
)
|
|
292
380
|
|
|
293
381
|
@staticmethod
|
|
294
|
-
def _extract_custom_fields(
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
``
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
382
|
+
def _extract_custom_fields(
|
|
383
|
+
fields: dict[str, Any],
|
|
384
|
+
*,
|
|
385
|
+
allowlist: frozenset[str] | None = None,
|
|
386
|
+
schemas: dict[str, str | FieldSchema] | None = None,
|
|
387
|
+
) -> dict[str, Any]:
|
|
388
|
+
"""Surface ``customfield_*`` values through ``IssueDetail.metadata`` (RAISE-17002 D2).
|
|
389
|
+
|
|
390
|
+
When *allowlist* is provided, only fields in the allowlist are included.
|
|
391
|
+
When *allowlist* is None, falls back to passthrough (backward compat).
|
|
392
|
+
|
|
393
|
+
When *schemas* is provided, complex shapes (option dicts, arrays) are
|
|
394
|
+
flattened to scalar values so ``--filter custom_fields.X:value`` works
|
|
395
|
+
(RAISE-16889).
|
|
396
|
+
"""
|
|
397
|
+
raw: dict[str, Any] = {
|
|
398
|
+
k: v for k, v in fields.items() if k.startswith("customfield_")
|
|
399
|
+
}
|
|
400
|
+
if allowlist is not None:
|
|
401
|
+
raw = {k: v for k, v in raw.items() if k in allowlist}
|
|
402
|
+
|
|
403
|
+
if schemas is None:
|
|
404
|
+
return raw
|
|
405
|
+
|
|
406
|
+
result: dict[str, Any] = {}
|
|
407
|
+
for k, v in raw.items():
|
|
408
|
+
result[k] = PythonApiJiraAdapter._flatten_custom_value(v, schemas.get(k))
|
|
409
|
+
return result
|
|
410
|
+
|
|
411
|
+
@staticmethod
|
|
412
|
+
def _flatten_dict_value(value: dict[str, Any]) -> Any:
|
|
413
|
+
"""Extract scalar from a Jira dict shape (RAISE-17002 D2)."""
|
|
414
|
+
for key in ("value", "displayName", "name"):
|
|
415
|
+
if key in value:
|
|
416
|
+
return value[key]
|
|
417
|
+
return value # unknown dict — pass through
|
|
418
|
+
|
|
419
|
+
@staticmethod
|
|
420
|
+
def _flatten_custom_value(
|
|
421
|
+
value: Any,
|
|
422
|
+
schema: str | FieldSchema | None, # noqa: ARG004
|
|
423
|
+
) -> Any:
|
|
424
|
+
"""Flatten a Jira custom field value to scalar (RAISE-17002 D2, RAISE-16889).
|
|
425
|
+
|
|
426
|
+
Flattening rules:
|
|
427
|
+
- dict with ``"value"``/``"displayName"``/``"name"`` key: extract it
|
|
428
|
+
- list: flatten each element, join with comma
|
|
429
|
+
- scalar/None: pass through
|
|
304
430
|
"""
|
|
305
|
-
|
|
431
|
+
if value is None:
|
|
432
|
+
return None
|
|
433
|
+
|
|
434
|
+
if isinstance(value, list):
|
|
435
|
+
parts = [
|
|
436
|
+
str(flat)
|
|
437
|
+
for item in value
|
|
438
|
+
if (flat := PythonApiJiraAdapter._flatten_custom_value(item, None))
|
|
439
|
+
is not None
|
|
440
|
+
]
|
|
441
|
+
return ", ".join(parts) if parts else None
|
|
442
|
+
|
|
443
|
+
if isinstance(value, dict):
|
|
444
|
+
return PythonApiJiraAdapter._flatten_dict_value(value)
|
|
445
|
+
|
|
446
|
+
return value
|
|
306
447
|
|
|
307
448
|
# ── Field schema ─────────────────────────────────────────────────
|
|
308
449
|
|
|
@@ -630,11 +771,11 @@ class PythonApiJiraAdapter:
|
|
|
630
771
|
canonical_map = self._merged_status_mapping()
|
|
631
772
|
target_name = canonical_map.get(status) or normalize_status(status)
|
|
632
773
|
match = next(
|
|
633
|
-
(t for t in transitions if t["
|
|
774
|
+
(t for t in transitions if t["to"].lower() == target_name.lower()),
|
|
634
775
|
None,
|
|
635
776
|
)
|
|
636
777
|
if not match:
|
|
637
|
-
available = [t["
|
|
778
|
+
available = [t["to"] for t in transitions]
|
|
638
779
|
raise JiraApiError(
|
|
639
780
|
f"No transition to '{target_name}' for {key}. Available: {available}"
|
|
640
781
|
)
|
|
@@ -691,18 +832,29 @@ class PythonApiJiraAdapter:
|
|
|
691
832
|
if project_key is not None
|
|
692
833
|
else self._client_for_org(self._config.default_org)
|
|
693
834
|
)
|
|
835
|
+
fields = read_field_list(self._config)
|
|
836
|
+
schemas = self._get_field_schemas(client)
|
|
837
|
+
cf_ids = self._custom_field_ids()
|
|
838
|
+
|
|
839
|
+
def _to_summary(raw: dict[str, Any]) -> IssueSummary:
|
|
840
|
+
return IssueSummary(
|
|
841
|
+
**self._extract_issue_fields(
|
|
842
|
+
raw, custom_field_ids=cf_ids, field_schemas=schemas
|
|
843
|
+
)
|
|
844
|
+
)
|
|
845
|
+
|
|
694
846
|
if fetch_all:
|
|
695
|
-
all_raw = client.jql_all(jql)
|
|
696
|
-
return [
|
|
847
|
+
all_raw = client.jql_all(jql, fields=fields)
|
|
848
|
+
return [_to_summary(i) for i in all_raw]
|
|
697
849
|
# Jira Cloud caps a single jql page at maxResults=100. When the requested
|
|
698
850
|
# window reaches past the first page, page-walk via jql_all() (bounded by
|
|
699
851
|
# cap) and truncate, instead of silently returning only 100 (RAISE-10763).
|
|
700
852
|
if offset + limit > self._MAX_SINGLE_PAGE:
|
|
701
|
-
all_raw = client.jql_all(jql, cap=offset + limit)
|
|
853
|
+
all_raw = client.jql_all(jql, cap=offset + limit, fields=fields)
|
|
702
854
|
window = all_raw[offset : offset + limit]
|
|
703
|
-
return [
|
|
704
|
-
issues = client.jql(jql, limit=limit, start=offset)
|
|
705
|
-
return [
|
|
855
|
+
return [_to_summary(i) for i in window]
|
|
856
|
+
issues = client.jql(jql, limit=limit, start=offset, fields=fields)
|
|
857
|
+
return [_to_summary(i) for i in issues]
|
|
706
858
|
|
|
707
859
|
# Jira Cloud caps a single jql/enhanced_jql page at maxResults=100.
|
|
708
860
|
_MAX_SINGLE_PAGE = 100
|