meridian-cli 0.3.3__tar.gz → 0.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/PKG-INFO +1 -1
  2. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/__init__.py +1 -1
  3. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/spawn.py +15 -0
  4. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/settings.py +36 -0
  5. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/child_env.py +1 -1
  6. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/launch_policy_snapshot.py +1 -0
  7. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/spawn_service.py +18 -0
  8. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/env.py +2 -2
  9. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/policy_snapshot.py +1 -0
  10. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/runner.py +5 -0
  11. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/request.py +1 -0
  12. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/config.py +41 -0
  13. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/api.py +2 -0
  14. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/execute_runner.py +4 -0
  15. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/models.py +3 -0
  16. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/prepare.py +30 -0
  17. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/.gitignore +0 -0
  18. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/LICENSE +0 -0
  19. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/README.md +0 -0
  20. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/pyproject.toml +0 -0
  21. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/ag_ui/__init__.pyi +0 -0
  22. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/ag_ui/core.pyi +0 -0
  23. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/AGENTS.md +0 -0
  24. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/__main__.py +0 -0
  25. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/.context/CONTEXT.md +0 -0
  26. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/AGENTS.md +0 -0
  27. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/__init__.py +0 -0
  28. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/_cmd_utils.py +0 -0
  29. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/agent_help.py +0 -0
  30. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/app_tree.py +0 -0
  31. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/argv_normalization.py +0 -0
  32. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/bootstrap.py +0 -0
  33. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/bootstrap_cmd.py +0 -0
  34. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/chat_cmd.py +0 -0
  35. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/config_cmd.py +0 -0
  36. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/doctor_cmd.py +0 -0
  37. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/entrypoint.py +0 -0
  38. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/ext_cmd.py +0 -0
  39. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/ext_registration.py +0 -0
  40. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/hooks_authority.py +0 -0
  41. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/hooks_commands.py +0 -0
  42. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/kg_cmd.py +0 -0
  43. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/main.py +0 -0
  44. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/mars_passthrough.py +0 -0
  45. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/mermaid_cmd.py +0 -0
  46. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/migrate_cmd.py +0 -0
  47. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/misc_commands.py +0 -0
  48. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/models_cmd.py +0 -0
  49. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/output.py +0 -0
  50. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/primary_launch.py +0 -0
  51. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/qi_cmd.py +0 -0
  52. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/report_cmd.py +0 -0
  53. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/session_cmd.py +0 -0
  54. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/spawn_inject.py +0 -0
  55. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/startup/__init__.py +0 -0
  56. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/startup/catalog.py +0 -0
  57. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/startup/classify.py +0 -0
  58. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/startup/cyclopts_app.py +0 -0
  59. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/startup/help.py +0 -0
  60. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/startup/lazy_dispatch.py +0 -0
  61. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/startup/policy.py +0 -0
  62. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/streaming_serve.py +0 -0
  63. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/sync_cmd.py +0 -0
  64. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/telemetry_cmd.py +0 -0
  65. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/utils.py +0 -0
  66. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/work_cmd.py +0 -0
  67. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/cli/workspace_cmd.py +0 -0
  68. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/dev/AGENTS.md +0 -0
  69. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/dev/__init__.py +0 -0
  70. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/dev/pytests.py +0 -0
  71. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/__init__.py +0 -0
  72. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/bootstrap/.context/CONTEXT.md +0 -0
  73. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/bootstrap/AGENTS.md +0 -0
  74. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/bootstrap/__init__.py +0 -0
  75. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/bootstrap/config.py +0 -0
  76. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/bootstrap/project_state.py +0 -0
  77. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/bootstrap/runtime_state.py +0 -0
  78. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/bootstrap/services.py +0 -0
  79. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/.context/CONTEXT.md +0 -0
  80. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/AGENTS.md +0 -0
  81. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/__init__.py +0 -0
  82. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/agent.py +0 -0
  83. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/bootstrap.py +0 -0
  84. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/catalog_session.py +0 -0
  85. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/model_aliases.py +0 -0
  86. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/models.py +0 -0
  87. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/catalog/skill.py +0 -0
  88. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/.context/CONTEXT.md +0 -0
  89. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/AGENTS.md +0 -0
  90. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/__init__.py +0 -0
  91. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/backend_acquisition.py +0 -0
  92. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/backend_handle.py +0 -0
  93. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/checkpoint.py +0 -0
  94. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/command_handler.py +0 -0
  95. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/command_invariants.py +0 -0
  96. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/commands.py +0 -0
  97. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/.context/CONTEXT.md +0 -0
  98. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/AGENTS.md +0 -0
  99. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/__init__.py +0 -0
  100. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/discovery.py +0 -0
  101. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/launcher.py +0 -0
  102. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/policy.py +0 -0
  103. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/portless.py +0 -0
  104. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/raw_vite.py +0 -0
  105. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/dev_frontend/supervisor.py +0 -0
  106. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/event_index.py +0 -0
  107. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/event_log.py +0 -0
  108. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/event_observer.py +0 -0
  109. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/event_pipeline.py +0 -0
  110. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/frontend.py +0 -0
  111. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/.context/CONTEXT.md +0 -0
  112. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/AGENTS.md +0 -0
  113. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/__init__.py +0 -0
  114. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/base.py +0 -0
  115. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/claude.py +0 -0
  116. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/codex.py +0 -0
  117. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/common.py +0 -0
  118. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/opencode.py +0 -0
  119. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/registry.py +0 -0
  120. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/normalization/synthetic.py +0 -0
  121. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/policy.py +0 -0
  122. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/protocol.py +0 -0
  123. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/recovery.py +0 -0
  124. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/replay.py +0 -0
  125. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/runtime.py +0 -0
  126. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/server.py +0 -0
  127. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/session_service.py +0 -0
  128. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/chat/ws_fanout.py +0 -0
  129. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/.context/CONTEXT.md +0 -0
  130. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/AGENTS.md +0 -0
  131. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/__init__.py +0 -0
  132. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/catalog.py +0 -0
  133. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/context_config.py +0 -0
  134. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/preserving_edit.py +0 -0
  135. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/project_config_state.py +0 -0
  136. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/project_paths.py +0 -0
  137. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/project_root.py +0 -0
  138. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/schema.py +0 -0
  139. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/config/workspace.py +0 -0
  140. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/context/.context/CONTEXT.md +0 -0
  141. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/context/AGENTS.md +0 -0
  142. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/context/__init__.py +0 -0
  143. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/context/resolver.py +0 -0
  144. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/.context/CONTEXT.md +0 -0
  145. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/AGENTS.md +0 -0
  146. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/__init__.py +0 -0
  147. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/clock.py +0 -0
  148. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/codec.py +0 -0
  149. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/command_strings.py +0 -0
  150. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/context.py +0 -0
  151. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/conversation.py +0 -0
  152. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/depth.py +0 -0
  153. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/domain.py +0 -0
  154. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/execution_policy.py +0 -0
  155. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/formatting.py +0 -0
  156. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/lifecycle.py +0 -0
  157. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/logging.py +0 -0
  158. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/overrides.py +0 -0
  159. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/process_cleanup.py +0 -0
  160. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/resolved_context.py +0 -0
  161. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/sink.py +0 -0
  162. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/spawn_lifecycle.py +0 -0
  163. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/spawn_start.py +0 -0
  164. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/telemetry.py +0 -0
  165. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/types.py +0 -0
  166. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/core/util.py +0 -0
  167. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/diagnostics.py +0 -0
  168. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/.context/CONTEXT.md +0 -0
  169. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/AGENTS.md +0 -0
  170. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/__init__.py +0 -0
  171. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/commands/.context/CONTEXT.md +0 -0
  172. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/commands/AGENTS.md +0 -0
  173. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/commands/__init__.py +0 -0
  174. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/commands/biomed.py +0 -0
  175. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/commands/mermaid.py +0 -0
  176. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/commands/sessions.py +0 -0
  177. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/commands/workbench.py +0 -0
  178. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/context.py +0 -0
  179. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/descriptors.py +0 -0
  180. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/dispatcher.py +0 -0
  181. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/first_party.py +0 -0
  182. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/observability.py +0 -0
  183. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/registry.py +0 -0
  184. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/extensions/types.py +0 -0
  185. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/.context/CONTEXT.md +0 -0
  186. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/AGENTS.md +0 -0
  187. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/__init__.py +0 -0
  188. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/adapter.py +0 -0
  189. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/bundle.py +0 -0
  190. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/claude.py +0 -0
  191. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/claude_preflight.py +0 -0
  192. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/claude_utils.py +0 -0
  193. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/codex.py +0 -0
  194. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/codex_rollout.py +0 -0
  195. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/common.py +0 -0
  196. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/.context/CONTEXT.md +0 -0
  197. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/AGENTS.md +0 -0
  198. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/__init__.py +0 -0
  199. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/base.py +0 -0
  200. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/claude_ws.py +0 -0
  201. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/codex_ws.py +0 -0
  202. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/cursor_subprocess.py +0 -0
  203. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/errors.py +0 -0
  204. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/liveness.py +0 -0
  205. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/managed_backend.py +0 -0
  206. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/opencode_http.py +0 -0
  207. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/pi_rpc.py +0 -0
  208. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/connections/resident_backend.py +0 -0
  209. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/control_action.py +0 -0
  210. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/cost.py +0 -0
  211. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/cursor.py +0 -0
  212. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/errors.py +0 -0
  213. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractor.py +0 -0
  214. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/.context/CONTEXT.md +0 -0
  215. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/AGENTS.md +0 -0
  216. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/__init__.py +0 -0
  217. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/base.py +0 -0
  218. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/claude.py +0 -0
  219. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/codex.py +0 -0
  220. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/cursor.py +0 -0
  221. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/opencode.py +0 -0
  222. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/extractors/pi.py +0 -0
  223. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/launch_spec.py +0 -0
  224. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/launch_types.py +0 -0
  225. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/opencode.py +0 -0
  226. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/opencode_storage.py +0 -0
  227. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/opencode_transcript.py +0 -0
  228. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/.context/CONTEXT.md +0 -0
  229. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/AGENTS.md +0 -0
  230. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/__init__.py +0 -0
  231. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/base.py +0 -0
  232. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/claude.py +0 -0
  233. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/codex.py +0 -0
  234. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/opencode.py +0 -0
  235. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/passthrough/registry.py +0 -0
  236. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/permission_broker.py +0 -0
  237. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/pi.py +0 -0
  238. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/pi_lifecycle_events.py +0 -0
  239. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/pi_paths.py +0 -0
  240. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/pi_runtime_resolver.py +0 -0
  241. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/.context/CONTEXT.md +0 -0
  242. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/AGENTS.md +0 -0
  243. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/__init__.py +0 -0
  244. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/_guards.py +0 -0
  245. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/permission_flags.py +0 -0
  246. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/pi_extension_projection.py +0 -0
  247. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_claude.py +0 -0
  248. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_codex_common.py +0 -0
  249. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_codex_streaming.py +0 -0
  250. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_codex_subprocess.py +0 -0
  251. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_cursor.py +0 -0
  252. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_opencode_streaming.py +0 -0
  253. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_opencode_subprocess.py +0 -0
  254. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_pi_native_tui.py +0 -0
  255. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/project_pi_rpc.py +0 -0
  256. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/projections/projection_errors.py +0 -0
  257. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/registry.py +0 -0
  258. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/semantics.py +0 -0
  259. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/session_detection.py +0 -0
  260. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/harness/transcript.py +0 -0
  261. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/.context/CONTEXT.md +0 -0
  262. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/AGENTS.md +0 -0
  263. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/__init__.py +0 -0
  264. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/builtin/.context/CONTEXT.md +0 -0
  265. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/builtin/AGENTS.md +0 -0
  266. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/builtin/__init__.py +0 -0
  267. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/builtin/autosync_store.py +0 -0
  268. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/builtin/base.py +0 -0
  269. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/builtin/git_autosync.py +0 -0
  270. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/builtin_registry.py +0 -0
  271. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/config.py +0 -0
  272. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/dispatch.py +0 -0
  273. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/interval.py +0 -0
  274. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/registry.py +0 -0
  275. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/runner.py +0 -0
  276. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/hooks/types.py +0 -0
  277. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ignores.py +0 -0
  278. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/kg/.context/CONTEXT.md +0 -0
  279. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/kg/AGENTS.md +0 -0
  280. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/kg/__init__.py +0 -0
  281. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/kg/graph.py +0 -0
  282. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/kg/report.py +0 -0
  283. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/kg/serializer.py +0 -0
  284. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/kg/types.py +0 -0
  285. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/.context/CONTEXT.md +0 -0
  286. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/AGENTS.md +0 -0
  287. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/__init__.py +0 -0
  288. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/artifact_io.py +0 -0
  289. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/bundle_adapter.py +0 -0
  290. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/claude_session_access.py +0 -0
  291. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/command.py +0 -0
  292. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/compiler.py +0 -0
  293. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/composition.py +0 -0
  294. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/composition_spawn.py +0 -0
  295. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/constants.py +0 -0
  296. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/context.py +0 -0
  297. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/cwd.py +0 -0
  298. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/errors.py +0 -0
  299. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/extract.py +0 -0
  300. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/fork.py +0 -0
  301. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/launch_types.py +0 -0
  302. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/materialize.py +0 -0
  303. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/permissions.py +0 -0
  304. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/plan.py +0 -0
  305. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/policies.py +0 -0
  306. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/.context/CONTEXT.md +0 -0
  307. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/AGENTS.md +0 -0
  308. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/__init__.py +0 -0
  309. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/ports.py +0 -0
  310. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/primary_attach.py +0 -0
  311. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/pty_launcher.py +0 -0
  312. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/session.py +0 -0
  313. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/subprocess_launcher.py +0 -0
  314. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/process/windows_launcher.py +0 -0
  315. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/prompt.py +0 -0
  316. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/prompt_context.py +0 -0
  317. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/reference.py +0 -0
  318. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/report.py +0 -0
  319. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/resolution.py +0 -0
  320. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/resolve.py +0 -0
  321. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/run_inputs.py +0 -0
  322. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/runner_helpers.py +0 -0
  323. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/session_scope.py +0 -0
  324. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/signals.py +0 -0
  325. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/streaming/.context/CONTEXT.md +0 -0
  326. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/streaming/AGENTS.md +0 -0
  327. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/streaming/__init__.py +0 -0
  328. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/streaming/heartbeat.py +0 -0
  329. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/streaming/terminal_arbitrator.py +0 -0
  330. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/streaming_runner.py +0 -0
  331. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/text_utils.py +0 -0
  332. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/types.py +0 -0
  333. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/workspace.py +0 -0
  334. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/workspace_projection.py +0 -0
  335. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/launch/written_files.py +0 -0
  336. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/markdown/.context/CONTEXT.md +0 -0
  337. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/markdown/AGENTS.md +0 -0
  338. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/markdown/__init__.py +0 -0
  339. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/markdown/extract.py +0 -0
  340. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/markdown/types.py +0 -0
  341. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/.context/CONTEXT.md +0 -0
  342. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/AGENTS.md +0 -0
  343. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/__init__.py +0 -0
  344. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/report.py +0 -0
  345. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/scanner.py +0 -0
  346. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/serializer.py +0 -0
  347. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/.context/CONTEXT.md +0 -0
  348. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/AGENTS.md +0 -0
  349. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/__init__.py +0 -0
  350. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/bare_end.py +0 -0
  351. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/fill_no_color.py +0 -0
  352. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/line_map.py +0 -0
  353. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/ox_edge.py +0 -0
  354. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/preprocess.py +0 -0
  355. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/suppression.py +0 -0
  356. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/style/types.py +0 -0
  357. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/mermaid/validator.py +0 -0
  358. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/observability/.context/CONTEXT.md +0 -0
  359. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/observability/AGENTS.md +0 -0
  360. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/observability/__init__.py +0 -0
  361. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/observability/debug_tracer.py +0 -0
  362. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/observability/trace_helpers.py +0 -0
  363. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/.context/CONTEXT.md +0 -0
  364. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/AGENTS.md +0 -0
  365. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/__init__.py +0 -0
  366. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/catalog.py +0 -0
  367. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/commands.py +0 -0
  368. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/config_surface.py +0 -0
  369. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/context.py +0 -0
  370. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/diag.py +0 -0
  371. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/hooks.py +0 -0
  372. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/init_ops.py +0 -0
  373. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/mars.py +0 -0
  374. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/migration.py +0 -0
  375. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/pruning.py +0 -0
  376. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/qi.py +0 -0
  377. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/reference.py +0 -0
  378. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/reference_recovery.py +0 -0
  379. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/report.py +0 -0
  380. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/runtime.py +0 -0
  381. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_corpus.py +0 -0
  382. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_export.py +0 -0
  383. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_log.py +0 -0
  384. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_log_render.py +0 -0
  385. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_render.py +0 -0
  386. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_repair.py +0 -0
  387. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_search.py +0 -0
  388. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_target.py +0 -0
  389. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/session_transcript.py +0 -0
  390. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/.context/CONTEXT.md +0 -0
  391. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/AGENTS.md +0 -0
  392. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/__init__.py +0 -0
  393. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/context_ref.py +0 -0
  394. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/execute.py +0 -0
  395. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/execute_bg.py +0 -0
  396. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/execute_init.py +0 -0
  397. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/execute_session.py +0 -0
  398. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/failure_policy.py +0 -0
  399. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/pre_init.py +0 -0
  400. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/spawn/query.py +0 -0
  401. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/sync_conflicts.py +0 -0
  402. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/work_attachment.py +0 -0
  403. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/work_dashboard.py +0 -0
  404. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/work_lifecycle.py +0 -0
  405. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/work_sessions.py +0 -0
  406. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/ops/workspace.py +0 -0
  407. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/.context/CONTEXT.md +0 -0
  408. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/AGENTS.md +0 -0
  409. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/__init__.py +0 -0
  410. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/detached_process.py +0 -0
  411. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/locking.py +0 -0
  412. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/process_scope/.context/CONTEXT.md +0 -0
  413. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/process_scope/AGENTS.md +0 -0
  414. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/process_scope/__init__.py +0 -0
  415. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/process_scope/base.py +0 -0
  416. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/process_scope/fallback.py +0 -0
  417. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/process_scope/posix.py +0 -0
  418. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/process_scope/windows_job.py +0 -0
  419. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/terminate.py +0 -0
  420. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/platform/unix_modules.py +0 -0
  421. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/safety/.context/CONTEXT.md +0 -0
  422. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/safety/AGENTS.md +0 -0
  423. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/safety/__init__.py +0 -0
  424. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/safety/budget.py +0 -0
  425. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/safety/guardrails.py +0 -0
  426. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/safety/permissions.py +0 -0
  427. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/safety/redaction.py +0 -0
  428. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/service_context.py +0 -0
  429. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/spawn/.context/CONTEXT.md +0 -0
  430. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/spawn/AGENTS.md +0 -0
  431. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/spawn/__init__.py +0 -0
  432. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/spawn/archive.py +0 -0
  433. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/.context/CONTEXT.md +0 -0
  434. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/AGENTS.md +0 -0
  435. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/__init__.py +0 -0
  436. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/artifact_store.py +0 -0
  437. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/atomic.py +0 -0
  438. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/event_store.py +0 -0
  439. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/history.py +0 -0
  440. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/launch_boundary.py +0 -0
  441. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/liveness.py +0 -0
  442. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/managed_primary.py +0 -0
  443. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/paths.py +0 -0
  444. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/primary_meta.py +0 -0
  445. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/process_scope_projection.py +0 -0
  446. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/reaper.py +0 -0
  447. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/runtime_root.py +0 -0
  448. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/session_identity.py +0 -0
  449. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/session_store.py +0 -0
  450. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn/.context/CONTEXT.md +0 -0
  451. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn/AGENTS.md +0 -0
  452. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn/__init__.py +0 -0
  453. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn/model.py +0 -0
  454. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn/repository.py +0 -0
  455. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn/terminal_policy.py +0 -0
  456. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn/transitions.py +0 -0
  457. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn_report.py +0 -0
  458. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn_signals.py +0 -0
  459. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn_store.py +0 -0
  460. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/spawn_tree.py +0 -0
  461. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/timestamps.py +0 -0
  462. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/user_paths.py +0 -0
  463. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/wordgen.py +0 -0
  464. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/wordlists.py +0 -0
  465. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/state/work_store.py +0 -0
  466. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/.context/CONTEXT.md +0 -0
  467. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/AGENTS.md +0 -0
  468. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/__init__.py +0 -0
  469. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/completion_nudge.py +0 -0
  470. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/control_socket.py +0 -0
  471. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/disk_watcher.py +0 -0
  472. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/drain_coordinator.py +0 -0
  473. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/drain_policy.py +0 -0
  474. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/drain_wait.py +0 -0
  475. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/event_observers.py +0 -0
  476. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/heartbeat.py +0 -0
  477. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/pi_drain.py +0 -0
  478. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/pi_process_cleanup.py +0 -0
  479. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/pi_quiescence.py +0 -0
  480. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/pi_subspawn_tracker.py +0 -0
  481. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/resident_drain.py +0 -0
  482. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/signal_canceller.py +0 -0
  483. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/spawn_dispatch.py +0 -0
  484. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/spawn_drain_loop.py +0 -0
  485. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/spawn_manager.py +0 -0
  486. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/spawn_session.py +0 -0
  487. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/streaming/types.py +0 -0
  488. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/__init__.py +0 -0
  489. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/bootstrap.py +0 -0
  490. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/correlation.py +0 -0
  491. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/events.py +0 -0
  492. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/init.py +0 -0
  493. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/local_jsonl.py +0 -0
  494. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/maintenance.py +0 -0
  495. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/observer.py +0 -0
  496. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/observers.py +0 -0
  497. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/query.py +0 -0
  498. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/reader.py +0 -0
  499. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/retention.py +0 -0
  500. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/router.py +0 -0
  501. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/sinks.py +0 -0
  502. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/telemetry/status.py +0 -0
  503. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/tools.py +0 -0
  504. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/utils/__init__.py +0 -0
  505. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/lib/utils/time.py +0 -0
  506. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/.context/CONTEXT.md +0 -0
  507. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/README.md +0 -0
  508. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/__init__.py +0 -0
  509. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/dist/extensions/managed-bash/index.js +0 -0
  510. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/dist/extensions/meridian-spawn-watch/index.js +0 -0
  511. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/managed-bash/bundle.smoke.test.ts +0 -0
  512. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_log_store.ts +0 -0
  513. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.test.ts +0 -0
  514. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.ts +0 -0
  515. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/managed-bash/src/index.ts +0 -0
  516. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/bundle.smoke.test.ts +0 -0
  517. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.test.ts +0 -0
  518. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.ts +0 -0
  519. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/ids.ts +0 -0
  520. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/json_file.ts +0 -0
  521. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/log_overlay.ts +0 -0
  522. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/meridian_cli.ts +0 -0
  523. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.test.ts +0 -0
  524. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.ts +0 -0
  525. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/pi_harness_profile.ts +0 -0
  526. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/pi_state_paths.ts +0 -0
  527. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/schemas.ts +0 -0
  528. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/selectable_panel.test.ts +0 -0
  529. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/selectable_panel.ts +0 -0
  530. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/spawn_origins.test.ts +0 -0
  531. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/spawn_origins.ts +0 -0
  532. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/extensions/shared/ui.ts +0 -0
  533. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/package.json +0 -0
  534. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/pnpm-lock.yaml +0 -0
  535. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/pnpm-workspace.yaml +0 -0
  536. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/scripts/verify-extensions-loop.mjs +0 -0
  537. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/pi_runtime/vitest.config.ts +0 -0
  538. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/plugin_api/AGENTS.md +0 -0
  539. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/plugin_api/__init__.py +0 -0
  540. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/plugin_api/config.py +0 -0
  541. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/plugin_api/fs.py +0 -0
  542. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/plugin_api/git.py +0 -0
  543. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/plugin_api/state.py +0 -0
  544. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/plugin_api/types.py +0 -0
  545. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/py.typed +0 -0
  546. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/server/AGENTS.md +0 -0
  547. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/src/meridian/server/__init__.py +0 -0
  548. {meridian_cli-0.3.3 → meridian_cli-0.3.4}/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
