meridian-cli 0.3.2__tar.gz → 0.3.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.
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/.gitignore +1 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/PKG-INFO +1 -13
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/README.md +0 -12
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/__init__.py +1 -1
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/.context/CONTEXT.md +7 -6
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/AGENTS.md +17 -3
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_pi_native_tui.py +19 -5
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_pi_rpc.py +19 -5
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/.context/CONTEXT.md +15 -11
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/AGENTS.md +2 -1
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/.context/CONTEXT.md +23 -3
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/AGENTS.md +8 -6
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/LICENSE +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/pyproject.toml +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/ag_ui/__init__.pyi +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/ag_ui/core.pyi +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/__main__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/_cmd_utils.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/agent_help.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/app_tree.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/argv_normalization.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/bootstrap.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/bootstrap_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/chat_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/config_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/doctor_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/entrypoint.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/ext_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/ext_registration.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/hooks_authority.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/hooks_commands.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/kg_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/main.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/mars_passthrough.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/mermaid_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/migrate_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/misc_commands.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/models_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/output.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/primary_launch.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/qi_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/report_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/session_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/spawn.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/spawn_inject.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/catalog.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/classify.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/cyclopts_app.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/help.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/lazy_dispatch.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/policy.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/streaming_serve.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/sync_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/telemetry_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/utils.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/work_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/workspace_cmd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/dev/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/dev/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/dev/pytests.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/config.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/project_state.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/runtime_state.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/services.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/agent.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/bootstrap.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/catalog_session.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/model_aliases.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/models.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/skill.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/backend_acquisition.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/backend_handle.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/checkpoint.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/command_handler.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/command_invariants.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/commands.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/discovery.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/launcher.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/policy.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/portless.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/raw_vite.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/supervisor.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_index.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_log.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_observer.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_pipeline.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/frontend.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/base.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/claude.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/codex.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/common.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/opencode.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/registry.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/synthetic.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/policy.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/protocol.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/recovery.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/replay.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/runtime.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/server.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/session_service.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/ws_fanout.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/catalog.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/context_config.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/preserving_edit.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/project_config_state.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/project_paths.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/project_root.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/schema.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/settings.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/workspace.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/resolver.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/child_env.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/clock.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/codec.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/command_strings.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/context.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/conversation.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/depth.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/domain.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/execution_policy.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/formatting.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/launch_policy_snapshot.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/lifecycle.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/logging.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/overrides.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/process_cleanup.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/resolved_context.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/sink.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/spawn_lifecycle.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/spawn_service.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/spawn_start.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/telemetry.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/util.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/diagnostics.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/biomed.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/mermaid.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/sessions.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/workbench.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/context.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/descriptors.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/dispatcher.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/first_party.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/observability.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/registry.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/adapter.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/bundle.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/claude.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/claude_preflight.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/claude_utils.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/codex.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/codex_rollout.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/common.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/base.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/claude_ws.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/codex_ws.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/cursor_subprocess.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/errors.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/liveness.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/managed_backend.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/opencode_http.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/pi_rpc.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/resident_backend.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/control_action.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/cost.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/cursor.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/errors.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractor.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/base.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/claude.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/codex.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/cursor.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/opencode.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/pi.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/launch_spec.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/launch_types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/opencode.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/opencode_storage.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/opencode_transcript.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/base.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/claude.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/codex.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/opencode.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/registry.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/permission_broker.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi_lifecycle_events.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi_paths.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi_runtime_resolver.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/_guards.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/permission_flags.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/pi_extension_projection.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_claude.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_codex_common.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_codex_streaming.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_codex_subprocess.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_cursor.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_opencode_streaming.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_opencode_subprocess.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/projection_errors.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/registry.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/semantics.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/session_detection.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/transcript.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/autosync_store.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/base.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/git_autosync.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin_registry.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/config.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/dispatch.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/interval.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/registry.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/runner.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ignores.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/graph.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/report.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/serializer.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/artifact_io.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/bundle_adapter.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/claude_session_access.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/command.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/compiler.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/composition.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/composition_spawn.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/constants.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/context.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/cwd.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/env.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/errors.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/extract.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/fork.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/launch_types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/materialize.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/permissions.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/plan.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/policies.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/policy_snapshot.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/ports.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/primary_attach.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/pty_launcher.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/runner.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/session.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/subprocess_launcher.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/windows_launcher.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/prompt.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/prompt_context.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/reference.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/report.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/request.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/resolution.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/resolve.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/run_inputs.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/runner_helpers.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/session_scope.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/signals.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/heartbeat.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/terminal_arbitrator.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming_runner.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/text_utils.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/workspace.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/workspace_projection.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/written_files.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/extract.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/report.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/scanner.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/serializer.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/bare_end.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/fill_no_color.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/line_map.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/ox_edge.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/preprocess.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/suppression.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/validator.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/debug_tracer.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/trace_helpers.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/catalog.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/commands.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/config.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/config_surface.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/context.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/diag.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/hooks.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/init_ops.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/mars.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/migration.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/pruning.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/qi.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/reference.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/reference_recovery.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/report.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/runtime.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_corpus.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_export.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_log.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_log_render.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_render.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_repair.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_search.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_target.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_transcript.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/api.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/context_ref.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_bg.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_init.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_runner.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_session.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/failure_policy.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/models.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/pre_init.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/prepare.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/query.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/sync_conflicts.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_attachment.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_dashboard.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_lifecycle.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_sessions.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/workspace.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/detached_process.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/locking.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/base.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/fallback.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/posix.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/windows_job.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/terminate.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/unix_modules.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/budget.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/guardrails.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/permissions.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/redaction.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/service_context.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/archive.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/artifact_store.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/atomic.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/event_store.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/history.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/launch_boundary.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/liveness.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/managed_primary.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/paths.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/primary_meta.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/process_scope_projection.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/reaper.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/runtime_root.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/session_identity.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/session_store.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/model.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/repository.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/terminal_policy.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/transitions.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_report.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_signals.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_store.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_tree.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/timestamps.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/user_paths.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/wordgen.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/wordlists.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/work_store.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/completion_nudge.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/control_socket.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/disk_watcher.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/drain_coordinator.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/drain_policy.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/drain_wait.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/event_observers.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/heartbeat.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_drain.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_process_cleanup.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_quiescence.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_subspawn_tracker.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/resident_drain.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/signal_canceller.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_dispatch.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_drain_loop.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_manager.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_session.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/bootstrap.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/correlation.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/events.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/init.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/local_jsonl.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/maintenance.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/observer.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/observers.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/query.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/reader.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/retention.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/router.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/sinks.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/status.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/tools.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/utils/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/utils/time.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/.context/CONTEXT.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/README.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/dist/extensions/managed-bash/index.js +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/dist/extensions/meridian-spawn-watch/index.js +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/bundle.smoke.test.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_log_store.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.test.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/index.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/bundle.smoke.test.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.test.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/ids.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/json_file.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/log_overlay.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/meridian_cli.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.test.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/pi_harness_profile.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/pi_state_paths.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/schemas.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/selectable_panel.test.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/selectable_panel.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/spawn_origins.test.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/spawn_origins.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/ui.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/package.json +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/pnpm-lock.yaml +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/pnpm-workspace.yaml +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/scripts/verify-extensions-loop.mjs +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/vitest.config.ts +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/config.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/fs.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/git.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/state.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/types.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/py.typed +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/server/AGENTS.md +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/server/__init__.py +0 -0
- {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/server/main.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: meridian-cli
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Orchestrate CLI + MCP server for multi-model agent workflows
|
|
5
5
|
Project-URL: Homepage, https://github.com/haowjy/meridian-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/haowjy/meridian-cli
|
|
@@ -54,18 +54,6 @@ Orchestrate AI coding agents across Claude Code, Codex, and OpenCode. Each model
|
|
|
54
54
|
|
|
55
55
|
> **Early development.** Meridian is not stable. Expect breaking changes in any release. If you need a stable workflow, this project is not ready for you yet.
|
|
56
56
|
|
|
57
|
-
## v0.1.0 Migration
|
|
58
|
-
|
|
59
|
-
v0.1.0 removes all legacy state format support in the state layer.
|
|
60
|
-
|
|
61
|
-
If you are upgrading from any pre-0.1.0 build, run:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
rm -rf ~/.meridian
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
This is a clean break. There is no automatic migration.
|
|
68
|
-
|
|
69
57
|
## Why
|
|
70
58
|
|
|
71
59
|
Claude Code is (supposed to be) the best way to run Claude. Codex CLI is often the best way to run GPT. Each provider's harness is optimized for their models — sandboxing, tool use, context handling, everything (supposedly).
|
|
@@ -4,18 +4,6 @@ Orchestrate AI coding agents across Claude Code, Codex, and OpenCode. Each model
|
|
|
4
4
|
|
|
5
5
|
> **Early development.** Meridian is not stable. Expect breaking changes in any release. If you need a stable workflow, this project is not ready for you yet.
|
|
6
6
|
|
|
7
|
-
## v0.1.0 Migration
|
|
8
|
-
|
|
9
|
-
v0.1.0 removes all legacy state format support in the state layer.
|
|
10
|
-
|
|
11
|
-
If you are upgrading from any pre-0.1.0 build, run:
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
rm -rf ~/.meridian
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
This is a clean break. There is no automatic migration.
|
|
18
|
-
|
|
19
7
|
## Why
|
|
20
8
|
|
|
21
9
|
Claude Code is (supposed to be) the best way to run Claude. Codex CLI is often the best way to run GPT. Each provider's harness is optimized for their models — sandboxing, tool use, context handling, everything (supposedly).
|
{meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/.context/CONTEXT.md
RENAMED
|
@@ -45,12 +45,16 @@ Required abstract methods — every subclass must implement all of these:
|
|
|
45
45
|
- `harness_id`, `spawn_id`, `capabilities` properties
|
|
46
46
|
- `session_id` → `str | None` (None until the transport delivers a session identifier)
|
|
47
47
|
- `subprocess_pid` → `int | None`
|
|
48
|
+
- `resident_backend` → `ResidentBackendControl | None`; Codex/OpenCode expose
|
|
49
|
+
this for resident-until-done structured liveness and follow-up turns;
|
|
50
|
+
non-resident transports return None. This is the only public resident control
|
|
51
|
+
seam — callers do not reach for adapter-specific backend objects.
|
|
52
|
+
- `scope_snapshot` → `ProcessScopeSnapshot | None`; managed backends expose the
|
|
53
|
+
process-scope facts captured at launch so primary attach and cleanup paths do
|
|
54
|
+
not reconstruct containment from PID fields.
|
|
48
55
|
- `start(config, spec)` → async; raises if already started
|
|
49
56
|
- `stop()` → async; idempotent
|
|
50
57
|
- `health()` → bool
|
|
51
|
-
- `resident_backend` → `ResidentBackendControl | None`; Codex/OpenCode expose
|
|
52
|
-
this for resident-until-done structured liveness and follow-up turns;
|
|
53
|
-
non-resident transports return None.
|
|
54
58
|
- `send_user_message(text)` → async
|
|
55
59
|
- `send_cancel()` → async
|
|
56
60
|
- `events()` → `AsyncIterator[HarnessEvent]`
|
|
@@ -61,9 +65,6 @@ supports the capability:
|
|
|
61
65
|
- `start_observer(config, spec)` — observer mode; guard with `capabilities.supports_primary_observer`
|
|
62
66
|
- `configure_primary_runtime_requests(policy, event_sink, request_handler)`
|
|
63
67
|
- `inject_runtime_event(event)`
|
|
64
|
-
- `inject_turn(message)` — compatibility wrapper that delegates to
|
|
65
|
-
`resident_backend.begin_followup_turn`; transports should implement follow-up
|
|
66
|
-
turns through the resident backend seam instead of overriding this directly.
|
|
67
68
|
- `respond_request(request_id, decision, payload)` — Codex only
|
|
68
69
|
- `respond_user_input(request_id, answers)` — Codex only
|
|
69
70
|
|
|
@@ -11,12 +11,13 @@ Each transport wraps a long-lived process and turns its output into a stream of
|
|
|
11
11
|
`HarnessEvent` objects consumed by the drain loop. The drain loop calls
|
|
12
12
|
`terminal_outcome(event)` on each event; when that returns non-None, it breaks.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Transports differ at the wire level:
|
|
15
15
|
- **Claude** (`claude_ws.py`): stdin/stdout NDJSON. No WebSocket despite the filename.
|
|
16
|
-
- **Codex** (`codex_ws.py`): real WebSocket to `codex app-server`, JSON-RPC 2.0.
|
|
16
|
+
- **Codex** (`codex_ws.py`): real WebSocket to a managed `codex app-server`, JSON-RPC 2.0.
|
|
17
17
|
Codex's `requestApproval` and `requestUserInput` messages are dispatched to
|
|
18
18
|
either `AutoAcceptHandler` (spawn paths) or `InteractiveHandler` (managed-primary attach).
|
|
19
|
-
- **OpenCode** (`opencode_http.py`): HTTP+SSE to `opencode serve`.
|
|
19
|
+
- **OpenCode** (`opencode_http.py`): HTTP+SSE to managed `opencode serve`.
|
|
20
|
+
- **Cursor/Pi**: narrower spawned-session transports; no resident backend seam.
|
|
20
21
|
|
|
21
22
|
## Key Rules
|
|
22
23
|
|
|
@@ -31,6 +32,14 @@ distinction.
|
|
|
31
32
|
implement all abstract methods, register in the bundle. Missing registration →
|
|
32
33
|
`KeyError` at lookup time.
|
|
33
34
|
|
|
35
|
+
**Resident control goes through `resident_backend`.** Do not add connection-level
|
|
36
|
+
turn-injection or managed-backend shims. Codex/OpenCode return a
|
|
37
|
+
`ResidentBackendControl`; callers use `begin_followup_turn()` through that seam.
|
|
38
|
+
|
|
39
|
+
**Managed backend liveness belongs to `BackendLivenessPolicy`.** Adapters feed it
|
|
40
|
+
activity, active turns, active requests, backend pid, and birth time; callers consume
|
|
41
|
+
its structured decisions instead of inventing per-adapter alive checks.
|
|
42
|
+
|
|
34
43
|
## Entry Points
|
|
35
44
|
|
|
36
45
|
- `base.py` — `HarnessConnection` ABC, `HarnessEvent`, `ConnectionCapabilities`,
|
|
@@ -39,6 +48,11 @@ implement all abstract methods, register in the bundle. Missing registration →
|
|
|
39
48
|
`ResidentDrainCoordinator` for structured liveness, awaiting-done signaling,
|
|
40
49
|
and follow-up turns. This seam's presence, not the harness id, selects the
|
|
41
50
|
resident drain coordinator.
|
|
51
|
+
- `liveness.py` — `BackendLivenessPolicy`, the shared managed-backend liveness
|
|
52
|
+
classifier for Codex/OpenCode.
|
|
53
|
+
- `managed_backend.py` — single helper for launching managed backend subprocesses,
|
|
54
|
+
building `ProcessScopeSnapshot`, linking parent-death behavior when possible,
|
|
55
|
+
and recording `process_scopes.json`.
|
|
42
56
|
- `__init__.py` — `get_connection_class(harness_id, transport_id)`.
|
|
43
57
|
|
|
44
58
|
## Depth
|
|
@@ -52,6 +52,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
|
|
|
52
52
|
|
|
53
53
|
_MANAGED_FLAG_ALIASES: dict[str, tuple[str, ...]] = {
|
|
54
54
|
"--model": ("--model", "-m"),
|
|
55
|
+
"--thinking": ("--thinking",),
|
|
55
56
|
"--append-system-prompt": ("--append-system-prompt",),
|
|
56
57
|
"--session": ("--session",),
|
|
57
58
|
"--fork": ("--fork",),
|
|
@@ -148,12 +149,13 @@ def _project_model_arg(spec: ResolvedLaunchSpec) -> str | None:
|
|
|
148
149
|
if not model:
|
|
149
150
|
return None
|
|
150
151
|
|
|
151
|
-
thinking = _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
|
|
152
|
-
if thinking:
|
|
153
|
-
return f"{model}:{thinking}"
|
|
154
152
|
return model
|
|
155
153
|
|
|
156
154
|
|
|
155
|
+
def _project_thinking_level(spec: ResolvedLaunchSpec) -> str | None:
|
|
156
|
+
return _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
|
|
157
|
+
|
|
158
|
+
|
|
157
159
|
def project_pi_native_tui_spec_to_cli_args(
|
|
158
160
|
spec: ResolvedLaunchSpec,
|
|
159
161
|
*,
|
|
@@ -162,19 +164,26 @@ def project_pi_native_tui_spec_to_cli_args(
|
|
|
162
164
|
"""Project one ``ResolvedLaunchSpec`` into an ordered native Pi TUI command list."""
|
|
163
165
|
|
|
164
166
|
command: list[str] = list(base_command)
|
|
167
|
+
passthrough_tail = spec.extra_args
|
|
165
168
|
|
|
166
169
|
model_arg = _project_model_arg(spec)
|
|
167
170
|
if model_arg is not None:
|
|
168
171
|
command.extend(("--model", model_arg))
|
|
169
172
|
|
|
173
|
+
thinking_level = _project_thinking_level(spec)
|
|
174
|
+
model_override_in_passthrough = any(
|
|
175
|
+
_has_flag(passthrough_tail, alias) for alias in _MANAGED_FLAG_ALIASES["--model"]
|
|
176
|
+
)
|
|
177
|
+
emit_thinking = thinking_level is not None and not model_override_in_passthrough
|
|
178
|
+
if emit_thinking and thinking_level is not None:
|
|
179
|
+
command.extend(("--thinking", thinking_level))
|
|
180
|
+
|
|
170
181
|
if spec.appended_system_prompt:
|
|
171
182
|
command.extend(("--append-system-prompt", spec.appended_system_prompt))
|
|
172
183
|
|
|
173
184
|
continue_session_id = (spec.continue_session_id or "").strip()
|
|
174
185
|
has_continue_session = bool(continue_session_id)
|
|
175
186
|
has_continue_fork = has_continue_session and spec.continue_fork
|
|
176
|
-
|
|
177
|
-
passthrough_tail = spec.extra_args
|
|
178
187
|
_reject_mode_collisions(passthrough_tail)
|
|
179
188
|
_reject_continue_collisions(passthrough_tail)
|
|
180
189
|
_reject_extension_collisions(passthrough_tail)
|
|
@@ -184,6 +193,11 @@ def project_pi_native_tui_spec_to_cli_args(
|
|
|
184
193
|
has_managed_value=model_arg is not None,
|
|
185
194
|
passthrough_tail=passthrough_tail,
|
|
186
195
|
)
|
|
196
|
+
_log_collision_if_needed(
|
|
197
|
+
managed_flag="--thinking",
|
|
198
|
+
has_managed_value=emit_thinking,
|
|
199
|
+
passthrough_tail=passthrough_tail,
|
|
200
|
+
)
|
|
187
201
|
_log_collision_if_needed(
|
|
188
202
|
managed_flag="--append-system-prompt",
|
|
189
203
|
has_managed_value=bool(spec.appended_system_prompt),
|
{meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_pi_rpc.py
RENAMED
|
@@ -53,6 +53,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
|
|
|
53
53
|
|
|
54
54
|
_MANAGED_FLAG_ALIASES: dict[str, tuple[str, ...]] = {
|
|
55
55
|
"--model": ("--model", "-m"),
|
|
56
|
+
"--thinking": ("--thinking",),
|
|
56
57
|
"--append-system-prompt": ("--append-system-prompt",),
|
|
57
58
|
"--session": ("--session",),
|
|
58
59
|
"--fork": ("--fork",),
|
|
@@ -143,12 +144,13 @@ def _project_model_arg(spec: ResolvedLaunchSpec) -> str | None:
|
|
|
143
144
|
if not model:
|
|
144
145
|
return None
|
|
145
146
|
|
|
146
|
-
thinking = _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
|
|
147
|
-
if thinking:
|
|
148
|
-
return f"{model}:{thinking}"
|
|
149
147
|
return model
|
|
150
148
|
|
|
151
149
|
|
|
150
|
+
def _project_thinking_level(spec: ResolvedLaunchSpec) -> str | None:
|
|
151
|
+
return _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
|
|
152
|
+
|
|
153
|
+
|
|
152
154
|
def _default_pi_session_dir() -> str:
|
|
153
155
|
return str(resolve_pi_spawn_session_root())
|
|
154
156
|
|
|
@@ -161,19 +163,26 @@ def project_pi_spec_to_cli_args(
|
|
|
161
163
|
"""Project one ``ResolvedLaunchSpec`` into an ordered Pi RPC command list."""
|
|
162
164
|
|
|
163
165
|
command: list[str] = list(base_command)
|
|
166
|
+
passthrough_tail = spec.extra_args
|
|
164
167
|
|
|
165
168
|
model_arg = _project_model_arg(spec)
|
|
166
169
|
if model_arg is not None:
|
|
167
170
|
command.extend(("--model", model_arg))
|
|
168
171
|
|
|
172
|
+
thinking_level = _project_thinking_level(spec)
|
|
173
|
+
model_override_in_passthrough = any(
|
|
174
|
+
_has_flag(passthrough_tail, alias) for alias in _MANAGED_FLAG_ALIASES["--model"]
|
|
175
|
+
)
|
|
176
|
+
emit_thinking = thinking_level is not None and not model_override_in_passthrough
|
|
177
|
+
if emit_thinking and thinking_level is not None:
|
|
178
|
+
command.extend(("--thinking", thinking_level))
|
|
179
|
+
|
|
169
180
|
if spec.appended_system_prompt:
|
|
170
181
|
command.extend(("--append-system-prompt", spec.appended_system_prompt))
|
|
171
182
|
|
|
172
183
|
continue_session_id = (spec.continue_session_id or "").strip()
|
|
173
184
|
has_continue_session = bool(continue_session_id)
|
|
174
185
|
has_continue_fork = has_continue_session and spec.continue_fork
|
|
175
|
-
|
|
176
|
-
passthrough_tail = spec.extra_args
|
|
177
186
|
_reject_mode_collisions(passthrough_tail)
|
|
178
187
|
_reject_extension_collisions(passthrough_tail)
|
|
179
188
|
_reject_session_dir_collisions(passthrough_tail)
|
|
@@ -183,6 +192,11 @@ def project_pi_spec_to_cli_args(
|
|
|
183
192
|
has_managed_value=model_arg is not None,
|
|
184
193
|
passthrough_tail=passthrough_tail,
|
|
185
194
|
)
|
|
195
|
+
_log_collision_if_needed(
|
|
196
|
+
managed_flag="--thinking",
|
|
197
|
+
has_managed_value=emit_thinking,
|
|
198
|
+
passthrough_tail=passthrough_tail,
|
|
199
|
+
)
|
|
186
200
|
_log_collision_if_needed(
|
|
187
201
|
managed_flag="--append-system-prompt",
|
|
188
202
|
has_managed_value=bool(spec.appended_system_prompt),
|
|
@@ -124,8 +124,10 @@ Up to 10 retries; raises `RuntimeError` if exhausted.
|
|
|
124
124
|
|
|
125
125
|
`spawn/terminal_policy.py:decide_terminal_write()` implements the projection
|
|
126
126
|
authority rule: a runner-origin terminal write supersedes a reconciler-origin write
|
|
127
|
-
on the same spawn.
|
|
128
|
-
|
|
127
|
+
on the same spawn. Terminal statuses are `succeeded`, `failed`, `cancelled`, and
|
|
128
|
+
`timed_out`; `timed_out` is a terminal failure class distinct from generic
|
|
129
|
+
`failed`. The reaper checks authority before finalizing — it will not overwrite a
|
|
130
|
+
spawn that the runner already terminated with a higher-authority origin.
|
|
129
131
|
|
|
130
132
|
### Reaper Behavior
|
|
131
133
|
|
|
@@ -137,13 +139,15 @@ Liveness check sequence per active spawn:
|
|
|
137
139
|
1. Skip if status is already terminal.
|
|
138
140
|
2. Skip if not a root-side-effect process (`is_root_side_effect_process()`).
|
|
139
141
|
3. Skip if heartbeat age < 120s (recently alive).
|
|
140
|
-
4. If status = `finalizing`:
|
|
141
|
-
|
|
142
|
-
failed (`orphan_finalization`).
|
|
143
|
-
5. If
|
|
142
|
+
4. If status = `finalizing`: prefer durable report / cancel precedence and recorded
|
|
143
|
+
`runner_exit_status`; if neither proves a terminal outcome and activity is stale,
|
|
144
|
+
mark failed (`orphan_finalization`).
|
|
145
|
+
5. If `runner_exit_status` is already recorded outside `finalizing`, preserve the
|
|
146
|
+
runner's terminal tuple after the short post-runner-exit grace.
|
|
147
|
+
6. If status = `running` or `queued`: check if `runner_pid` is alive (using
|
|
144
148
|
`liveness.py:is_process_alive()` with PID reuse guard via recorded start time).
|
|
145
|
-
If dead, check completion/cancel precedence,
|
|
146
|
-
|
|
149
|
+
If dead, check completion/cancel precedence, recent activity, startup grace, and
|
|
150
|
+
finally mark failed (`orphan_run` or `missing_runner_pid`).
|
|
147
151
|
|
|
148
152
|
`spawn_report_has_durable_completion(runtime_root, spawn_id)` reads `report.md` and returns True
|
|
149
153
|
for non-empty report content that is not a terminal control frame (`cancelled`/`error`
|
|
@@ -160,9 +164,9 @@ violating the rule can let a late cancel downgrade a completed spawn.
|
|
|
160
164
|
**Managed-primary orphan cleanup:**
|
|
161
165
|
|
|
162
166
|
When a spawn is flagged as a potential managed primary (Codex / OpenCode kind=primary)
|
|
163
|
-
and must be finalized as failed, `reconcile_active_spawn()`
|
|
164
|
-
|
|
165
|
-
readable:
|
|
167
|
+
and must be finalized as failed, `reconcile_active_spawn()` first uses recorded
|
|
168
|
+
`process_scopes.json` cleanup, then attempts managed-primary cleanup before writing
|
|
169
|
+
the terminal state. The managed tier used depends on how much metadata is readable:
|
|
166
170
|
|
|
167
171
|
1. **Managed snapshot available** (`read_managed_primary_snapshot()` succeeded):
|
|
168
172
|
`terminate_managed_primary_processes(managed_snapshot.metadata)` — terminates
|
|
@@ -79,8 +79,9 @@ Liveness sequence per active spawn:
|
|
|
79
79
|
1. Skip if already terminal.
|
|
80
80
|
2. Skip if heartbeat age < 120s.
|
|
81
81
|
3. `finalizing` with durable report → mark succeeded.
|
|
82
|
-
4. `finalizing` without durable report → mark failed (`orphan_finalization`).
|
|
82
|
+
4. `finalizing` without durable report or recorded runner terminal tuple → mark failed (`orphan_finalization`).
|
|
83
83
|
5. `running`/`queued` with dead PID (checked with start-time reuse guard) → mark failed (`orphan_run`).
|
|
84
|
+
6. Timeouts are terminal `timed_out`, a failure class distinct from generic `failed`.
|
|
84
85
|
|
|
85
86
|
## Entry Points
|
|
86
87
|
|
|
@@ -12,6 +12,12 @@ SpawnManager
|
|
|
12
12
|
├─ _observers: EventObserverRegistry
|
|
13
13
|
└─ _heartbeat_tasks: dict[SpawnId, Task]
|
|
14
14
|
|
|
15
|
+
DrainPlan
|
|
16
|
+
├─ coordinator: DrainCoordinator | None
|
|
17
|
+
├─ policy: DrainPolicy
|
|
18
|
+
├─ aux_wake / handle_aux_wake
|
|
19
|
+
└─ finalizer
|
|
20
|
+
|
|
15
21
|
SpawnSession
|
|
16
22
|
├─ connection: HarnessConnection ← live harness connection
|
|
17
23
|
├─ drain_task: Task ← background drain loop
|
|
@@ -27,7 +33,9 @@ The implementation is split by responsibility:
|
|
|
27
33
|
- `spawn_manager.py` — public registry/control API and generic live-spawn lifecycle
|
|
28
34
|
- `spawn_dispatch.py` — connection creation/start dispatch
|
|
29
35
|
- `spawn_drain_loop.py` — drain loop, persistence/observer/fan-out ordering, outcome priority
|
|
36
|
+
- `drain_coordinator.py` — `DrainPlan` plus the narrow `DrainCoordinator` seam
|
|
30
37
|
- `spawn_session.py` — `SpawnSession` and `DrainOutcome` carriers
|
|
38
|
+
- `resident_drain.py` — resident-backend descendant waiting and done-nudge model
|
|
31
39
|
- `pi_drain.py` — Pi spawned-session quiescence coordinator
|
|
32
40
|
- `pi_subspawn_tracker.py` — Pi child-spawn and notification tracking
|
|
33
41
|
- `disk_watcher.py` / `pi_quiescence.py` — disk-backed Pi quiescence inputs
|
|
@@ -48,6 +56,18 @@ Persistence is synchronous and happens before any notification. 10 consecutive
|
|
|
48
56
|
write failures abort the loop with a `failed` outcome. Do not reorder these stages
|
|
49
57
|
— observers and the subscriber must only see events that are durably written.
|
|
50
58
|
|
|
59
|
+
### DrainPlan Selection
|
|
60
|
+
|
|
61
|
+
`SpawnManager._select_drain_plan()` returns the whole drain-loop configuration for
|
|
62
|
+
one active spawn. Codex/OpenCode resident backends get a `ResidentDrainCoordinator`;
|
|
63
|
+
Pi RPC gets `PiDrainCoordinator` plus disk-watcher aux wakes; plain streaming
|
|
64
|
+
harnesses intentionally run with `DrainPlan(coordinator=None)`. There is no public
|
|
65
|
+
no-op coordinator class — absence of a coordinator is the plain path.
|
|
66
|
+
|
|
67
|
+
`DrainCoordinator` stays narrow: it observes events, handles terminal events,
|
|
68
|
+
provides timeouts, classifies stream close, and handles stream exit. Constant
|
|
69
|
+
configuration belongs in `DrainPlan`, not in coordinator methods.
|
|
70
|
+
|
|
51
71
|
### DrainOutcome Priority
|
|
52
72
|
|
|
53
73
|
When the drain loop exits, the outcome is determined in this order:
|
|
@@ -130,9 +150,9 @@ Generic policies control terminal event behavior:
|
|
|
130
150
|
|
|
131
151
|
`SingleTurnDrainPolicy` is the default. Pass `PersistentDrainPolicy` to
|
|
132
152
|
`start_spawn(drain_policy=...)` for chat sessions where the harness stays alive
|
|
133
|
-
across turns. Pi spawned-session behavior
|
|
134
|
-
policy
|
|
135
|
-
|
|
153
|
+
across turns. Pi spawned-session behavior and resident descendant waiting are not
|
|
154
|
+
generic policy flags: `SpawnManager` selects coordinators through `DrainPlan` when
|
|
155
|
+
the connection exposes the needed seam.
|
|
136
156
|
|
|
137
157
|
## Pi RPC Quiescence Drain
|
|
138
158
|
|
|
@@ -5,10 +5,12 @@ The async backbone between a live harness connection and the rest of the system.
|
|
|
5
5
|
core mechanism that moves events from the harness outward to persistence, observers,
|
|
6
6
|
and the subscriber queue.
|
|
7
7
|
|
|
8
|
-
Mostly mechanism. Generic terminal behavior lives in `DrainPolicy`;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
Mostly mechanism. Generic terminal behavior lives in `DrainPolicy`; harness-specific
|
|
9
|
+
completion waiting enters through `DrainPlan`. Plain streaming harnesses intentionally
|
|
10
|
+
run with `coordinator=None`; Pi and resident Codex/OpenCode paths get narrow
|
|
11
|
+
coordinators only when their connection exposes the needed seam. Keep Pi child-wave,
|
|
12
|
+
notification, disk-state, resident-done nudges, and tracked-process cleanup policy
|
|
13
|
+
behind the coordinator/tracker modules instead of growing `SpawnManager`.
|
|
12
14
|
|
|
13
15
|
Resident drain selection is capability-driven: a connection participates in the
|
|
14
16
|
resident descendant-wait path only when `connection.resident_backend` is present.
|
|
@@ -53,9 +55,9 @@ CLI paths: one short-lived instance per run.
|
|
|
53
55
|
events are dropped on `QueueFull` (with telemetry). The sentinel evicts one item if
|
|
54
56
|
needed to guarantee it gets through — without it, the subscriber hangs forever.
|
|
55
57
|
|
|
56
|
-
## DrainPolicy
|
|
58
|
+
## DrainPlan / DrainPolicy
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
`DrainPlan` carries the selected coordinator, policy, aux wake, and finalizer for one active spawn. Its `coordinator=None` value is the plain path. `DrainPolicy` governs terminal event behavior:
|
|
59
61
|
|
|
60
62
|
| Policy | On terminal event | Action |
|
|
61
63
|
|---|---|---|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/.context/CONTEXT.md
RENAMED
|
File without changes
|
|
File without changes
|