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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/.gitignore +1 -0
  2. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/PKG-INFO +1 -13
  3. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/README.md +0 -12
  4. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/__init__.py +1 -1
  5. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/.context/CONTEXT.md +7 -6
  6. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/AGENTS.md +17 -3
  7. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_pi_native_tui.py +19 -5
  8. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_pi_rpc.py +19 -5
  9. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/.context/CONTEXT.md +15 -11
  10. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/AGENTS.md +2 -1
  11. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/.context/CONTEXT.md +23 -3
  12. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/AGENTS.md +8 -6
  13. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/LICENSE +0 -0
  14. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/pyproject.toml +0 -0
  15. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/ag_ui/__init__.pyi +0 -0
  16. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/ag_ui/core.pyi +0 -0
  17. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/AGENTS.md +0 -0
  18. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/__main__.py +0 -0
  19. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/.context/CONTEXT.md +0 -0
  20. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/AGENTS.md +0 -0
  21. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/__init__.py +0 -0
  22. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/_cmd_utils.py +0 -0
  23. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/agent_help.py +0 -0
  24. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/app_tree.py +0 -0
  25. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/argv_normalization.py +0 -0
  26. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/bootstrap.py +0 -0
  27. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/bootstrap_cmd.py +0 -0
  28. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/chat_cmd.py +0 -0
  29. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/config_cmd.py +0 -0
  30. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/doctor_cmd.py +0 -0
  31. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/entrypoint.py +0 -0
  32. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/ext_cmd.py +0 -0
  33. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/ext_registration.py +0 -0
  34. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/hooks_authority.py +0 -0
  35. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/hooks_commands.py +0 -0
  36. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/kg_cmd.py +0 -0
  37. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/main.py +0 -0
  38. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/mars_passthrough.py +0 -0
  39. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/mermaid_cmd.py +0 -0
  40. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/migrate_cmd.py +0 -0
  41. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/misc_commands.py +0 -0
  42. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/models_cmd.py +0 -0
  43. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/output.py +0 -0
  44. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/primary_launch.py +0 -0
  45. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/qi_cmd.py +0 -0
  46. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/report_cmd.py +0 -0
  47. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/session_cmd.py +0 -0
  48. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/spawn.py +0 -0
  49. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/spawn_inject.py +0 -0
  50. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/__init__.py +0 -0
  51. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/catalog.py +0 -0
  52. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/classify.py +0 -0
  53. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/cyclopts_app.py +0 -0
  54. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/help.py +0 -0
  55. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/lazy_dispatch.py +0 -0
  56. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/startup/policy.py +0 -0
  57. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/streaming_serve.py +0 -0
  58. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/sync_cmd.py +0 -0
  59. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/telemetry_cmd.py +0 -0
  60. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/utils.py +0 -0
  61. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/work_cmd.py +0 -0
  62. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/cli/workspace_cmd.py +0 -0
  63. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/dev/AGENTS.md +0 -0
  64. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/dev/__init__.py +0 -0
  65. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/dev/pytests.py +0 -0
  66. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/__init__.py +0 -0
  67. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/.context/CONTEXT.md +0 -0
  68. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/AGENTS.md +0 -0
  69. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/__init__.py +0 -0
  70. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/config.py +0 -0
  71. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/project_state.py +0 -0
  72. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/runtime_state.py +0 -0
  73. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/bootstrap/services.py +0 -0
  74. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/.context/CONTEXT.md +0 -0
  75. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/AGENTS.md +0 -0
  76. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/__init__.py +0 -0
  77. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/agent.py +0 -0
  78. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/bootstrap.py +0 -0
  79. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/catalog_session.py +0 -0
  80. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/model_aliases.py +0 -0
  81. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/models.py +0 -0
  82. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/catalog/skill.py +0 -0
  83. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/.context/CONTEXT.md +0 -0
  84. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/AGENTS.md +0 -0
  85. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/__init__.py +0 -0
  86. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/backend_acquisition.py +0 -0
  87. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/backend_handle.py +0 -0
  88. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/checkpoint.py +0 -0
  89. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/command_handler.py +0 -0
  90. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/command_invariants.py +0 -0
  91. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/commands.py +0 -0
  92. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/.context/CONTEXT.md +0 -0
  93. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/AGENTS.md +0 -0
  94. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/__init__.py +0 -0
  95. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/discovery.py +0 -0
  96. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/launcher.py +0 -0
  97. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/policy.py +0 -0
  98. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/portless.py +0 -0
  99. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/raw_vite.py +0 -0
  100. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/dev_frontend/supervisor.py +0 -0
  101. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_index.py +0 -0
  102. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_log.py +0 -0
  103. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_observer.py +0 -0
  104. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/event_pipeline.py +0 -0
  105. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/frontend.py +0 -0
  106. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/.context/CONTEXT.md +0 -0
  107. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/AGENTS.md +0 -0
  108. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/__init__.py +0 -0
  109. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/base.py +0 -0
  110. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/claude.py +0 -0
  111. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/codex.py +0 -0
  112. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/common.py +0 -0
  113. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/opencode.py +0 -0
  114. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/registry.py +0 -0
  115. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/normalization/synthetic.py +0 -0
  116. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/policy.py +0 -0
  117. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/protocol.py +0 -0
  118. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/recovery.py +0 -0
  119. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/replay.py +0 -0
  120. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/runtime.py +0 -0
  121. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/server.py +0 -0
  122. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/session_service.py +0 -0
  123. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/chat/ws_fanout.py +0 -0
  124. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/.context/CONTEXT.md +0 -0
  125. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/AGENTS.md +0 -0
  126. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/__init__.py +0 -0
  127. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/catalog.py +0 -0
  128. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/context_config.py +0 -0
  129. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/preserving_edit.py +0 -0
  130. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/project_config_state.py +0 -0
  131. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/project_paths.py +0 -0
  132. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/project_root.py +0 -0
  133. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/schema.py +0 -0
  134. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/settings.py +0 -0
  135. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/config/workspace.py +0 -0
  136. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/.context/CONTEXT.md +0 -0
  137. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/AGENTS.md +0 -0
  138. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/__init__.py +0 -0
  139. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/context/resolver.py +0 -0
  140. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/.context/CONTEXT.md +0 -0
  141. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/AGENTS.md +0 -0
  142. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/__init__.py +0 -0
  143. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/child_env.py +0 -0
  144. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/clock.py +0 -0
  145. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/codec.py +0 -0
  146. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/command_strings.py +0 -0
  147. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/context.py +0 -0
  148. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/conversation.py +0 -0
  149. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/depth.py +0 -0
  150. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/domain.py +0 -0
  151. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/execution_policy.py +0 -0
  152. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/formatting.py +0 -0
  153. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/launch_policy_snapshot.py +0 -0
  154. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/lifecycle.py +0 -0
  155. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/logging.py +0 -0
  156. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/overrides.py +0 -0
  157. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/process_cleanup.py +0 -0
  158. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/resolved_context.py +0 -0
  159. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/sink.py +0 -0
  160. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/spawn_lifecycle.py +0 -0
  161. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/spawn_service.py +0 -0
  162. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/spawn_start.py +0 -0
  163. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/telemetry.py +0 -0
  164. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/types.py +0 -0
  165. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/core/util.py +0 -0
  166. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/diagnostics.py +0 -0
  167. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/.context/CONTEXT.md +0 -0
  168. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/AGENTS.md +0 -0
  169. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/__init__.py +0 -0
  170. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/.context/CONTEXT.md +0 -0
  171. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/AGENTS.md +0 -0
  172. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/__init__.py +0 -0
  173. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/biomed.py +0 -0
  174. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/mermaid.py +0 -0
  175. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/sessions.py +0 -0
  176. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/commands/workbench.py +0 -0
  177. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/context.py +0 -0
  178. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/descriptors.py +0 -0
  179. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/dispatcher.py +0 -0
  180. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/first_party.py +0 -0
  181. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/observability.py +0 -0
  182. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/registry.py +0 -0
  183. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/extensions/types.py +0 -0
  184. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/.context/CONTEXT.md +0 -0
  185. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/AGENTS.md +0 -0
  186. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/__init__.py +0 -0
  187. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/adapter.py +0 -0
  188. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/bundle.py +0 -0
  189. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/claude.py +0 -0
  190. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/claude_preflight.py +0 -0
  191. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/claude_utils.py +0 -0
  192. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/codex.py +0 -0
  193. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/codex_rollout.py +0 -0
  194. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/common.py +0 -0
  195. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/__init__.py +0 -0
  196. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/base.py +0 -0
  197. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/claude_ws.py +0 -0
  198. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/codex_ws.py +0 -0
  199. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/cursor_subprocess.py +0 -0
  200. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/errors.py +0 -0
  201. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/liveness.py +0 -0
  202. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/managed_backend.py +0 -0
  203. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/opencode_http.py +0 -0
  204. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/pi_rpc.py +0 -0
  205. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/connections/resident_backend.py +0 -0
  206. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/control_action.py +0 -0
  207. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/cost.py +0 -0
  208. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/cursor.py +0 -0
  209. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/errors.py +0 -0
  210. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractor.py +0 -0
  211. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/.context/CONTEXT.md +0 -0
  212. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/AGENTS.md +0 -0
  213. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/__init__.py +0 -0
  214. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/base.py +0 -0
  215. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/claude.py +0 -0
  216. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/codex.py +0 -0
  217. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/cursor.py +0 -0
  218. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/opencode.py +0 -0
  219. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/extractors/pi.py +0 -0
  220. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/launch_spec.py +0 -0
  221. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/launch_types.py +0 -0
  222. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/opencode.py +0 -0
  223. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/opencode_storage.py +0 -0
  224. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/opencode_transcript.py +0 -0
  225. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/.context/CONTEXT.md +0 -0
  226. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/AGENTS.md +0 -0
  227. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/__init__.py +0 -0
  228. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/base.py +0 -0
  229. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/claude.py +0 -0
  230. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/codex.py +0 -0
  231. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/opencode.py +0 -0
  232. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/passthrough/registry.py +0 -0
  233. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/permission_broker.py +0 -0
  234. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi.py +0 -0
  235. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi_lifecycle_events.py +0 -0
  236. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi_paths.py +0 -0
  237. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/pi_runtime_resolver.py +0 -0
  238. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/.context/CONTEXT.md +0 -0
  239. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/AGENTS.md +0 -0
  240. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/__init__.py +0 -0
  241. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/_guards.py +0 -0
  242. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/permission_flags.py +0 -0
  243. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/pi_extension_projection.py +0 -0
  244. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_claude.py +0 -0
  245. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_codex_common.py +0 -0
  246. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_codex_streaming.py +0 -0
  247. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_codex_subprocess.py +0 -0
  248. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_cursor.py +0 -0
  249. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_opencode_streaming.py +0 -0
  250. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/project_opencode_subprocess.py +0 -0
  251. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/projections/projection_errors.py +0 -0
  252. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/registry.py +0 -0
  253. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/semantics.py +0 -0
  254. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/session_detection.py +0 -0
  255. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/harness/transcript.py +0 -0
  256. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/.context/CONTEXT.md +0 -0
  257. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/AGENTS.md +0 -0
  258. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/__init__.py +0 -0
  259. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/.context/CONTEXT.md +0 -0
  260. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/AGENTS.md +0 -0
  261. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/__init__.py +0 -0
  262. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/autosync_store.py +0 -0
  263. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/base.py +0 -0
  264. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin/git_autosync.py +0 -0
  265. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/builtin_registry.py +0 -0
  266. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/config.py +0 -0
  267. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/dispatch.py +0 -0
  268. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/interval.py +0 -0
  269. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/registry.py +0 -0
  270. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/runner.py +0 -0
  271. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/hooks/types.py +0 -0
  272. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ignores.py +0 -0
  273. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/.context/CONTEXT.md +0 -0
  274. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/AGENTS.md +0 -0
  275. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/__init__.py +0 -0
  276. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/graph.py +0 -0
  277. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/report.py +0 -0
  278. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/serializer.py +0 -0
  279. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/kg/types.py +0 -0
  280. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/.context/CONTEXT.md +0 -0
  281. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/AGENTS.md +0 -0
  282. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/__init__.py +0 -0
  283. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/artifact_io.py +0 -0
  284. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/bundle_adapter.py +0 -0
  285. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/claude_session_access.py +0 -0
  286. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/command.py +0 -0
  287. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/compiler.py +0 -0
  288. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/composition.py +0 -0
  289. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/composition_spawn.py +0 -0
  290. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/constants.py +0 -0
  291. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/context.py +0 -0
  292. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/cwd.py +0 -0
  293. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/env.py +0 -0
  294. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/errors.py +0 -0
  295. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/extract.py +0 -0
  296. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/fork.py +0 -0
  297. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/launch_types.py +0 -0
  298. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/materialize.py +0 -0
  299. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/permissions.py +0 -0
  300. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/plan.py +0 -0
  301. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/policies.py +0 -0
  302. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/policy_snapshot.py +0 -0
  303. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/.context/CONTEXT.md +0 -0
  304. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/AGENTS.md +0 -0
  305. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/__init__.py +0 -0
  306. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/ports.py +0 -0
  307. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/primary_attach.py +0 -0
  308. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/pty_launcher.py +0 -0
  309. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/runner.py +0 -0
  310. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/session.py +0 -0
  311. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/subprocess_launcher.py +0 -0
  312. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/process/windows_launcher.py +0 -0
  313. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/prompt.py +0 -0
  314. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/prompt_context.py +0 -0
  315. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/reference.py +0 -0
  316. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/report.py +0 -0
  317. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/request.py +0 -0
  318. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/resolution.py +0 -0
  319. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/resolve.py +0 -0
  320. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/run_inputs.py +0 -0
  321. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/runner_helpers.py +0 -0
  322. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/session_scope.py +0 -0
  323. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/signals.py +0 -0
  324. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/.context/CONTEXT.md +0 -0
  325. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/AGENTS.md +0 -0
  326. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/__init__.py +0 -0
  327. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/heartbeat.py +0 -0
  328. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming/terminal_arbitrator.py +0 -0
  329. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/streaming_runner.py +0 -0
  330. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/text_utils.py +0 -0
  331. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/types.py +0 -0
  332. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/workspace.py +0 -0
  333. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/workspace_projection.py +0 -0
  334. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/launch/written_files.py +0 -0
  335. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/.context/CONTEXT.md +0 -0
  336. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/AGENTS.md +0 -0
  337. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/__init__.py +0 -0
  338. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/extract.py +0 -0
  339. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/markdown/types.py +0 -0
  340. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/.context/CONTEXT.md +0 -0
  341. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/AGENTS.md +0 -0
  342. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/__init__.py +0 -0
  343. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/report.py +0 -0
  344. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/scanner.py +0 -0
  345. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/serializer.py +0 -0
  346. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/.context/CONTEXT.md +0 -0
  347. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/AGENTS.md +0 -0
  348. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/__init__.py +0 -0
  349. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/bare_end.py +0 -0
  350. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/fill_no_color.py +0 -0
  351. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/line_map.py +0 -0
  352. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/ox_edge.py +0 -0
  353. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/preprocess.py +0 -0
  354. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/suppression.py +0 -0
  355. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/style/types.py +0 -0
  356. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/mermaid/validator.py +0 -0
  357. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/.context/CONTEXT.md +0 -0
  358. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/AGENTS.md +0 -0
  359. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/__init__.py +0 -0
  360. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/debug_tracer.py +0 -0
  361. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/observability/trace_helpers.py +0 -0
  362. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/.context/CONTEXT.md +0 -0
  363. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/AGENTS.md +0 -0
  364. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/__init__.py +0 -0
  365. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/catalog.py +0 -0
  366. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/commands.py +0 -0
  367. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/config.py +0 -0
  368. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/config_surface.py +0 -0
  369. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/context.py +0 -0
  370. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/diag.py +0 -0
  371. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/hooks.py +0 -0
  372. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/init_ops.py +0 -0
  373. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/mars.py +0 -0
  374. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/migration.py +0 -0
  375. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/pruning.py +0 -0
  376. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/qi.py +0 -0
  377. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/reference.py +0 -0
  378. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/reference_recovery.py +0 -0
  379. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/report.py +0 -0
  380. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/runtime.py +0 -0
  381. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_corpus.py +0 -0
  382. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_export.py +0 -0
  383. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_log.py +0 -0
  384. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_log_render.py +0 -0
  385. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_render.py +0 -0
  386. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_repair.py +0 -0
  387. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_search.py +0 -0
  388. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_target.py +0 -0
  389. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/session_transcript.py +0 -0
  390. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/.context/CONTEXT.md +0 -0
  391. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/AGENTS.md +0 -0
  392. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/__init__.py +0 -0
  393. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/api.py +0 -0
  394. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/context_ref.py +0 -0
  395. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute.py +0 -0
  396. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_bg.py +0 -0
  397. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_init.py +0 -0
  398. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_runner.py +0 -0
  399. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/execute_session.py +0 -0
  400. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/failure_policy.py +0 -0
  401. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/models.py +0 -0
  402. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/pre_init.py +0 -0
  403. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/prepare.py +0 -0
  404. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/spawn/query.py +0 -0
  405. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/sync_conflicts.py +0 -0
  406. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_attachment.py +0 -0
  407. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_dashboard.py +0 -0
  408. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_lifecycle.py +0 -0
  409. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/work_sessions.py +0 -0
  410. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/ops/workspace.py +0 -0
  411. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/.context/CONTEXT.md +0 -0
  412. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/AGENTS.md +0 -0
  413. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/__init__.py +0 -0
  414. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/detached_process.py +0 -0
  415. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/locking.py +0 -0
  416. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/.context/CONTEXT.md +0 -0
  417. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/AGENTS.md +0 -0
  418. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/__init__.py +0 -0
  419. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/base.py +0 -0
  420. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/fallback.py +0 -0
  421. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/posix.py +0 -0
  422. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/process_scope/windows_job.py +0 -0
  423. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/terminate.py +0 -0
  424. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/platform/unix_modules.py +0 -0
  425. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/.context/CONTEXT.md +0 -0
  426. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/AGENTS.md +0 -0
  427. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/__init__.py +0 -0
  428. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/budget.py +0 -0
  429. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/guardrails.py +0 -0
  430. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/permissions.py +0 -0
  431. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/safety/redaction.py +0 -0
  432. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/service_context.py +0 -0
  433. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/.context/CONTEXT.md +0 -0
  434. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/AGENTS.md +0 -0
  435. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/__init__.py +0 -0
  436. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/spawn/archive.py +0 -0
  437. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/__init__.py +0 -0
  438. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/artifact_store.py +0 -0
  439. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/atomic.py +0 -0
  440. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/event_store.py +0 -0
  441. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/history.py +0 -0
  442. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/launch_boundary.py +0 -0
  443. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/liveness.py +0 -0
  444. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/managed_primary.py +0 -0
  445. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/paths.py +0 -0
  446. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/primary_meta.py +0 -0
  447. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/process_scope_projection.py +0 -0
  448. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/reaper.py +0 -0
  449. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/runtime_root.py +0 -0
  450. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/session_identity.py +0 -0
  451. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/session_store.py +0 -0
  452. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/.context/CONTEXT.md +0 -0
  453. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/AGENTS.md +0 -0
  454. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/__init__.py +0 -0
  455. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/model.py +0 -0
  456. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/repository.py +0 -0
  457. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/terminal_policy.py +0 -0
  458. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn/transitions.py +0 -0
  459. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_report.py +0 -0
  460. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_signals.py +0 -0
  461. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_store.py +0 -0
  462. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/spawn_tree.py +0 -0
  463. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/timestamps.py +0 -0
  464. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/user_paths.py +0 -0
  465. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/wordgen.py +0 -0
  466. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/wordlists.py +0 -0
  467. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/state/work_store.py +0 -0
  468. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/__init__.py +0 -0
  469. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/completion_nudge.py +0 -0
  470. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/control_socket.py +0 -0
  471. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/disk_watcher.py +0 -0
  472. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/drain_coordinator.py +0 -0
  473. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/drain_policy.py +0 -0
  474. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/drain_wait.py +0 -0
  475. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/event_observers.py +0 -0
  476. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/heartbeat.py +0 -0
  477. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_drain.py +0 -0
  478. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_process_cleanup.py +0 -0
  479. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_quiescence.py +0 -0
  480. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/pi_subspawn_tracker.py +0 -0
  481. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/resident_drain.py +0 -0
  482. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/signal_canceller.py +0 -0
  483. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_dispatch.py +0 -0
  484. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_drain_loop.py +0 -0
  485. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_manager.py +0 -0
  486. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/spawn_session.py +0 -0
  487. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/streaming/types.py +0 -0
  488. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/__init__.py +0 -0
  489. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/bootstrap.py +0 -0
  490. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/correlation.py +0 -0
  491. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/events.py +0 -0
  492. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/init.py +0 -0
  493. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/local_jsonl.py +0 -0
  494. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/maintenance.py +0 -0
  495. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/observer.py +0 -0
  496. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/observers.py +0 -0
  497. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/query.py +0 -0
  498. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/reader.py +0 -0
  499. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/retention.py +0 -0
  500. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/router.py +0 -0
  501. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/sinks.py +0 -0
  502. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/telemetry/status.py +0 -0
  503. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/tools.py +0 -0
  504. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/utils/__init__.py +0 -0
  505. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/lib/utils/time.py +0 -0
  506. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/.context/CONTEXT.md +0 -0
  507. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/README.md +0 -0
  508. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/__init__.py +0 -0
  509. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/dist/extensions/managed-bash/index.js +0 -0
  510. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/dist/extensions/meridian-spawn-watch/index.js +0 -0
  511. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/bundle.smoke.test.ts +0 -0
  512. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_log_store.ts +0 -0
  513. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.test.ts +0 -0
  514. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.ts +0 -0
  515. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/managed-bash/src/index.ts +0 -0
  516. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/bundle.smoke.test.ts +0 -0
  517. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.test.ts +0 -0
  518. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.ts +0 -0
  519. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/ids.ts +0 -0
  520. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/json_file.ts +0 -0
  521. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/log_overlay.ts +0 -0
  522. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/meridian_cli.ts +0 -0
  523. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.test.ts +0 -0
  524. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.ts +0 -0
  525. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/pi_harness_profile.ts +0 -0
  526. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/pi_state_paths.ts +0 -0
  527. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/schemas.ts +0 -0
  528. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/selectable_panel.test.ts +0 -0
  529. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/selectable_panel.ts +0 -0
  530. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/spawn_origins.test.ts +0 -0
  531. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/spawn_origins.ts +0 -0
  532. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/extensions/shared/ui.ts +0 -0
  533. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/package.json +0 -0
  534. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/pnpm-lock.yaml +0 -0
  535. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/pnpm-workspace.yaml +0 -0
  536. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/scripts/verify-extensions-loop.mjs +0 -0
  537. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/pi_runtime/vitest.config.ts +0 -0
  538. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/AGENTS.md +0 -0
  539. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/__init__.py +0 -0
  540. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/config.py +0 -0
  541. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/fs.py +0 -0
  542. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/git.py +0 -0
  543. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/state.py +0 -0
  544. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/plugin_api/types.py +0 -0
  545. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/py.typed +0 -0
  546. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/server/AGENTS.md +0 -0
  547. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/server/__init__.py +0 -0
  548. {meridian_cli-0.3.2 → meridian_cli-0.3.3}/src/meridian/server/main.py +0 -0