3
+ Version: 0.3.4
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
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.3.3"
5
+ __version__ = "0.3.4"
@@ -185,6 +185,7 @@ def _shared_launch_input_kwargs(
185
185
  debug: bool,
186
186
  task_ping_interval: str | None,
187
187
  task_ping_reset_on_activity: bool | None,
188
+ env: tuple[str, ...],
188
189
  ) -> SpawnLaunchOptionUpdates:
189
190
  return {
190
191
  "dry_run": dry_run,
@@ -204,6 +205,7 @@ def _shared_launch_input_kwargs(
204
205
  "debug": debug,
205
206
  "task_ping_interval": task_ping_interval,
206
207
  "task_ping_reset_on_activity": task_ping_reset_on_activity,
208
+ "env": env,
207
209
  }
208
210
 
209
211
 
@@ -454,6 +456,18 @@ def _spawn_create(
454
456
  show=False,
455
457
  ),
456
458
  ] = False,
459
+ env: Annotated[
460
+ tuple[str, ...],
461
+ Parameter(
462
+ name="--env",
463
+ help=(
464
+ "Environment variables for the spawned harness "
465
+ "in KEY=VALUE form (repeatable). "
466
+ "Overrides config-level [env] defaults."
467
+ ),
468
+ negative_iterable=(),
469
+ ),
470
+ ] = (),
457
471
  ) -> None:
458
472
  # Passthrough lives on GlobalOptions, not a function parameter — see
459
473
  # _split_passthrough_args() for why cyclopts can't handle ``--`` correctly.
@@ -500,6 +514,7 @@ def _spawn_create(
500
514
  task_ping_interval=task_ping_interval,
501
515
  task_ping_reset_on_activity=task_ping_reset_on_activity,
502
516
  debug=debug,
517
+ env=env,
503
518
  )
504
519
  resolved_prompt = _resolve_spawn_prompt(
505
520
  prompt,
@@ -428,6 +428,23 @@ def _normalize_harness_table(
428
428
  return values
429
429
 
430
430
 
431
+ def _normalize_env_table(raw_value: object, *, source: str) -> dict[str, str]:
432
+ if not isinstance(raw_value, dict):
433
+ raise ValueError(f"Invalid value for '{source}': expected table.")
434
+ values: dict[str, str] = {}
435
+ for raw_key, raw_val in cast("dict[str, object]", raw_value).items():
436
+ key = str(raw_key).strip()
437
+ if not key:
438
+ raise ValueError(f"Invalid value for '{source}': expected non-empty key.")
439
+ if not isinstance(raw_val, str):
440
+ raise ValueError(
441
+ f"Invalid value for '{source}.{key}': expected string, got "
442
+ f"{type(raw_val).__name__} ({raw_val!r})."
443
+ )
444
+ values[key] = raw_val
445
+ return values
446
+
447
+
431
448
  def _normalize_spawn_table(raw_value: object, *, source: str) -> dict[str, object]:
432
449
  if not isinstance(raw_value, dict):
433
450
  raise ValueError(f"Invalid value for '{source}': expected table.")
@@ -766,6 +783,19 @@ DYNAMIC_SECTION_DESCRIPTORS: dict[str, DynamicSectionDescriptor] = {
766
783
  "",
767
784
  ),
768
785
  ),
786
+ "env": DynamicSectionDescriptor(
787
+ section_key="env",
788
+ merge_kind="nested_dict",
789
+ scaffold_lines=(
790
+ "# -- Environment variables passed to spawned harnesses -----------------------",
791
+ "# Flat key-value string map. Applied to every spawn from this project.",
792
+ "# Keys from meridian.local.toml override meridian.toml; project overrides user.",
793
+ "",
794
+ "# [env]",
795
+ '# OPENCODE_ENABLE_EXA = "1"',
796
+ "",
797
+ ),
798
+ ),
769
799
  }
