meridian-cli 0.2.19__tar.gz → 0.2.22__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.
Files changed (532) hide show
  1. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/PKG-INFO +1 -1
  2. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/pyproject.toml +3 -1
  3. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/__init__.py +1 -1
  4. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/bootstrap.py +8 -0
  5. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/AGENTS.md +1 -1
  6. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/settings.py +38 -0
  7. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/.context/CONTEXT.md +4 -4
  8. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/AGENTS.md +1 -1
  9. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/adapter.py +1 -0
  10. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/claude.py +5 -0
  11. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/codex.py +1 -0
  12. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/cursor.py +1 -0
  13. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/opencode.py +1 -0
  14. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/pi.py +1 -0
  15. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_claude.py +5 -0
  16. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_codex_streaming.py +1 -0
  17. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_codex_subprocess.py +1 -0
  18. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_cursor.py +1 -0
  19. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_opencode_streaming.py +1 -0
  20. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_opencode_subprocess.py +1 -0
  21. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_pi_native_tui.py +1 -0
  22. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_pi_rpc.py +1 -0
  23. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/context.py +75 -0
  24. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/launch_types.py +1 -0
  25. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/.gitignore +0 -0
  26. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/LICENSE +0 -0
  27. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/README.md +0 -0
  28. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/ag_ui/__init__.pyi +0 -0
  29. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/ag_ui/core.pyi +0 -0
  30. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/AGENTS.md +0 -0
  31. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/__main__.py +0 -0
  32. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/.context/CONTEXT.md +0 -0
  33. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/AGENTS.md +0 -0
  34. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/__init__.py +0 -0
  35. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/_cmd_utils.py +0 -0
  36. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/agent_help.py +0 -0
  37. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/app_tree.py +0 -0
  38. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/argv_normalization.py +0 -0
  39. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/bootstrap_cmd.py +0 -0
  40. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/chat_cmd.py +0 -0
  41. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/config_cmd.py +0 -0
  42. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/doctor_cmd.py +0 -0
  43. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/entrypoint.py +0 -0
  44. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/ext_cmd.py +0 -0
  45. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/ext_registration.py +0 -0
  46. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/hooks_authority.py +0 -0
  47. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/hooks_commands.py +0 -0
  48. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/kg_cmd.py +0 -0
  49. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/main.py +0 -0
  50. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/mars_passthrough.py +0 -0
  51. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/mermaid_cmd.py +0 -0
  52. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/migrate_cmd.py +0 -0
  53. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/misc_commands.py +0 -0
  54. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/models_cmd.py +0 -0
  55. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/output.py +0 -0
  56. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/primary_launch.py +0 -0
  57. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/qi_cmd.py +0 -0
  58. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/report_cmd.py +0 -0
  59. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/session_cmd.py +0 -0
  60. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/spawn.py +0 -0
  61. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/spawn_inject.py +0 -0
  62. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/startup/__init__.py +0 -0
  63. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/startup/catalog.py +0 -0
  64. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/startup/classify.py +0 -0
  65. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/startup/cyclopts_app.py +0 -0
  66. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/startup/help.py +0 -0
  67. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/startup/lazy_dispatch.py +0 -0
  68. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/startup/policy.py +0 -0
  69. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/streaming_serve.py +0 -0
  70. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/sync_cmd.py +0 -0
  71. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/telemetry_cmd.py +0 -0
  72. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/utils.py +0 -0
  73. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/work_cmd.py +0 -0
  74. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/cli/workspace_cmd.py +0 -0
  75. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/dev/AGENTS.md +0 -0
  76. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/dev/__init__.py +0 -0
  77. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/dev/pytests.py +0 -0
  78. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/__init__.py +0 -0
  79. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/bootstrap/.context/CONTEXT.md +0 -0
  80. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/bootstrap/AGENTS.md +0 -0
  81. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/bootstrap/__init__.py +0 -0
  82. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/bootstrap/config.py +0 -0
  83. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/bootstrap/project_state.py +0 -0
  84. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/bootstrap/runtime_state.py +0 -0
  85. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/bootstrap/services.py +0 -0
  86. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/.context/CONTEXT.md +0 -0
  87. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/AGENTS.md +0 -0
  88. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/__init__.py +0 -0
  89. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/agent.py +0 -0
  90. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/bootstrap.py +0 -0
  91. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/catalog_session.py +0 -0
  92. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/model_aliases.py +0 -0
  93. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/models.py +0 -0
  94. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/catalog/skill.py +0 -0
  95. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/.context/CONTEXT.md +0 -0
  96. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/AGENTS.md +0 -0
  97. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/__init__.py +0 -0
  98. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/backend_acquisition.py +0 -0
  99. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/backend_handle.py +0 -0
  100. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/checkpoint.py +0 -0
  101. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/command_handler.py +0 -0
  102. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/command_invariants.py +0 -0
  103. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/commands.py +0 -0
  104. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/.context/CONTEXT.md +0 -0
  105. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/AGENTS.md +0 -0
  106. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/__init__.py +0 -0
  107. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/discovery.py +0 -0
  108. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/launcher.py +0 -0
  109. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/policy.py +0 -0
  110. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/portless.py +0 -0
  111. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/raw_vite.py +0 -0
  112. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/dev_frontend/supervisor.py +0 -0
  113. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/event_index.py +0 -0
  114. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/event_log.py +0 -0
  115. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/event_observer.py +0 -0
  116. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/event_pipeline.py +0 -0
  117. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/frontend.py +0 -0
  118. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/.context/CONTEXT.md +0 -0
  119. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/AGENTS.md +0 -0
  120. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/__init__.py +0 -0
  121. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/base.py +0 -0
  122. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/claude.py +0 -0
  123. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/codex.py +0 -0
  124. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/common.py +0 -0
  125. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/opencode.py +0 -0
  126. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/registry.py +0 -0
  127. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/normalization/synthetic.py +0 -0
  128. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/policy.py +0 -0
  129. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/protocol.py +0 -0
  130. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/recovery.py +0 -0
  131. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/replay.py +0 -0
  132. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/runtime.py +0 -0
  133. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/server.py +0 -0
  134. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/session_service.py +0 -0
  135. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/chat/ws_fanout.py +0 -0
  136. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/.context/CONTEXT.md +0 -0
  137. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/__init__.py +0 -0
  138. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/catalog.py +0 -0
  139. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/context_config.py +0 -0
  140. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/preserving_edit.py +0 -0
  141. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/project_config_state.py +0 -0
  142. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/project_paths.py +0 -0
  143. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/project_root.py +0 -0
  144. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/schema.py +0 -0
  145. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/config/workspace.py +0 -0
  146. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/context/.context/CONTEXT.md +0 -0
  147. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/context/AGENTS.md +0 -0
  148. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/context/__init__.py +0 -0
  149. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/context/resolver.py +0 -0
  150. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/.context/CONTEXT.md +0 -0
  151. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/AGENTS.md +0 -0
  152. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/__init__.py +0 -0
  153. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/child_env.py +0 -0
  154. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/clock.py +0 -0
  155. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/codec.py +0 -0
  156. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/command_strings.py +0 -0
  157. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/context.py +0 -0
  158. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/conversation.py +0 -0
  159. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/depth.py +0 -0
  160. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/domain.py +0 -0
  161. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/execution_policy.py +0 -0
  162. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/formatting.py +0 -0
  163. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/launch_policy_snapshot.py +0 -0
  164. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/lifecycle.py +0 -0
  165. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/logging.py +0 -0
  166. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/overrides.py +0 -0
  167. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/process_cleanup.py +0 -0
  168. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/resolved_context.py +0 -0
  169. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/sink.py +0 -0
  170. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/spawn_lifecycle.py +0 -0
  171. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/spawn_service.py +0 -0
  172. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/spawn_start.py +0 -0
  173. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/telemetry.py +0 -0
  174. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/types.py +0 -0
  175. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/core/util.py +0 -0
  176. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/diagnostics.py +0 -0
  177. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/.context/CONTEXT.md +0 -0
  178. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/AGENTS.md +0 -0
  179. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/__init__.py +0 -0
  180. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/commands/.context/CONTEXT.md +0 -0
  181. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/commands/AGENTS.md +0 -0
  182. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/commands/__init__.py +0 -0
  183. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/commands/biomed.py +0 -0
  184. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/commands/mermaid.py +0 -0
  185. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/commands/sessions.py +0 -0
  186. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/commands/workbench.py +0 -0
  187. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/context.py +0 -0
  188. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/descriptors.py +0 -0
  189. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/dispatcher.py +0 -0
  190. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/first_party.py +0 -0
  191. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/observability.py +0 -0
  192. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/registry.py +0 -0
  193. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/extensions/types.py +0 -0
  194. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/__init__.py +0 -0
  195. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/bundle.py +0 -0
  196. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/claude_preflight.py +0 -0
  197. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/claude_utils.py +0 -0
  198. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/codex_rollout.py +0 -0
  199. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/common.py +0 -0
  200. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/.context/CONTEXT.md +0 -0
  201. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/AGENTS.md +0 -0
  202. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/__init__.py +0 -0
  203. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/base.py +0 -0
  204. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/claude_ws.py +0 -0
  205. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/codex_ws.py +0 -0
  206. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/cursor_subprocess.py +0 -0
  207. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/errors.py +0 -0
  208. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/opencode_http.py +0 -0
  209. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/connections/pi_rpc.py +0 -0
  210. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/control_action.py +0 -0
  211. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/cost.py +0 -0
  212. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/errors.py +0 -0
  213. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractor.py +0 -0
  214. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/.context/CONTEXT.md +0 -0
  215. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/AGENTS.md +0 -0
  216. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/__init__.py +0 -0
  217. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/base.py +0 -0
  218. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/claude.py +0 -0
  219. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/codex.py +0 -0
  220. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/cursor.py +0 -0
  221. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/opencode.py +0 -0
  222. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/extractors/pi.py +0 -0
  223. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/launch_spec.py +0 -0
  224. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/launch_types.py +0 -0
  225. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/opencode_storage.py +0 -0
  226. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/opencode_transcript.py +0 -0
  227. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/.context/CONTEXT.md +0 -0
  228. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/AGENTS.md +0 -0
  229. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/__init__.py +0 -0
  230. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/base.py +0 -0
  231. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/claude.py +0 -0
  232. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/codex.py +0 -0
  233. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/opencode.py +0 -0
  234. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/passthrough/registry.py +0 -0
  235. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/permission_broker.py +0 -0
  236. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/pi_lifecycle_events.py +0 -0
  237. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/pi_paths.py +0 -0
  238. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/pi_runtime_resolver.py +0 -0
  239. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/.context/CONTEXT.md +0 -0
  240. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/AGENTS.md +0 -0
  241. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/__init__.py +0 -0
  242. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/_guards.py +0 -0
  243. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/permission_flags.py +0 -0
  244. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/pi_extension_projection.py +0 -0
  245. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/project_codex_common.py +0 -0
  246. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/projections/projection_errors.py +0 -0
  247. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/registry.py +0 -0
  248. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/semantics.py +0 -0
  249. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/session_detection.py +0 -0
  250. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/harness/transcript.py +0 -0
  251. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/.context/CONTEXT.md +0 -0
  252. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/AGENTS.md +0 -0
  253. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/__init__.py +0 -0
  254. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/builtin/.context/CONTEXT.md +0 -0
  255. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/builtin/AGENTS.md +0 -0
  256. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/builtin/__init__.py +0 -0
  257. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/builtin/autosync_store.py +0 -0
  258. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/builtin/base.py +0 -0
  259. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/builtin/git_autosync.py +0 -0
  260. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/builtin_registry.py +0 -0
  261. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/config.py +0 -0
  262. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/dispatch.py +0 -0
  263. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/interval.py +0 -0
  264. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/registry.py +0 -0
  265. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/runner.py +0 -0
  266. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/hooks/types.py +0 -0
  267. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ignores.py +0 -0
  268. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/kg/.context/CONTEXT.md +0 -0
  269. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/kg/AGENTS.md +0 -0
  270. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/kg/__init__.py +0 -0
  271. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/kg/graph.py +0 -0
  272. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/kg/report.py +0 -0
  273. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/kg/serializer.py +0 -0
  274. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/kg/types.py +0 -0
  275. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/.context/CONTEXT.md +0 -0
  276. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/AGENTS.md +0 -0
  277. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/__init__.py +0 -0
  278. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/artifact_io.py +0 -0
  279. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/bundle_adapter.py +0 -0
  280. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/claude_session_access.py +0 -0
  281. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/command.py +0 -0
  282. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/compiler.py +0 -0
  283. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/composition.py +0 -0
  284. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/composition_spawn.py +0 -0
  285. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/constants.py +0 -0
  286. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/cwd.py +0 -0
  287. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/env.py +0 -0
  288. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/errors.py +0 -0
  289. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/extract.py +0 -0
  290. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/fork.py +0 -0
  291. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/materialize.py +0 -0
  292. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/permissions.py +0 -0
  293. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/plan.py +0 -0
  294. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/policies.py +0 -0
  295. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/policy_snapshot.py +0 -0
  296. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/.context/CONTEXT.md +0 -0
  297. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/AGENTS.md +0 -0
  298. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/__init__.py +0 -0
  299. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/ports.py +0 -0
  300. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/primary_attach.py +0 -0
  301. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/pty_launcher.py +0 -0
  302. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/runner.py +0 -0
  303. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/session.py +0 -0
  304. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/subprocess_launcher.py +0 -0
  305. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/process/windows_launcher.py +0 -0
  306. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/prompt.py +0 -0
  307. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/reference.py +0 -0
  308. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/report.py +0 -0
  309. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/request.py +0 -0
  310. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/resolution.py +0 -0
  311. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/resolve.py +0 -0
  312. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/run_inputs.py +0 -0
  313. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/runner_helpers.py +0 -0
  314. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/session_scope.py +0 -0
  315. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/signals.py +0 -0
  316. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/streaming/.context/CONTEXT.md +0 -0
  317. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/streaming/AGENTS.md +0 -0
  318. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/streaming/__init__.py +0 -0
  319. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/streaming/heartbeat.py +0 -0
  320. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/streaming/terminal_arbitrator.py +0 -0
  321. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/streaming_runner.py +0 -0
  322. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/text_utils.py +0 -0
  323. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/types.py +0 -0
  324. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/workspace.py +0 -0
  325. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/workspace_projection.py +0 -0
  326. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/launch/written_files.py +0 -0
  327. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/markdown/.context/CONTEXT.md +0 -0
  328. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/markdown/AGENTS.md +0 -0
  329. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/markdown/__init__.py +0 -0
  330. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/markdown/extract.py +0 -0
  331. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/markdown/types.py +0 -0
  332. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/.context/CONTEXT.md +0 -0
  333. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/AGENTS.md +0 -0
  334. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/__init__.py +0 -0
  335. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/report.py +0 -0
  336. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/scanner.py +0 -0
  337. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/serializer.py +0 -0
  338. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/.context/CONTEXT.md +0 -0
  339. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/AGENTS.md +0 -0
  340. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/__init__.py +0 -0
  341. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/bare_end.py +0 -0
  342. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/fill_no_color.py +0 -0
  343. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/line_map.py +0 -0
  344. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/ox_edge.py +0 -0
  345. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/preprocess.py +0 -0
  346. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/suppression.py +0 -0
  347. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/style/types.py +0 -0
  348. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/mermaid/validator.py +0 -0
  349. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/observability/.context/CONTEXT.md +0 -0
  350. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/observability/AGENTS.md +0 -0
  351. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/observability/__init__.py +0 -0
  352. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/observability/debug_tracer.py +0 -0
  353. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/observability/trace_helpers.py +0 -0
  354. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/.context/CONTEXT.md +0 -0
  355. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/AGENTS.md +0 -0
  356. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/__init__.py +0 -0
  357. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/catalog.py +0 -0
  358. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/commands.py +0 -0
  359. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/config.py +0 -0
  360. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/config_surface.py +0 -0
  361. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/context.py +0 -0
  362. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/diag.py +0 -0
  363. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/hooks.py +0 -0
  364. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/init_ops.py +0 -0
  365. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/mars.py +0 -0
  366. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/migration.py +0 -0
  367. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/pruning.py +0 -0
  368. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/qi.py +0 -0
  369. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/reference.py +0 -0
  370. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/reference_recovery.py +0 -0
  371. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/report.py +0 -0
  372. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/runtime.py +0 -0
  373. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_corpus.py +0 -0
  374. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_export.py +0 -0
  375. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_log.py +0 -0
  376. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_log_render.py +0 -0
  377. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_render.py +0 -0
  378. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_repair.py +0 -0
  379. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_search.py +0 -0
  380. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_target.py +0 -0
  381. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/session_transcript.py +0 -0
  382. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/.context/CONTEXT.md +0 -0
  383. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/AGENTS.md +0 -0
  384. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/__init__.py +0 -0
  385. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/api.py +0 -0
  386. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/context_ref.py +0 -0
  387. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/execute.py +0 -0
  388. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/execute_bg.py +0 -0
  389. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/execute_init.py +0 -0
  390. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/execute_runner.py +0 -0
  391. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/execute_session.py +0 -0
  392. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/failure_policy.py +0 -0
  393. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/models.py +0 -0
  394. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/prepare.py +0 -0
  395. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/spawn/query.py +0 -0
  396. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/sync_conflicts.py +0 -0
  397. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/work_attachment.py +0 -0
  398. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/work_dashboard.py +0 -0
  399. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/work_lifecycle.py +0 -0
  400. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/work_sessions.py +0 -0
  401. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/ops/workspace.py +0 -0
  402. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/.context/CONTEXT.md +0 -0
  403. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/AGENTS.md +0 -0
  404. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/__init__.py +0 -0
  405. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/locking.py +0 -0
  406. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/process_scope/.context/CONTEXT.md +0 -0
  407. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/process_scope/AGENTS.md +0 -0
  408. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/process_scope/__init__.py +0 -0
  409. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/process_scope/base.py +0 -0
  410. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/process_scope/fallback.py +0 -0
  411. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/process_scope/posix.py +0 -0
  412. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/process_scope/windows_job.py +0 -0
  413. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/terminate.py +0 -0
  414. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/unix_modules.py +0 -0
  415. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/platform/windows_job.py +0 -0
  416. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/safety/.context/CONTEXT.md +0 -0
  417. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/safety/AGENTS.md +0 -0
  418. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/safety/__init__.py +0 -0
  419. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/safety/budget.py +0 -0
  420. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/safety/guardrails.py +0 -0
  421. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/safety/permissions.py +0 -0
  422. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/safety/redaction.py +0 -0
  423. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/service_context.py +0 -0
  424. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/spawn/.context/CONTEXT.md +0 -0
  425. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/spawn/AGENTS.md +0 -0
  426. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/spawn/__init__.py +0 -0
  427. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/spawn/archive.py +0 -0
  428. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/.context/CONTEXT.md +0 -0
  429. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/AGENTS.md +0 -0
  430. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/__init__.py +0 -0
  431. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/artifact_store.py +0 -0
  432. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/atomic.py +0 -0
  433. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/event_store.py +0 -0
  434. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/history.py +0 -0
  435. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/launch_boundary.py +0 -0
  436. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/liveness.py +0 -0
  437. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/managed_primary.py +0 -0
  438. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/paths.py +0 -0
  439. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/primary_meta.py +0 -0
  440. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/process_scope_projection.py +0 -0
  441. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/reaper.py +0 -0
  442. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/runtime_root.py +0 -0
  443. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/session_store.py +0 -0
  444. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn/.context/CONTEXT.md +0 -0
  445. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn/AGENTS.md +0 -0
  446. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn/__init__.py +0 -0
  447. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn/model.py +0 -0
  448. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn/repository.py +0 -0
  449. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn/terminal_policy.py +0 -0
  450. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn/transitions.py +0 -0
  451. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/spawn_store.py +0 -0
  452. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/user_paths.py +0 -0
  453. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/wordgen.py +0 -0
  454. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/wordlists.py +0 -0
  455. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/state/work_store.py +0 -0
  456. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/.context/CONTEXT.md +0 -0
  457. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/AGENTS.md +0 -0
  458. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/__init__.py +0 -0
  459. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/control_socket.py +0 -0
  460. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/disk_watcher.py +0 -0
  461. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/drain_policy.py +0 -0
  462. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/drain_wait.py +0 -0
  463. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/event_observers.py +0 -0
  464. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/heartbeat.py +0 -0
  465. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/pi_drain.py +0 -0
  466. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/pi_process_cleanup.py +0 -0
  467. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/pi_quiescence.py +0 -0
  468. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/pi_subspawn_tracker.py +0 -0
  469. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/signal_canceller.py +0 -0
  470. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/spawn_dispatch.py +0 -0
  471. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/spawn_drain_loop.py +0 -0
  472. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/spawn_manager.py +0 -0
  473. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/spawn_session.py +0 -0
  474. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/streaming/types.py +0 -0
  475. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/__init__.py +0 -0
  476. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/bootstrap.py +0 -0
  477. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/correlation.py +0 -0
  478. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/events.py +0 -0
  479. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/init.py +0 -0
  480. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/local_jsonl.py +0 -0
  481. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/maintenance.py +0 -0
  482. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/observer.py +0 -0
  483. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/observers.py +0 -0
  484. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/query.py +0 -0
  485. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/reader.py +0 -0
  486. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/retention.py +0 -0
  487. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/router.py +0 -0
  488. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/sinks.py +0 -0
  489. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/telemetry/status.py +0 -0
  490. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/tools.py +0 -0
  491. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/utils/__init__.py +0 -0
  492. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/lib/utils/time.py +0 -0
  493. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/.context/CONTEXT.md +0 -0
  494. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/README.md +0 -0
  495. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/__init__.py +0 -0
  496. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/dist/extensions/managed-bash/index.js +0 -0
  497. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/dist/extensions/meridian-spawn-watch/index.js +0 -0
  498. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/managed-bash/bundle.smoke.test.ts +0 -0
  499. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_log_store.ts +0 -0
  500. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.test.ts +0 -0
  501. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.ts +0 -0
  502. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/managed-bash/src/index.ts +0 -0
  503. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/bundle.smoke.test.ts +0 -0
  504. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.ts +0 -0
  505. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/ids.ts +0 -0
  506. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/json_file.ts +0 -0
  507. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/log_overlay.ts +0 -0
  508. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/meridian_cli.ts +0 -0
  509. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.test.ts +0 -0
  510. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.ts +0 -0
  511. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/pi_harness_profile.ts +0 -0
  512. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/pi_state_paths.ts +0 -0
  513. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/schemas.ts +0 -0
  514. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/selectable_panel.test.ts +0 -0
  515. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/selectable_panel.ts +0 -0
  516. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/extensions/shared/ui.ts +0 -0
  517. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/package.json +0 -0
  518. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/pnpm-lock.yaml +0 -0
  519. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/pnpm-workspace.yaml +0 -0
  520. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/scripts/verify-extensions-loop.mjs +0 -0
  521. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/pi_runtime/vitest.config.ts +0 -0
  522. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/plugin_api/AGENTS.md +0 -0
  523. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/plugin_api/__init__.py +0 -0
  524. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/plugin_api/config.py +0 -0
  525. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/plugin_api/fs.py +0 -0
  526. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/plugin_api/git.py +0 -0
  527. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/plugin_api/state.py +0 -0
  528. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/plugin_api/types.py +0 -0
  529. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/py.typed +0 -0
  530. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/server/AGENTS.md +0 -0
  531. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/src/meridian/server/__init__.py +0 -0
  532. {meridian_cli-0.2.19 → meridian_cli-0.2.22}/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.2.19