@@ -17,6 +17,7 @@ smoke/
17
17
  tmp/
18
18
  .tmp-*/
19
19
  plan/
20
+ temp/
20
21
 
21
22
  .orchestrate/
22
23
  .scratch/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meridian-cli
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Summary: Orchestrate CLI + MCP server for multi-model agent workflows
5
5
  Project-URL: Homepage, https://github.com/haowjy/meridian-cli
6
6
  Project-URL: Repository, https://github.com/haowjy/meridian-cli
@@ -54,18 +54,6 @@ Orchestrate AI coding agents across Claude Code, Codex, and OpenCode. Each model
54
54
 
55
55
  > **Early development.** Meridian is not stable. Expect breaking changes in any release. If you need a stable workflow, this project is not ready for you yet.
56
56
 
57
- ## v0.1.0 Migration
58
-
59
- v0.1.0 removes all legacy state format support in the state layer.
60
-
61
- If you are upgrading from any pre-0.1.0 build, run:
62
-
63
- ```bash
64
- rm -rf ~/.meridian
65
- ```
66
-
67
- This is a clean break. There is no automatic migration.
68
-
69
57
  ## Why
70
58
 
71
59
  Claude Code is (supposed to be) the best way to run Claude. Codex CLI is often the best way to run GPT. Each provider's harness is optimized for their models — sandboxing, tool use, context handling, everything (supposedly).