770
800
 
771
801
 
@@ -791,6 +821,8 @@ def normalize_dynamic_sections(
791
821
  source=section_key,
792
822
  project_root=project_root,
793
823
  )
824
+ elif section_key == "env":
825
+ value = _normalize_env_table(raw_value, source=section_key)
794
826
  else:
795
827
  continue
796
828
  if descriptor.merge_kind != "external" and value is not None:
@@ -862,6 +894,9 @@ def _normalize_toml_payload(
862
894
  _normalize_spawn_table(raw_value, source="spawn"),
863
895
  )
864
896
  continue
897
+ if key == "env":
898
+ normalized["env"] = _normalize_env_table(raw_value, source="env")
899
+ continue
865
900
  if key in DYNAMIC_SECTION_DESCRIPTORS:
866
901
  normalized = merge_dynamic_sections(
867
902
  normalized,
@@ -1404,6 +1439,7 @@ class MeridianConfig(BaseSettings):
1404
1439
  output: OutputConfig = Field(default_factory=OutputConfig)
1405
1440
  state: StateConfig = Field(default_factory=StateConfig)
1406
1441
  work: WorkConfig = Field(default_factory=WorkConfig)
1442
+ env: dict[str, str] = Field(default_factory=dict)
1407
1443
 
1408
1444
  @field_validator("default_wait_yield_seconds", "min_wait_yield_seconds")
1409
1445
  @classmethod
@@ -31,7 +31,7 @@ def validate_child_env_keys(overrides: Mapping[str, str]) -> None:
31
31
  :data:`ALLOWED_CHILD_ENV_KEYS`.
32
32
  """
33
33
  for key in overrides:
34
- if not key.startswith("MERIDIAN_"):
34
+ if not key.upper().startswith("MERIDIAN_"):
35
35
  continue
36
36
  if key in ALLOWED_CHILD_ENV_KEYS:
37
37
  continue
@@ -25,6 +25,7 @@ class LaunchPolicySnapshot(BaseModel):
25
25
  skill_paths: tuple[str, ...] = ()
26
26
  loaded_skills: tuple[SkillContent, ...] = ()
27
27
  extra_args: tuple[str, ...] = ()
28
+ env: dict[str, str] = Field(default_factory=dict)
28
29
  execution_policy: ResolvedExecutionPolicy = Field(default_factory=ResolvedExecutionPolicy)
29
30
  tools: ToolsField | None = None
30
31
  mcp_tools: tuple[str, ...] = ()
@@ -76,6 +76,20 @@ _MAX_REAP_PASSES = 4
76
76
  logger = structlog.get_logger()
77
77
 
78
78
 
79
+ def _config_snapshot_env(config_snapshot: dict[str, object]) -> dict[str, str]:
80
+ env = config_snapshot.get("env")
81
+ if isinstance(env, dict):
82
+ result: dict[str, str] = {}
83
+ for k, v in cast("dict[str, object]", env).items():
84
+ if not k.strip():
85
+ continue
86
+ if not isinstance(v, str):
87
+ continue
88
+ result[k] = v
89
+ return result
90
+ return {}
91
+
92
+
79
93
  def _resolve_explicit_timeout_seconds(resolved_request: object) -> float | None:
80
94
  """Extract explicit timeout seconds from resolved request-like objects."""
81
95
 
@@ -360,6 +374,9 @@ class SpawnApplicationService:
360
374
  project_paths=project_paths,
361
375
  spawn_id=str(final_spawn_id),
362
376
  )
377
+ config_env = _config_snapshot_env(payload.runtime.config_snapshot)
378
+ request_env = dict(prepared_surface.request.env)
379
+ resolved_env = {**config_env, **request_env}
363
380
  launch_ctx = await asyncio.to_thread(
364
381
  bind_spawn_launch_context,
365
382
  prepared=prepared_surface,
@@ -368,6 +385,7 @@ class SpawnApplicationService:
368
385
  report_output_path=report_output_path,
369
386
  runtime_work_id=effective_work_id,
370
387
  dry_run=False,
388
+ plan_overrides=resolved_env,
371
389
  ),
372
390
  runtime=payload.runtime,
373
391
  harness_registry=payload.harness_registry,
@@ -178,10 +178,10 @@ def merge_env_overrides(
178
178
  """
179
179
  forbidden: list[tuple[str, str]] = []
180
180
  for key in plan_overrides:
181
- if key.startswith("MERIDIAN_"):
181
+ if key.upper().startswith("MERIDIAN_"):
182
182
  forbidden.append((key, "plan_overrides"))
183
183
  for key in preflight_overrides:
184
- if key.startswith("MERIDIAN_"):
184
+ if key.upper().startswith("MERIDIAN_"):
185
185
  forbidden.append((key, "preflight_overrides"))
186
186
 
187
187
  if forbidden:
@@ -95,6 +95,7 @@ def build_launch_policy_snapshot(
95
95
  tools=request.tools,
96
96
  mcp_tools=request.mcp_tools,
97
97
  extra_args=request.extra_args,
98
+ env=request.env,
98
99
  model_selection_requested_token=request.model_selection_requested_token,
99
100
  model_selection_selected_token=(
100
101
  model_selection.selected_model_token
@@ -990,6 +990,11 @@ def run_harness_process(
990
990
  }
991
991
  )
992
992
  plan_overrides: dict[str, str] = {}
993
+ config_env = runtime.config_snapshot.get("env")
994
+ if isinstance(config_env, dict):
995
+ for k, v in cast("dict[str, str]", config_env).items():
996
+ if k.strip():
997
+ plan_overrides[k] = v
993
998
  if runtime_request.execution_policy.autocompact is not None:
994
999
  plan_overrides["CLAUDE_AUTOCOMPACT_PCT_OVERRIDE"] = str(
995
1000
  runtime_request.execution_policy.autocompact
@@ -90,6 +90,7 @@ class SpawnRequest(BaseModel):
90
90
  extra_args: tuple[str, ...] = ()
91
91
  mcp_tools: tuple[str, ...] = ()
92
92
  tools: ToolsField | None = None
93
+ env: dict[str, str] = Field(default_factory=dict)
93
94
 
94
95
  # Execution policy carrier (replaces flat effort/sandbox/approval/autocompact/autocompact_pct)
95
96
  execution_policy: ResolvedExecutionPolicy = Field(default_factory=ResolvedExecutionPolicy)
@@ -500,6 +500,29 @@ def _dynamic_value_source(
500
500
  return "builtin"
501
501
 
502
502
 
503
+ def _resolve_env_config_source(
504
+ *,
505
+ env_key: str,
506
+ project_dynamic_overrides: dict[str, object],
507
+ user_dynamic_overrides: dict[str, object],
508
+ ) -> Literal["file", "user-config", "builtin"]:
509
+ project_env = project_dynamic_overrides.get("env")
510
+ if isinstance(project_env, dict) and env_key in project_env:
511
+ return "file"
512
+ user_env = user_dynamic_overrides.get("env")
513
+ if isinstance(user_env, dict) and env_key in user_env:
514
+ return "user-config"
515
+ return "builtin"
516
+
517
+
518
+ _SECRET_ENV_KEY_SUFFIXES = ("_TOKEN", "_KEY", "_SECRET")
519
+
520
+
521
+ def _looks_like_secret_env_key(key: str) -> bool:
522
+ normalized = key.upper()
523
+ return any(normalized.endswith(suffix) for suffix in _SECRET_ENV_KEY_SUFFIXES)
524
+
525
+
503
526
  def _dynamic_config_values(inspection: _ConfigInspectionState) -> list[ConfigResolvedValue]:
504
527
  values: list[ConfigResolvedValue] = []
505
528
  resolved = inspection.resolved_dynamic_overrides
@@ -569,6 +592,24 @@ def _dynamic_config_values(inspection: _ConfigInspectionState) -> list[ConfigRes
569
592
  )
570
593
  )
571
594
 
595
+ env_config = inspection.surface.resolved_config.env
596
+ if env_config:
597
+ for env_key, env_value in sorted(env_config.items()):
598
+ display_value: object = env_value
599
+ if _looks_like_secret_env_key(env_key):
600
+ display_value = "[redacted]"
601
+ values.append(
602
+ ConfigResolvedValue(
603
+ key=f"env.{env_key}",
604
+ value=display_value,
605
+ source=_resolve_env_config_source(
606
+ env_key=env_key,
607
+ project_dynamic_overrides=inspection.project_dynamic_overrides,
608
+ user_dynamic_overrides=inspection.user_dynamic_overrides,
609
+ ),
610
+ )
611
+ )
612
+
572
613
  return values
573
614
 
574
615
 
@@ -1868,6 +1868,8 @@ def _reject_continue_policy_overrides(payload: SpawnContinueInput) -> None:
1868
1868
  rejected.append("--autocompact-pct")
1869
1869
  if payload.passthrough_args:
1870
1870
  rejected.append("--")
1871
+ if payload.env:
1872
+ rejected.append("--env")
1871
1873
  if payload.work.strip():
1872
1874
  rejected.append("--work")
1873
1875
  if payload.task_dir is not None and payload.task_dir.strip():
@@ -236,6 +236,10 @@ async def _prepare_execution_handoff(
236
236
  autocompact=request.execution_policy.autocompact,
237
237
  ctx=resolved_context,
238
238
  )
239
+ if runtime.config.env or request.env:
240
+ resolved_env = dict(runtime.config.env)
241
+ resolved_env.update(request.env)
242
+ run_env_overrides = {**resolved_env, **run_env_overrides}
239
243
  runtime_work_id = session_context.work_id or work_id
240
244
  final_request = resolved_request.model_copy(update={"work_id_hint": runtime_work_id})
241
245
  launch_runtime = runtime_request.model_copy(
@@ -73,6 +73,7 @@ class SpawnLaunchOptionUpdates(TypedDict):
73
73
  debug: bool
74
74
  task_ping_interval: str | None
75
75
  task_ping_reset_on_activity: bool | None
76
+ env: tuple[str, ...]
76
77
 
77
78
 
78
79
  class SpawnLaunchOptions(BaseModel):
@@ -95,6 +96,7 @@ class SpawnLaunchOptions(BaseModel):
95
96
  debug: bool = False
96
97
  task_ping_interval: str | None = None
97
98
  task_ping_reset_on_activity: bool | None = None
99
+ env: tuple[str, ...] = ()
98
100
 
99
101
  def launch_option_updates(self) -> SpawnLaunchOptionUpdates:
100
102
  return {
@@ -115,6 +117,7 @@ class SpawnLaunchOptions(BaseModel):
115
117
  "debug": self.debug,
116
118
  "task_ping_interval": self.task_ping_interval,
117
119
  "task_ping_reset_on_activity": self.task_ping_reset_on_activity,
120
+ "env": self.env,
118
121
  }
119
122
 
120
123
 
@@ -41,6 +41,32 @@ from .models import SpawnCreateInput
41
41
  _DRY_RUN_REPORT_PATH = "<spawn-report-path>"
42
42
 
43
43
 
44
+ def _parse_env_assignments(raw: tuple[str, ...]) -> dict[str, str]:
45
+ parsed: dict[str, str] = {}
46
+ for item in raw:
47
+ if "=" not in item:
48
+ raise ValueError(
49
+ f"Invalid --env value {item!r}: expected KEY=VALUE format."
50
+ )
51
+ key, _, value = item.partition("=")
52
+ key = key.strip()
53
+ if not key:
54
+ raise ValueError(
55
+ f"Invalid --env value {item!r}: KEY is empty."
56
+ )
57
+ parsed[key] = value
58
+ return parsed
59
+
60
+
61
+ def _resolve_spawn_env(payload: SpawnCreateInput) -> dict[str, str]:
62
+ cli_env = _parse_env_assignments(payload.env)
63
+ if cli_env:
64
+ return cli_env
65
+ if payload.launch_policy_snapshot is not None:
66
+ return dict(payload.launch_policy_snapshot.env)
67
+ return {}
68
+
69
+
44
70
  @dataclass(frozen=True)
45
71
  class SpawnCreateArtifacts:
46
72
  """Resolved spawn request plus expensive prepared surface for bind-only execute."""
@@ -171,6 +197,7 @@ def build_create_payload(
171
197
  launch_policy_snapshot=payload.launch_policy_snapshot,
172
198
  pi_task_ping_interval_seconds=parse_duration_seconds(payload.task_ping_interval),
173
199
  pi_task_ping_reset_on_activity=payload.task_ping_reset_on_activity,
200
+ env=_resolve_spawn_env(payload),
174
201
  )
175
202
 
176
203
  mars_runtime_source = runtime or build_runtime_from_root_and_config(
@@ -200,12 +227,15 @@ def build_create_payload(
200
227
  ),
201
228
  )
202
229
  if composition_dry_run:
230
+ plan_overrides = dict(config.env)
231
+ plan_overrides.update(raw_request.env)
203
232
  preview_context = bind_spawn_launch_context(
204
233
  prepared=prepared_surface,
205
234
  bindings=RuntimeBindings(
206
235
  spawn_id="dry-run",
207
236
  report_output_path=Path(_DRY_RUN_REPORT_PATH),
208
237
  dry_run=True,
238
+ plan_overrides=plan_overrides,
209
239
  ),
210
240
  runtime=preview_runtime,
211
241
  harness_registry=harness_registry,
File without changes
File without changes
File without changes