3
+ Version: 0.2.22
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
@@ -63,7 +63,9 @@ templates = [
63
63
  ]
64
64
 
65
65
  [build-system]
66
- requires = ["hatchling>=1.25.0"]
66
+ # Pinned: hatchling >=1.28 emits Metadata-Version 2.5, rejected by pypa/gh-action-pypi-publish.
67
+ # When the publisher supports 2.5, remove the pin and drop scripts/verify-release-metadata.py.
68
+ requires = ["hatchling==1.27.0"]
67
69
  build-backend = "hatchling.build"
68
70
 
69
71
  [tool.hatch.version]
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.2.19"
5
+ __version__ = "0.2.22"
@@ -23,12 +23,20 @@ _TOP_LEVEL_VALUE_FLAGS = frozenset(
23
23
  "--fork",
24
24
  "--fork-fresh",
25
25
  "--from",
26
+ "--file",
27
+ "-f",
28
+ "--prompt-file",
29
+ "--prompt",
30
+ "-p",
31
+ "--skills",
32
+ "--goal",
26
33
  "--model",
27
34
  "-m",
28
35
  "--harness",
29
36
  "-a",
30
37
  "--work",
31
38
  "--autocompact",
39
+ "--autocompact-pct",
32
40
  "--effort",
33
41
  "--sandbox",
34
42
  "--approval",
@@ -71,7 +71,7 @@ Claude profile includes:
71
71
  - `[harness.claude] wait_yield_seconds` — polling interval (float, env:
72
72
  `MERIDIAN_HARNESS_WAIT_YIELD_SECONDS_CLAUDE`)
73
73
  - `[harness.claude] allow_builtin_agents` — whether to permit Claude's built-in
74
- subagents (Explore, Plan, General-purpose). Default `false` — Meridian denies them
74
+ subagents (Explore, Plan, general-purpose). Default `false` — Meridian denies them
75
75
  so sessions use custom Meridian agents exclusively. Set `true` to opt out.
76
76
 
77
77
  ## Depth
@@ -345,6 +345,15 @@ def _normalize_harness_table(
345
345
  )
346
346
  harness_values["wait_yield_seconds"] = float(harness_value)
347
347
  continue
348
+ if key == "claude" and harness_key == "allow_builtin_agents":
349
+ if not isinstance(harness_value, bool):
350
+ raise ValueError(
351
+ f"Invalid value for '{source}.{key}.allow_builtin_agents': "
352
+ f"expected bool, got "
353
+ f"{type(harness_value).__name__} ({harness_value!r})."
354
+ )
355
+ harness_values["allow_builtin_agents"] = harness_value
356
+ continue
348
357
  if key == "pi" and harness_key == "disable_managed_bash":
349
358
  if not isinstance(harness_value, bool):
350
359
  raise ValueError(
@@ -425,6 +434,9 @@ def _normalize_spawn_table(raw_value: object, *, source: str) -> dict[str, objec
425
434
 
426
435
  values: dict[str, object] = {}
427
436
  for key, value in cast("dict[str, object]", raw_value).items():
437
+ if key == "deny_headless_harnesses":
438
+ values[key] = _parse_toml_list(raw_value=value, source=f"{source}.{key}")
439
+ continue
428
440
  if key not in {"default_wait_yield_seconds", "min_wait_yield_seconds"}:
429
441
  logger.warning("Ignoring unknown Meridian config key '%s.%s'.", source, key)
430
442
  continue
@@ -1154,6 +1166,7 @@ class HarnessProfileConfig(BaseModel):
1154
1166
 
1155
1167
 
1156
1168
  class ClaudeHarnessProfileConfig(HarnessProfileConfig):
1169
+ allow_builtin_agents: bool = False
1157
1170
  model: Annotated[
1158
1171
  str,
1159
1172
  config_field(
@@ -1354,6 +1367,14 @@ class MeridianConfig(BaseSettings):
1354
1367
  env_vars=("MERIDIAN_MIN_WAIT_YIELD_SECONDS",),
1355
1368
  ),
1356
1369
  ] = 30.0
1370
+ deny_headless_harnesses: Annotated[
1371
+ tuple[str, ...],
1372
+ config_field(
1373
+ "spawn.deny_headless_harnesses",
1374
+ value_kind="str_list",
1375
+ file_aliases=(file_alias("spawn", "deny_headless_harnesses"),),
1376
+ ),
1377
+ ] = ()
1357
1378
  harness: HarnessConfig = Field(default_factory=HarnessConfig)
1358
1379
  primary: PrimaryConfig = Field(default_factory=PrimaryConfig)
1359
1380
  output: OutputConfig = Field(default_factory=OutputConfig)
@@ -1560,6 +1581,23 @@ def resolve_pi_harness_profile_for_launch(
1560
1581
  )
1561
1582
 
1562
1583
 
1584
+ def resolve_claude_allow_builtin_agents_for_launch(
1585
+ *,
1586
+ config_snapshot: dict[str, object] | None,
1587
+ project_root: Path,
1588
+ ) -> bool:
1589
+ """Resolve ``[harness.claude].allow_builtin_agents`` from a launch config snapshot."""
1590
+
1591
+ if config_snapshot:
1592
+ try:
1593
+ return bool(
1594
+ MeridianConfig.model_validate(config_snapshot).harness.claude.allow_builtin_agents
1595
+ )
1596
+ except Exception:
1597
+ pass
1598
+ return bool(load_config(project_root).harness.claude.allow_builtin_agents)
1599
+
1600
+
1563
1601
  def resolve_pi_disable_managed_bash() -> bool:
1564
1602
  """Resolve whether Meridian should skip Pi's managed bash extension."""
1565
1603
 
@@ -39,7 +39,7 @@ Per-harness mapping:
39
39
  - Claude subprocess: `claude -p --output-format stream-json --verbose -`
40
40
  - Claude connection: `claude -p --input-format stream-json --output-format stream-json --verbose` (stdin/stdout NDJSON, not WebSocket despite `claude_ws.py` name)
41
41
  - **Claude built-in agent denial**: Meridian injects `--disallowedTools
42
- Agent(Explore),Agent(Plan),Agent(General-purpose)` by default. Gated by
42
+ Agent(Explore),Agent(Plan),Agent(general-purpose)` by default. Gated by
43
43
  `[harness.claude] allow_builtin_agents` (bool, default `false`). The denials
44
44
  merge into permission-derived `--disallowedTools` via `dedupe_nonempty()`.
45
45
  - Codex subprocess: `codex exec --json`; connection: `codex app-server` (real WebSocket, JSON-RPC 2.0)
@@ -190,9 +190,9 @@ value. Windows does not support PTY — Claude primary uses a fallback detection
190
190
 
191
191
  ### Claude: Built-in Subagent Denial
192
192
 
193
- Claude Code ships with three built-in subagents: Explore, Plan, and General-purpose.
193
+ Claude Code ships with three built-in subagents: Explore, Plan, and general-purpose.
194
194
  These conflict with Meridian's own agent system. Meridian injects
195
- `--disallowedTools Agent(Explore),Agent(Plan),Agent(General-purpose)` by default
195
+ `--disallowedTools Agent(Explore),Agent(Plan),Agent(general-purpose)` by default
196
196
  so Claude sessions use custom Meridian agents exclusively. The behavior is gated by
197
197
  `[harness.claude] allow_builtin_agents` (bool, default `false`).
198
198
 
@@ -205,7 +205,7 @@ permission-derived `--disallowedTools` so exactly one flag is emitted.
205
205
  This is implemented as a Meridian platform policy (harness adapter injection),
206
206
  not as a per-agent `disallowed-tools` field. This means individual agent profiles
207
207
  no longer need to carry deny entries like
208
- `disallowed-tools: [Agent(Explore), Agent(Plan), Agent(General-purpose)]` —
208
+ `disallowed-tools: [Agent(Explore), Agent(Plan), Agent(general-purpose)]` —
209
209
  they're inherited from the harness adapter.
210
210
 
211
211
  ### Claude: System-Prompt File Channel
@@ -38,7 +38,7 @@ Per-harness commands:
38
38
  - Claude subprocess: `claude -p --output-format stream-json --verbose -`
39
39
  - Claude connection: stdin/stdout NDJSON (not WebSocket despite `claude_ws.py` name)
40
40
  - **Claude built-in agent denial**: Meridian injects
41
- `--disallowedTools Agent(Explore),Agent(Plan),Agent(General-purpose)` by default
41
+ `--disallowedTools Agent(Explore),Agent(Plan),Agent(general-purpose)` by default
42
42
  so sessions use custom Meridian agents instead of Claude's built-in subagents.
43
43
  Gated by `[harness.claude] allow_builtin_agents` (bool, default `false`).
44
44
  The builtin denials merge into permission-derived `--disallowedTools` via
@@ -237,6 +237,7 @@ class SpawnParams(BaseModel):
237
237
  context_from_payload: tuple[str, ...] = ()
238
238
  reference_items: tuple[Any, ...] = ()
239
239
  pi_harness_profile: PiHarnessProfileConfig | None = None
240
+ claude_allow_builtin_agents: bool = False
240
241
 
241
242
 
242
243
  class McpConfig(BaseModel):
@@ -265,6 +265,7 @@ class ClaudeAdapter(BaseHarnessAdapter[ResolvedLaunchSpec]):
265
265
  "mcp_tools",
266
266
  "projected_roots",
267
267
  "user_turn_content",
268
+ "claude_allow_builtin_agents",
268
269
  }
269
270
  )
270
271
  _EXPLICITLY_IGNORED_FIELDS: ClassVar[frozenset[str]] = frozenset(
@@ -374,6 +375,9 @@ class ClaudeAdapter(BaseHarnessAdapter[ResolvedLaunchSpec]):
374
375
  prompt_file_path = str(Path(run.control_root) / "system-prompt.md")
375
376
  # Extract user_turn_content from run params if available
376
377
  user_turn_content = getattr(run, "user_turn_content", None)
378
+ disallowed_tools: tuple[str, ...] = ()
379
+ if not run.claude_allow_builtin_agents:
380
+ disallowed_tools = ("Agent(Explore),Agent(Plan),Agent(general-purpose)",)
377
381
  return ResolvedLaunchSpec(
378
382
  harness=HarnessId.CLAUDE,
379
383
  model=str(run.model).strip() if run.model else None,
@@ -391,6 +395,7 @@ class ClaudeAdapter(BaseHarnessAdapter[ResolvedLaunchSpec]):
391
395
  agent_name=run.agent,
392
396
  prompt_file_path=prompt_file_path,
393
397
  user_turn_content=user_turn_content,
398
+ disallowed_tools=disallowed_tools,
394
399
  )
395
400
 
396
401
  def preflight(
@@ -286,6 +286,7 @@ class CodexAdapter(BaseHarnessAdapter[ResolvedLaunchSpec]):
286
286
  "reference_items",
287
287
  "task_cwd",
288
288
  "pi_harness_profile",
289
+ "claude_allow_builtin_agents",
289
290
  }
290
291
  )
291
292
 
@@ -75,6 +75,7 @@ class CursorAdapter(BaseHarnessAdapter[ResolvedLaunchSpec]):
75
75
  "continue_fork",
76
76
  "effort",
77
77
  "pi_harness_profile",
78
+ "claude_allow_builtin_agents",
78
79
  }
79
80
  )
80
81
 
@@ -350,6 +350,7 @@ class OpenCodeAdapter(BaseHarnessAdapter[ResolvedLaunchSpec]):
350
350
  "reference_items",
351
351
  "task_cwd",
352
352
  "pi_harness_profile",
353
+ "claude_allow_builtin_agents",
353
354
  }
354
355
  )
355
356
 
@@ -116,6 +116,7 @@ class PiAdapter(BaseHarnessAdapter[ResolvedLaunchSpec]):
116
116
  "context_from_payload",
117
117
  "reference_items",
118
118
  "task_cwd",
119
+ "claude_allow_builtin_agents",
119
120
  }
120
121
  )
121
122
 
@@ -33,6 +33,7 @@ _PROJECTED_FIELDS: frozenset[str] = frozenset(
33
33
  "prompt",
34
34
  "prompt_file_path",
35
35
  "user_turn_content",
36
+ "disallowed_tools",
36
37
  }
37
38
  )
38
39
 
@@ -179,6 +180,10 @@ def project_claude_spec_to_cli_args(
179
180
 
180
181
  permission_flags = resolve_permission_flags(spec.permission_resolver, HarnessId.CLAUDE)
181
182
  permission_tail, allowed_tools, disallowed_tools = _extract_claude_tool_flags(permission_flags)
183
+ spec_disallowed: list[str] = []
184
+ for entry in spec.disallowed_tools:
185
+ spec_disallowed.extend(split_csv_entries(entry))
186
+ disallowed_tools = dedupe_nonempty((*disallowed_tools, *spec_disallowed))
182
187
  allowed_tools = dedupe_nonempty((*allowed_tools, *parent_allowed_tools))
183
188
  command.extend(permission_tail)
184
189
  if allowed_tools:
@@ -75,6 +75,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
75
75
  "harness",
76
76
  "pi_extension_entrypoints",
77
77
  "load_all_pi_extensions",
78
+ "disallowed_tools",
78
79
  "prompt_file_path",
79
80
  "reference_items",
80
81
  "skills",
@@ -43,6 +43,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
43
43
  "harness",
44
44
  "pi_extension_entrypoints",
45
45
  "load_all_pi_extensions",
46
+ "disallowed_tools",
46
47
  "prompt_file_path",
47
48
  "reference_items",
48
49
  "skills",
@@ -43,6 +43,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
43
43
  "reference_items",
44
44
  "pi_extension_entrypoints",
45
45
  "load_all_pi_extensions",
46
+ "disallowed_tools",
46
47
  }
47
48
  )
48
49
 
@@ -50,6 +50,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
50
50
  "harness",
51
51
  "pi_extension_entrypoints",
52
52
  "load_all_pi_extensions",
53
+ "disallowed_tools",
53
54
  "prompt_file_path",
54
55
  "report_output_path",
55
56
  "task_cwd",
@@ -42,6 +42,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
42
42
  "harness",
43
43
  "pi_extension_entrypoints",
44
44
  "load_all_pi_extensions",
45
+ "disallowed_tools",
45
46
  "prompt_file_path",
46
47
  "reference_items",
47
48
  "report_output_path",
@@ -45,6 +45,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
45
45
  "mcp_tools",
46
46
  "projected_roots",
47
47
  "task_cwd",
48
+ "disallowed_tools",
48
49
  }
49
50
  )
50
51
 
@@ -46,6 +46,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
46
46
  "skills",
47
47
  "reference_items",
48
48
  "task_cwd",
49
+ "disallowed_tools",
49
50
  }
50
51
  )
51
52
 
@@ -23,6 +23,7 @@ from meridian.lib.config.settings import (
23
23
  MeridianConfig,
24
24
  PiHarnessProfileConfig,
25
25
  load_config,
26
+ resolve_claude_allow_builtin_agents_for_launch,
26
27
  resolve_pi_harness_profile_for_launch,
27
28
  )
28
29
  from meridian.lib.config.workspace import get_projectable_roots
@@ -555,6 +556,7 @@ def materialize_launch_artifacts(
555
556
  approval: str | None = None,
556
557
  unsafe_no_permissions: bool = False,
557
558
  pi_harness_profile: PiHarnessProfileConfig | None = None,
559
+ claude_allow_builtin_agents: bool = False,
558
560
  ) -> MaterializedLaunchArtifacts:
559
561
  """Build shared run/spec/permission launch artifacts."""
560
562
 
@@ -595,6 +597,7 @@ def materialize_launch_artifacts(
595
597
  reference_items=reference_items,
596
598
  user_turn_content=prompt_payload.user_turn_content,
597
599
  pi_harness_profile=pi_harness_profile,
600
+ claude_allow_builtin_agents=claude_allow_builtin_agents,
598
601
  )
599
602
  permission_config, perms = resolve_permission_pipeline(
600
603
  sandbox=sandbox,
@@ -611,6 +614,51 @@ def materialize_launch_artifacts(
611
614
  )
612
615
 
613
616
 
617
+ def _resolve_deny_headless_harnesses(
618
+ runtime: LaunchRuntime,
619
+ project_paths: ProjectConfigPaths,
620
+ ) -> tuple[str, ...]:
621
+ """Resolve ``[spawn].deny_headless_harnesses`` from config."""
622
+ if runtime.config_snapshot:
623
+ try:
624
+ return tuple(
625
+ MeridianConfig.model_validate(
626
+ runtime.config_snapshot
627
+ ).deny_headless_harnesses
628
+ )
629
+ except Exception:
630
+ pass
631
+ return tuple(load_config(project_paths.project_root).deny_headless_harnesses)
632
+
633
+
634
+ _CLAUDE_DELEGATION_GUIDANCE = (
635
+ "\n\n# Delegation\n"
636
+ "Prefer Agent() for agents in your agents menu — in-process, fast, visible.\n"
637
+ "Use `meridian spawn` for agents not in the menu or when you need session\n"
638
+ "tracking / cross-harness models. Use `/handoff` when the user takes the baton.\n"
639
+ )
640
+
641
+
642
+ def _inject_claude_delegation_guidance(
643
+ prompt_payload: PreparedPromptPayload,
644
+ *,
645
+ project_root: Path,
646
+ ) -> PreparedPromptPayload:
647
+ """Append delegation guidance when Claude has native agents available."""
648
+ claude_agents_dir = project_root / ".claude" / "agents"
649
+ try:
650
+ has_claude_agents = claude_agents_dir.is_dir() and any(claude_agents_dir.iterdir())
651
+ except OSError:
652
+ return prompt_payload
653
+ if not has_claude_agents:
654
+ return prompt_payload
655
+ existing = prompt_payload.appended_system_prompt or ""
656
+ return replace(
657
+ prompt_payload,
658
+ appended_system_prompt=(existing + _CLAUDE_DELEGATION_GUIDANCE).lstrip(),
659
+ )
660
+
661
+
614
662
  def _missing_continue_session_error(source_ref: str | None) -> str:
615
663
  normalized_source = (source_ref or "").strip()
616
664
  if normalized_source:
@@ -1683,6 +1731,17 @@ def bind_launch_context(
1683
1731
  }
1684
1732
  )
1685
1733
 
1734
+ if (
1735
+ runtime.composition_surface == LaunchCompositionSurface.SPAWN_PREPARE
1736
+ and harness.id.value in _resolve_deny_headless_harnesses(runtime, project_paths)
1737
+ ):
1738
+ raise ValueError(
1739
+ f"Headless spawns on the '{harness.id.value}' harness are denied by "
1740
+ f"'[spawn] deny_headless_harnesses' in meridian.toml. "
1741
+ f"Use a native primary session for the {harness.id.value} harness, "
1742
+ "or change the setting in meridian.toml."
1743
+ )
1744
+
1686
1745
  is_primary_launch = runtime.composition_surface == LaunchCompositionSurface.PRIMARY
1687
1746
  inject_task_cwd_instruction = directory_context.should_inject_task_cwd_instruction(
1688
1747
  runtime.composition_surface
@@ -1695,6 +1754,21 @@ def bind_launch_context(
1695
1754
  if harness.id == HarnessId.PI
1696
1755
  else None
1697
1756
  )
1757
+ claude_allow_builtin_agents = (
1758
+ resolve_claude_allow_builtin_agents_for_launch(
1759
+ config_snapshot=runtime.config_snapshot,
1760
+ project_root=project_paths.project_root,
1761
+ )
1762
+ if harness.id == HarnessId.CLAUDE
1763
+ else False
1764
+ )
1765
+ if (
1766
+ harness.id == HarnessId.CLAUDE
1767
+ and runtime.composition_surface == LaunchCompositionSurface.PRIMARY
1768
+ ):
1769
+ prompt_payload = _inject_claude_delegation_guidance(
1770
+ prompt_payload, project_root=project_root
1771
+ )
1698
1772
  materialized = materialize_launch_artifacts(
1699
1773
  harness=harness,
1700
1774
  prompt=resolved_request.prompt,
@@ -1724,6 +1798,7 @@ def bind_launch_context(
1724
1798
  approval=resolved_request.execution_policy.approval,
1725
1799
  unsafe_no_permissions=runtime.unsafe_no_permissions,
1726
1800
  pi_harness_profile=pi_harness_profile,
1801
+ claude_allow_builtin_agents=claude_allow_builtin_agents,
1727
1802
  )
1728
1803
  run_params = materialized.run_params
1729
1804
 
@@ -106,6 +106,7 @@ class ResolvedLaunchSpec(BaseModel):
106
106
  # Claude only
107
107
  agents_payload: str | None = None
108
108
  prompt_file_path: str | None = None
109
+ disallowed_tools: tuple[str, ...] = ()
109
110
 
110
111
  # Claude + Codex
111
112
  user_turn_content: str | None = None
File without changes
File without changes
File without changes