@@ -4,18 +4,6 @@ Orchestrate AI coding agents across Claude Code, Codex, and OpenCode. Each model
4
4
 
5
5
  > **Early development.** Meridian is not stable. Expect breaking changes in any release. If you need a stable workflow, this project is not ready for you yet.
6
6
 
7
- ## v0.1.0 Migration
8
-
9
- v0.1.0 removes all legacy state format support in the state layer.
10
-
11
- If you are upgrading from any pre-0.1.0 build, run:
12
-
13
- ```bash
14
- rm -rf ~/.meridian
15
- ```
16
-
17
- This is a clean break. There is no automatic migration.
18
-
19
7
  ## Why
20
8
 
21
9
  Claude Code is (supposed to be) the best way to run Claude. Codex CLI is often the best way to run GPT. Each provider's harness is optimized for their models — sandboxing, tool use, context handling, everything (supposedly).
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.3.2"
5
+ __version__ = "0.3.3"
@@ -45,12 +45,16 @@ Required abstract methods — every subclass must implement all of these:
45
45
  - `harness_id`, `spawn_id`, `capabilities` properties
46
46
  - `session_id` → `str | None` (None until the transport delivers a session identifier)
47
47
  - `subprocess_pid` → `int | None`
48
+ - `resident_backend` → `ResidentBackendControl | None`; Codex/OpenCode expose
49
+ this for resident-until-done structured liveness and follow-up turns;
50
+ non-resident transports return None. This is the only public resident control
51
+ seam — callers do not reach for adapter-specific backend objects.
52
+ - `scope_snapshot` → `ProcessScopeSnapshot | None`; managed backends expose the
53
+ process-scope facts captured at launch so primary attach and cleanup paths do
54
+ not reconstruct containment from PID fields.
48
55
  - `start(config, spec)` → async; raises if already started
49
56
  - `stop()` → async; idempotent
50
57
  - `health()` → bool
51
- - `resident_backend` → `ResidentBackendControl | None`; Codex/OpenCode expose
52
- this for resident-until-done structured liveness and follow-up turns;
53
- non-resident transports return None.
54
58
  - `send_user_message(text)` → async
55
59
  - `send_cancel()` → async
56
60
  - `events()` → `AsyncIterator[HarnessEvent]`
@@ -61,9 +65,6 @@ supports the capability:
61
65
  - `start_observer(config, spec)` — observer mode; guard with `capabilities.supports_primary_observer`
62
66
  - `configure_primary_runtime_requests(policy, event_sink, request_handler)`
63
67
  - `inject_runtime_event(event)`
64
- - `inject_turn(message)` — compatibility wrapper that delegates to
65
- `resident_backend.begin_followup_turn`; transports should implement follow-up
66
- turns through the resident backend seam instead of overriding this directly.
67
68
  - `respond_request(request_id, decision, payload)` — Codex only
68
69
  - `respond_user_input(request_id, answers)` — Codex only
69
70
 
@@ -11,12 +11,13 @@ Each transport wraps a long-lived process and turns its output into a stream of
11
11
  `HarnessEvent` objects consumed by the drain loop. The drain loop calls
12
12
  `terminal_outcome(event)` on each event; when that returns non-None, it breaks.
13
13
 
14
- Three transports exist, each different at the wire level:
14
+ Transports differ at the wire level:
15
15
  - **Claude** (`claude_ws.py`): stdin/stdout NDJSON. No WebSocket despite the filename.
16
- - **Codex** (`codex_ws.py`): real WebSocket to `codex app-server`, JSON-RPC 2.0.
16
+ - **Codex** (`codex_ws.py`): real WebSocket to a managed `codex app-server`, JSON-RPC 2.0.
17
17
  Codex's `requestApproval` and `requestUserInput` messages are dispatched to
18
18
  either `AutoAcceptHandler` (spawn paths) or `InteractiveHandler` (managed-primary attach).
19
- - **OpenCode** (`opencode_http.py`): HTTP+SSE to `opencode serve`.
19
+ - **OpenCode** (`opencode_http.py`): HTTP+SSE to managed `opencode serve`.
20
+ - **Cursor/Pi**: narrower spawned-session transports; no resident backend seam.
20
21
 
21
22
  ## Key Rules
22
23
 
@@ -31,6 +32,14 @@ distinction.
31
32
  implement all abstract methods, register in the bundle. Missing registration →
32
33
  `KeyError` at lookup time.
33
34
 
35
+ **Resident control goes through `resident_backend`.** Do not add connection-level
36
+ turn-injection or managed-backend shims. Codex/OpenCode return a
37
+ `ResidentBackendControl`; callers use `begin_followup_turn()` through that seam.
38
+
39
+ **Managed backend liveness belongs to `BackendLivenessPolicy`.** Adapters feed it
40
+ activity, active turns, active requests, backend pid, and birth time; callers consume
41
+ its structured decisions instead of inventing per-adapter alive checks.
42
+
34
43
  ## Entry Points
35
44
 
36
45
  - `base.py` — `HarnessConnection` ABC, `HarnessEvent`, `ConnectionCapabilities`,
@@ -39,6 +48,11 @@ implement all abstract methods, register in the bundle. Missing registration →
39
48
  `ResidentDrainCoordinator` for structured liveness, awaiting-done signaling,
40
49
  and follow-up turns. This seam's presence, not the harness id, selects the
41
50
  resident drain coordinator.
51
+ - `liveness.py` — `BackendLivenessPolicy`, the shared managed-backend liveness
52
+ classifier for Codex/OpenCode.
53
+ - `managed_backend.py` — single helper for launching managed backend subprocesses,
54
+ building `ProcessScopeSnapshot`, linking parent-death behavior when possible,
55
+ and recording `process_scopes.json`.
42
56
  - `__init__.py` — `get_connection_class(harness_id, transport_id)`.
43
57
 
44
58
  ## Depth
@@ -52,6 +52,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
52
52
 
53
53
  _MANAGED_FLAG_ALIASES: dict[str, tuple[str, ...]] = {
54
54
  "--model": ("--model", "-m"),
55
+ "--thinking": ("--thinking",),
55
56
  "--append-system-prompt": ("--append-system-prompt",),
56
57
  "--session": ("--session",),
57
58
  "--fork": ("--fork",),
@@ -148,12 +149,13 @@ def _project_model_arg(spec: ResolvedLaunchSpec) -> str | None:
148
149
  if not model:
149
150
  return None
150
151
 
151
- thinking = _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
152
- if thinking:
153
- return f"{model}:{thinking}"
154
152
  return model
155
153
 
156
154
 
155
+ def _project_thinking_level(spec: ResolvedLaunchSpec) -> str | None:
156
+ return _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
157
+
158
+
157
159
  def project_pi_native_tui_spec_to_cli_args(
158
160
  spec: ResolvedLaunchSpec,
159
161
  *,
@@ -162,19 +164,26 @@ def project_pi_native_tui_spec_to_cli_args(
162
164
  """Project one ``ResolvedLaunchSpec`` into an ordered native Pi TUI command list."""
163
165
 
164
166
  command: list[str] = list(base_command)
167
+ passthrough_tail = spec.extra_args
165
168
 
166
169
  model_arg = _project_model_arg(spec)
167
170
  if model_arg is not None:
168
171
  command.extend(("--model", model_arg))
169
172
 
173
+ thinking_level = _project_thinking_level(spec)
174
+ model_override_in_passthrough = any(
175
+ _has_flag(passthrough_tail, alias) for alias in _MANAGED_FLAG_ALIASES["--model"]
176
+ )
177
+ emit_thinking = thinking_level is not None and not model_override_in_passthrough
178
+ if emit_thinking and thinking_level is not None:
179
+ command.extend(("--thinking", thinking_level))
180
+
170
181
  if spec.appended_system_prompt:
171
182
  command.extend(("--append-system-prompt", spec.appended_system_prompt))
172
183
 
173
184
  continue_session_id = (spec.continue_session_id or "").strip()
174
185
  has_continue_session = bool(continue_session_id)
175
186
  has_continue_fork = has_continue_session and spec.continue_fork
176
-
177
- passthrough_tail = spec.extra_args
178
187
  _reject_mode_collisions(passthrough_tail)
179
188
  _reject_continue_collisions(passthrough_tail)
180
189
  _reject_extension_collisions(passthrough_tail)
@@ -184,6 +193,11 @@ def project_pi_native_tui_spec_to_cli_args(
184
193
  has_managed_value=model_arg is not None,
185
194
  passthrough_tail=passthrough_tail,
186
195
  )
196
+ _log_collision_if_needed(
197
+ managed_flag="--thinking",
198
+ has_managed_value=emit_thinking,
199
+ passthrough_tail=passthrough_tail,
200
+ )
187
201
  _log_collision_if_needed(
188
202
  managed_flag="--append-system-prompt",
189
203
  has_managed_value=bool(spec.appended_system_prompt),
@@ -53,6 +53,7 @@ _DELEGATED_FIELDS: frozenset[str] = frozenset(
53
53
 
54
54
  _MANAGED_FLAG_ALIASES: dict[str, tuple[str, ...]] = {
55
55
  "--model": ("--model", "-m"),
56
+ "--thinking": ("--thinking",),
56
57
  "--append-system-prompt": ("--append-system-prompt",),
57
58
  "--session": ("--session",),
58
59
  "--fork": ("--fork",),
@@ -143,12 +144,13 @@ def _project_model_arg(spec: ResolvedLaunchSpec) -> str | None:
143
144
  if not model:
144
145
  return None
145
146
 
146
- thinking = _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
147
- if thinking:
148
- return f"{model}:{thinking}"
149
147
  return model
150
148
 
151
149
 
150
+ def _project_thinking_level(spec: ResolvedLaunchSpec) -> str | None:
151
+ return _EFFORT_TO_THINKING.get((spec.effort or "").strip().lower())
152
+
153
+
152
154
  def _default_pi_session_dir() -> str:
153
155
  return str(resolve_pi_spawn_session_root())
154
156
 
@@ -161,19 +163,26 @@ def project_pi_spec_to_cli_args(
161
163
  """Project one ``ResolvedLaunchSpec`` into an ordered Pi RPC command list."""
162
164
 
163
165
  command: list[str] = list(base_command)
166
+ passthrough_tail = spec.extra_args
164
167
 
165
168
  model_arg = _project_model_arg(spec)
166
169
  if model_arg is not None:
167
170
  command.extend(("--model", model_arg))
168
171
 
172
+ thinking_level = _project_thinking_level(spec)
173
+ model_override_in_passthrough = any(
174
+ _has_flag(passthrough_tail, alias) for alias in _MANAGED_FLAG_ALIASES["--model"]
175
+ )
176
+ emit_thinking = thinking_level is not None and not model_override_in_passthrough
177
+ if emit_thinking and thinking_level is not None:
178
+ command.extend(("--thinking", thinking_level))
179
+
169
180
  if spec.appended_system_prompt:
170
181
  command.extend(("--append-system-prompt", spec.appended_system_prompt))
171
182
 
172
183
  continue_session_id = (spec.continue_session_id or "").strip()
173
184
  has_continue_session = bool(continue_session_id)
174
185
  has_continue_fork = has_continue_session and spec.continue_fork
175
-
176
- passthrough_tail = spec.extra_args
177
186
  _reject_mode_collisions(passthrough_tail)
178
187
  _reject_extension_collisions(passthrough_tail)
179
188
  _reject_session_dir_collisions(passthrough_tail)
@@ -183,6 +192,11 @@ def project_pi_spec_to_cli_args(
183
192
  has_managed_value=model_arg is not None,
184
193
  passthrough_tail=passthrough_tail,
185
194
  )
195
+ _log_collision_if_needed(
196
+ managed_flag="--thinking",
197
+ has_managed_value=emit_thinking,
198
+ passthrough_tail=passthrough_tail,
199
+ )
186
200
  _log_collision_if_needed(
187
201
  managed_flag="--append-system-prompt",
188
202
  has_managed_value=bool(spec.appended_system_prompt),
@@ -124,8 +124,10 @@ Up to 10 retries; raises `RuntimeError` if exhausted.
124
124
 
125
125
  `spawn/terminal_policy.py:decide_terminal_write()` implements the projection
126
126
  authority rule: a runner-origin terminal write supersedes a reconciler-origin write
127
- on the same spawn. The reaper checks this before finalizing — it will not overwrite
128
- a spawn that the runner already terminated with a higher-authority origin.
127
+ on the same spawn. Terminal statuses are `succeeded`, `failed`, `cancelled`, and
128
+ `timed_out`; `timed_out` is a terminal failure class distinct from generic
129
+ `failed`. The reaper checks authority before finalizing — it will not overwrite a
130
+ spawn that the runner already terminated with a higher-authority origin.
129
131
 
130
132
  ### Reaper Behavior
131
133
 
@@ -137,13 +139,15 @@ Liveness check sequence per active spawn:
137
139
  1. Skip if status is already terminal.
138
140
  2. Skip if not a root-side-effect process (`is_root_side_effect_process()`).
139
141
  3. Skip if heartbeat age < 120s (recently alive).
140
- 4. If status = `finalizing`: check `runner_exit_status`, then `cancel_intent`, then
141
- durable report through `_completion_or_cancel_decision()`. If none apply mark
142
- failed (`orphan_finalization`).
143
- 5. If status = `running` or `queued`: check if `runner_pid` is alive (using
142
+ 4. If status = `finalizing`: prefer durable report / cancel precedence and recorded
143
+ `runner_exit_status`; if neither proves a terminal outcome and activity is stale,
144
+ mark failed (`orphan_finalization`).
145
+ 5. If `runner_exit_status` is already recorded outside `finalizing`, preserve the
146
+ runner's terminal tuple after the short post-runner-exit grace.
147
+ 6. If status = `running` or `queued`: check if `runner_pid` is alive (using
144
148
  `liveness.py:is_process_alive()` with PID reuse guard via recorded start time).
145
- If dead, check completion/cancel precedence, then recent activity, startup grace,
146
- and finally mark failed (`orphan_run` or `missing_runner_pid`).
149
+ If dead, check completion/cancel precedence, recent activity, startup grace, and
150
+ finally mark failed (`orphan_run` or `missing_runner_pid`).
147
151
 
148
152
  `spawn_report_has_durable_completion(runtime_root, spawn_id)` reads `report.md` and returns True
149
153
  for non-empty report content that is not a terminal control frame (`cancelled`/`error`
@@ -160,9 +164,9 @@ violating the rule can let a late cancel downgrade a completed spawn.
160
164
  **Managed-primary orphan cleanup:**
161
165
 
162
166
  When a spawn is flagged as a potential managed primary (Codex / OpenCode kind=primary)
163
- and must be finalized as failed, `reconcile_active_spawn()` attempts process cleanup
164
- before writing the terminal state. The tier used depends on how much metadata is
165
- readable:
167
+ and must be finalized as failed, `reconcile_active_spawn()` first uses recorded
168
+ `process_scopes.json` cleanup, then attempts managed-primary cleanup before writing
169
+ the terminal state. The managed tier used depends on how much metadata is readable:
166
170
 
167
171
  1. **Managed snapshot available** (`read_managed_primary_snapshot()` succeeded):
168
172
  `terminate_managed_primary_processes(managed_snapshot.metadata)` — terminates
@@ -79,8 +79,9 @@ Liveness sequence per active spawn:
79
79
  1. Skip if already terminal.
80
80
  2. Skip if heartbeat age < 120s.
81
81
  3. `finalizing` with durable report → mark succeeded.
82
- 4. `finalizing` without durable report → mark failed (`orphan_finalization`).
82
+ 4. `finalizing` without durable report or recorded runner terminal tuple → mark failed (`orphan_finalization`).
83
83
  5. `running`/`queued` with dead PID (checked with start-time reuse guard) → mark failed (`orphan_run`).
84
+ 6. Timeouts are terminal `timed_out`, a failure class distinct from generic `failed`.
84
85
 
85
86
  ## Entry Points
86
87
 
@@ -12,6 +12,12 @@ SpawnManager
12
12
  ├─ _observers: EventObserverRegistry
13
13
  └─ _heartbeat_tasks: dict[SpawnId, Task]
14
14
 
15
+ DrainPlan
16
+ ├─ coordinator: DrainCoordinator | None
17
+ ├─ policy: DrainPolicy
18
+ ├─ aux_wake / handle_aux_wake
19
+ └─ finalizer
20
+
15
21
  SpawnSession
16
22
  ├─ connection: HarnessConnection ← live harness connection
17
23
  ├─ drain_task: Task ← background drain loop
@@ -27,7 +33,9 @@ The implementation is split by responsibility:
27
33
  - `spawn_manager.py` — public registry/control API and generic live-spawn lifecycle
28
34
  - `spawn_dispatch.py` — connection creation/start dispatch
29
35
  - `spawn_drain_loop.py` — drain loop, persistence/observer/fan-out ordering, outcome priority
36
+ - `drain_coordinator.py` — `DrainPlan` plus the narrow `DrainCoordinator` seam
30
37
  - `spawn_session.py` — `SpawnSession` and `DrainOutcome` carriers
38
+ - `resident_drain.py` — resident-backend descendant waiting and done-nudge model
31
39
  - `pi_drain.py` — Pi spawned-session quiescence coordinator
32
40
  - `pi_subspawn_tracker.py` — Pi child-spawn and notification tracking
33
41
  - `disk_watcher.py` / `pi_quiescence.py` — disk-backed Pi quiescence inputs
@@ -48,6 +56,18 @@ Persistence is synchronous and happens before any notification. 10 consecutive
48
56
  write failures abort the loop with a `failed` outcome. Do not reorder these stages
49
57
  — observers and the subscriber must only see events that are durably written.
50
58
 
59
+ ### DrainPlan Selection
60
+
61
+ `SpawnManager._select_drain_plan()` returns the whole drain-loop configuration for
62
+ one active spawn. Codex/OpenCode resident backends get a `ResidentDrainCoordinator`;
63
+ Pi RPC gets `PiDrainCoordinator` plus disk-watcher aux wakes; plain streaming
64
+ harnesses intentionally run with `DrainPlan(coordinator=None)`. There is no public
65
+ no-op coordinator class — absence of a coordinator is the plain path.
66
+
67
+ `DrainCoordinator` stays narrow: it observes events, handles terminal events,
68
+ provides timeouts, classifies stream close, and handles stream exit. Constant
69
+ configuration belongs in `DrainPlan`, not in coordinator methods.
70
+
51
71
  ### DrainOutcome Priority
52
72
 
53
73
  When the drain loop exits, the outcome is determined in this order:
@@ -130,9 +150,9 @@ Generic policies control terminal event behavior:
130
150
 
131
151
  `SingleTurnDrainPolicy` is the default. Pass `PersistentDrainPolicy` to
132
152
  `start_spawn(drain_policy=...)` for chat sessions where the harness stays alive
133
- across turns. Pi spawned-session behavior is intentionally not another generic
134
- policy flag: it is delegated to `PiDrainCoordinator`, because it needs disk-backed
135
- background-work state, child-wave deadlines, notification state, and cleanup decisions.
153
+ across turns. Pi spawned-session behavior and resident descendant waiting are not
154
+ generic policy flags: `SpawnManager` selects coordinators through `DrainPlan` when
155
+ the connection exposes the needed seam.
136
156
 
137
157
  ## Pi RPC Quiescence Drain
138
158
 
@@ -5,10 +5,12 @@ The async backbone between a live harness connection and the rest of the system.
5
5
  core mechanism that moves events from the harness outward to persistence, observers,
6
6
  and the subscriber queue.
7
7
 
8
- Mostly mechanism. Generic terminal behavior lives in `DrainPolicy`; Pi spawned-session
9
- quiescence is the explicit exception. Keep Pi child-wave, notification, disk-state,
10
- and tracked-process cleanup policy behind the Pi coordinator/tracker modules instead
11
- of growing `SpawnManager`.
8
+ Mostly mechanism. Generic terminal behavior lives in `DrainPolicy`; harness-specific
9
+ completion waiting enters through `DrainPlan`. Plain streaming harnesses intentionally
10
+ run with `coordinator=None`; Pi and resident Codex/OpenCode paths get narrow
11
+ coordinators only when their connection exposes the needed seam. Keep Pi child-wave,
12
+ notification, disk-state, resident-done nudges, and tracked-process cleanup policy
13
+ behind the coordinator/tracker modules instead of growing `SpawnManager`.
12
14
 
13
15
  Resident drain selection is capability-driven: a connection participates in the
14
16
  resident descendant-wait path only when `connection.resident_backend` is present.
@@ -53,9 +55,9 @@ CLI paths: one short-lived instance per run.
53
55
  events are dropped on `QueueFull` (with telemetry). The sentinel evicts one item if
54
56
  needed to guarantee it gets through — without it, the subscriber hangs forever.
55
57
 
56
- ## DrainPolicy
58
+ ## DrainPlan / DrainPolicy
57
59
 
58
- Governs terminal event behavior:
60
+ `DrainPlan` carries the selected coordinator, policy, aux wake, and finalizer for one active spawn. Its `coordinator=None` value is the plain path. `DrainPolicy` governs terminal event behavior:
59
61
 
60
62
  | Policy | On terminal event | Action |
61
63
  |---|---|---|
File without changes