meridian-cli 0.3.0__tar.gz → 0.3.2__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 (549) hide show
  1. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/PKG-INFO +3 -2
  2. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/pyproject.toml +5 -2
  3. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/__init__.py +1 -1
  4. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/agent_help.py +1 -1
  5. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/bootstrap.py +14 -0
  6. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/bootstrap_cmd.py +1 -0
  7. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/entrypoint.py +6 -1
  8. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/main.py +47 -77
  9. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/mars_passthrough.py +5 -28
  10. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/primary_launch.py +7 -0
  11. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/spawn.py +74 -2
  12. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/startup/help.py +3 -0
  13. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/utils.py +7 -2
  14. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/settings.py +24 -0
  15. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/domain.py +3 -1
  16. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/lifecycle.py +8 -10
  17. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/process_cleanup.py +50 -1
  18. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/spawn_lifecycle.py +30 -4
  19. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/spawn_service.py +67 -14
  20. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/telemetry.py +3 -3
  21. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/.context/CONTEXT.md +6 -0
  22. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/AGENTS.md +4 -0
  23. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/base.py +15 -0
  24. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/claude_ws.py +1 -0
  25. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/codex_ws.py +118 -63
  26. meridian_cli-0.3.2/src/meridian/lib/harness/connections/liveness.py +155 -0
  27. meridian_cli-0.3.2/src/meridian/lib/harness/connections/managed_backend.py +128 -0
  28. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/opencode_http.py +259 -103
  29. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/pi_rpc.py +1 -0
  30. meridian_cli-0.3.2/src/meridian/lib/harness/connections/resident_backend.py +70 -0
  31. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/pi_lifecycle_events.py +7 -173
  32. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/__init__.py +1 -0
  33. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/errors.py +2 -0
  34. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/primary_attach.py +106 -69
  35. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/runner.py +33 -3
  36. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/subprocess_launcher.py +3 -0
  37. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/resolve.py +60 -0
  38. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/session_scope.py +2 -0
  39. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/signals.py +8 -2
  40. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/streaming_runner.py +69 -51
  41. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/types.py +1 -0
  42. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/diag.py +17 -2
  43. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/reference.py +27 -12
  44. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/reference_recovery.py +29 -16
  45. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_export.py +44 -14
  46. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_target.py +101 -27
  47. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/.context/CONTEXT.md +1 -1
  48. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/__init__.py +6 -0
  49. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/api.py +251 -48
  50. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/context_ref.py +3 -2
  51. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/execute.py +69 -23
  52. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/execute_init.py +3 -1
  53. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/execute_runner.py +2 -0
  54. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/execute_session.py +2 -0
  55. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/models.py +32 -5
  56. meridian_cli-0.3.2/src/meridian/lib/ops/spawn/pre_init.py +134 -0
  57. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/query.py +6 -5
  58. meridian_cli-0.3.2/src/meridian/lib/platform/detached_process.py +132 -0
  59. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/process_scope/base.py +18 -0
  60. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/process_scope/fallback.py +8 -4
  61. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/process_scope/posix.py +20 -7
  62. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/process_scope/windows_job.py +6 -5
  63. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/liveness.py +23 -0
  64. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/managed_primary.py +21 -24
  65. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/primary_meta.py +9 -0
  66. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/process_scope_projection.py +26 -26
  67. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/reaper.py +111 -31
  68. meridian_cli-0.3.2/src/meridian/lib/state/session_identity.py +172 -0
  69. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/session_store.py +5 -0
  70. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn/model.py +2 -2
  71. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn/repository.py +3 -0
  72. meridian_cli-0.3.2/src/meridian/lib/state/spawn_signals.py +61 -0
  73. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn_store.py +25 -2
  74. meridian_cli-0.3.2/src/meridian/lib/state/spawn_tree.py +119 -0
  75. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/AGENTS.md +8 -1
  76. meridian_cli-0.3.2/src/meridian/lib/streaming/completion_nudge.py +21 -0
  77. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/disk_watcher.py +3 -6
  78. meridian_cli-0.3.2/src/meridian/lib/streaming/drain_coordinator.py +120 -0
  79. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/drain_wait.py +10 -10
  80. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/pi_drain.py +253 -59
  81. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/pi_process_cleanup.py +2 -1
  82. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/pi_quiescence.py +3 -0
  83. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/pi_subspawn_tracker.py +47 -25
  84. meridian_cli-0.3.2/src/meridian/lib/streaming/resident_drain.py +320 -0
  85. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/signal_canceller.py +3 -5
  86. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/spawn_drain_loop.py +158 -103
  87. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/spawn_manager.py +165 -99
  88. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/spawn_session.py +3 -1
  89. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/events.py +13 -3
  90. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/observer.py +20 -4
  91. meridian_cli-0.3.0/src/meridian/lib/platform/windows_job.py +0 -102
  92. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/.gitignore +0 -0
  93. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/LICENSE +0 -0
  94. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/README.md +0 -0
  95. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/ag_ui/__init__.pyi +0 -0
  96. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/ag_ui/core.pyi +0 -0
  97. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/AGENTS.md +0 -0
  98. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/__main__.py +0 -0
  99. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/.context/CONTEXT.md +0 -0
  100. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/AGENTS.md +0 -0
  101. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/__init__.py +0 -0
  102. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/_cmd_utils.py +0 -0
  103. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/app_tree.py +0 -0
  104. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/argv_normalization.py +0 -0
  105. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/chat_cmd.py +0 -0
  106. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/config_cmd.py +0 -0
  107. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/doctor_cmd.py +0 -0
  108. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/ext_cmd.py +0 -0
  109. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/ext_registration.py +0 -0
  110. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/hooks_authority.py +0 -0
  111. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/hooks_commands.py +0 -0
  112. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/kg_cmd.py +0 -0
  113. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/mermaid_cmd.py +0 -0
  114. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/migrate_cmd.py +0 -0
  115. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/misc_commands.py +0 -0
  116. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/models_cmd.py +0 -0
  117. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/output.py +0 -0
  118. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/qi_cmd.py +0 -0
  119. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/report_cmd.py +0 -0
  120. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/session_cmd.py +0 -0
  121. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/spawn_inject.py +0 -0
  122. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/startup/__init__.py +0 -0
  123. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/startup/catalog.py +0 -0
  124. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/startup/classify.py +0 -0
  125. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/startup/cyclopts_app.py +0 -0
  126. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/startup/lazy_dispatch.py +0 -0
  127. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/startup/policy.py +0 -0
  128. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/streaming_serve.py +0 -0
  129. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/sync_cmd.py +0 -0
  130. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/telemetry_cmd.py +0 -0
  131. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/work_cmd.py +0 -0
  132. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/cli/workspace_cmd.py +0 -0
  133. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/dev/AGENTS.md +0 -0
  134. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/dev/__init__.py +0 -0
  135. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/dev/pytests.py +0 -0
  136. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/__init__.py +0 -0
  137. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/bootstrap/.context/CONTEXT.md +0 -0
  138. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/bootstrap/AGENTS.md +0 -0
  139. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/bootstrap/__init__.py +0 -0
  140. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/bootstrap/config.py +0 -0
  141. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/bootstrap/project_state.py +0 -0
  142. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/bootstrap/runtime_state.py +0 -0
  143. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/bootstrap/services.py +0 -0
  144. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/.context/CONTEXT.md +0 -0
  145. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/AGENTS.md +0 -0
  146. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/__init__.py +0 -0
  147. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/agent.py +0 -0
  148. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/bootstrap.py +0 -0
  149. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/catalog_session.py +0 -0
  150. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/model_aliases.py +0 -0
  151. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/models.py +0 -0
  152. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/catalog/skill.py +0 -0
  153. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/.context/CONTEXT.md +0 -0
  154. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/AGENTS.md +0 -0
  155. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/__init__.py +0 -0
  156. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/backend_acquisition.py +0 -0
  157. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/backend_handle.py +0 -0
  158. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/checkpoint.py +0 -0
  159. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/command_handler.py +0 -0
  160. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/command_invariants.py +0 -0
  161. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/commands.py +0 -0
  162. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/.context/CONTEXT.md +0 -0
  163. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/AGENTS.md +0 -0
  164. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/__init__.py +0 -0
  165. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/discovery.py +0 -0
  166. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/launcher.py +0 -0
  167. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/policy.py +0 -0
  168. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/portless.py +0 -0
  169. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/raw_vite.py +0 -0
  170. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/dev_frontend/supervisor.py +0 -0
  171. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/event_index.py +0 -0
  172. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/event_log.py +0 -0
  173. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/event_observer.py +0 -0
  174. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/event_pipeline.py +0 -0
  175. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/frontend.py +0 -0
  176. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/.context/CONTEXT.md +0 -0
  177. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/AGENTS.md +0 -0
  178. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/__init__.py +0 -0
  179. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/base.py +0 -0
  180. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/claude.py +0 -0
  181. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/codex.py +0 -0
  182. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/common.py +0 -0
  183. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/opencode.py +0 -0
  184. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/registry.py +0 -0
  185. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/normalization/synthetic.py +0 -0
  186. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/policy.py +0 -0
  187. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/protocol.py +0 -0
  188. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/recovery.py +0 -0
  189. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/replay.py +0 -0
  190. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/runtime.py +0 -0
  191. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/server.py +0 -0
  192. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/session_service.py +0 -0
  193. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/chat/ws_fanout.py +0 -0
  194. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/.context/CONTEXT.md +0 -0
  195. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/AGENTS.md +0 -0
  196. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/__init__.py +0 -0
  197. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/catalog.py +0 -0
  198. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/context_config.py +0 -0
  199. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/preserving_edit.py +0 -0
  200. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/project_config_state.py +0 -0
  201. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/project_paths.py +0 -0
  202. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/project_root.py +0 -0
  203. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/schema.py +0 -0
  204. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/config/workspace.py +0 -0
  205. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/context/.context/CONTEXT.md +0 -0
  206. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/context/AGENTS.md +0 -0
  207. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/context/__init__.py +0 -0
  208. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/context/resolver.py +0 -0
  209. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/.context/CONTEXT.md +0 -0
  210. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/AGENTS.md +0 -0
  211. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/__init__.py +0 -0
  212. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/child_env.py +0 -0
  213. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/clock.py +0 -0
  214. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/codec.py +0 -0
  215. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/command_strings.py +0 -0
  216. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/context.py +0 -0
  217. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/conversation.py +0 -0
  218. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/depth.py +0 -0
  219. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/execution_policy.py +0 -0
  220. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/formatting.py +0 -0
  221. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/launch_policy_snapshot.py +0 -0
  222. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/logging.py +0 -0
  223. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/overrides.py +0 -0
  224. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/resolved_context.py +0 -0
  225. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/sink.py +0 -0
  226. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/spawn_start.py +0 -0
  227. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/types.py +0 -0
  228. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/core/util.py +0 -0
  229. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/diagnostics.py +0 -0
  230. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/.context/CONTEXT.md +0 -0
  231. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/AGENTS.md +0 -0
  232. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/__init__.py +0 -0
  233. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/commands/.context/CONTEXT.md +0 -0
  234. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/commands/AGENTS.md +0 -0
  235. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/commands/__init__.py +0 -0
  236. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/commands/biomed.py +0 -0
  237. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/commands/mermaid.py +0 -0
  238. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/commands/sessions.py +0 -0
  239. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/commands/workbench.py +0 -0
  240. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/context.py +0 -0
  241. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/descriptors.py +0 -0
  242. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/dispatcher.py +0 -0
  243. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/first_party.py +0 -0
  244. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/observability.py +0 -0
  245. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/registry.py +0 -0
  246. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/extensions/types.py +0 -0
  247. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/.context/CONTEXT.md +0 -0
  248. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/AGENTS.md +0 -0
  249. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/__init__.py +0 -0
  250. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/adapter.py +0 -0
  251. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/bundle.py +0 -0
  252. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/claude.py +0 -0
  253. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/claude_preflight.py +0 -0
  254. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/claude_utils.py +0 -0
  255. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/codex.py +0 -0
  256. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/codex_rollout.py +0 -0
  257. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/common.py +0 -0
  258. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/__init__.py +0 -0
  259. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/cursor_subprocess.py +0 -0
  260. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/connections/errors.py +0 -0
  261. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/control_action.py +0 -0
  262. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/cost.py +0 -0
  263. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/cursor.py +0 -0
  264. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/errors.py +0 -0
  265. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractor.py +0 -0
  266. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/.context/CONTEXT.md +0 -0
  267. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/AGENTS.md +0 -0
  268. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/__init__.py +0 -0
  269. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/base.py +0 -0
  270. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/claude.py +0 -0
  271. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/codex.py +0 -0
  272. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/cursor.py +0 -0
  273. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/opencode.py +0 -0
  274. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/extractors/pi.py +0 -0
  275. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/launch_spec.py +0 -0
  276. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/launch_types.py +0 -0
  277. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/opencode.py +0 -0
  278. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/opencode_storage.py +0 -0
  279. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/opencode_transcript.py +0 -0
  280. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/.context/CONTEXT.md +0 -0
  281. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/AGENTS.md +0 -0
  282. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/__init__.py +0 -0
  283. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/base.py +0 -0
  284. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/claude.py +0 -0
  285. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/codex.py +0 -0
  286. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/opencode.py +0 -0
  287. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/passthrough/registry.py +0 -0
  288. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/permission_broker.py +0 -0
  289. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/pi.py +0 -0
  290. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/pi_paths.py +0 -0
  291. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/pi_runtime_resolver.py +0 -0
  292. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/.context/CONTEXT.md +0 -0
  293. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/AGENTS.md +0 -0
  294. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/__init__.py +0 -0
  295. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/_guards.py +0 -0
  296. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/permission_flags.py +0 -0
  297. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/pi_extension_projection.py +0 -0
  298. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_claude.py +0 -0
  299. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_codex_common.py +0 -0
  300. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_codex_streaming.py +0 -0
  301. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_codex_subprocess.py +0 -0
  302. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_cursor.py +0 -0
  303. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_opencode_streaming.py +0 -0
  304. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_opencode_subprocess.py +0 -0
  305. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_pi_native_tui.py +0 -0
  306. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/project_pi_rpc.py +0 -0
  307. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/projections/projection_errors.py +0 -0
  308. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/registry.py +0 -0
  309. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/semantics.py +0 -0
  310. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/session_detection.py +0 -0
  311. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/harness/transcript.py +0 -0
  312. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/.context/CONTEXT.md +0 -0
  313. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/AGENTS.md +0 -0
  314. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/__init__.py +0 -0
  315. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/builtin/.context/CONTEXT.md +0 -0
  316. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/builtin/AGENTS.md +0 -0
  317. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/builtin/__init__.py +0 -0
  318. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/builtin/autosync_store.py +0 -0
  319. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/builtin/base.py +0 -0
  320. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/builtin/git_autosync.py +0 -0
  321. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/builtin_registry.py +0 -0
  322. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/config.py +0 -0
  323. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/dispatch.py +0 -0
  324. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/interval.py +0 -0
  325. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/registry.py +0 -0
  326. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/runner.py +0 -0
  327. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/hooks/types.py +0 -0
  328. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ignores.py +0 -0
  329. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/kg/.context/CONTEXT.md +0 -0
  330. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/kg/AGENTS.md +0 -0
  331. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/kg/__init__.py +0 -0
  332. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/kg/graph.py +0 -0
  333. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/kg/report.py +0 -0
  334. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/kg/serializer.py +0 -0
  335. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/kg/types.py +0 -0
  336. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/.context/CONTEXT.md +0 -0
  337. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/AGENTS.md +0 -0
  338. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/artifact_io.py +0 -0
  339. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/bundle_adapter.py +0 -0
  340. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/claude_session_access.py +0 -0
  341. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/command.py +0 -0
  342. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/compiler.py +0 -0
  343. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/composition.py +0 -0
  344. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/composition_spawn.py +0 -0
  345. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/constants.py +0 -0
  346. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/context.py +0 -0
  347. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/cwd.py +0 -0
  348. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/env.py +0 -0
  349. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/extract.py +0 -0
  350. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/fork.py +0 -0
  351. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/launch_types.py +0 -0
  352. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/materialize.py +0 -0
  353. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/permissions.py +0 -0
  354. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/plan.py +0 -0
  355. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/policies.py +0 -0
  356. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/policy_snapshot.py +0 -0
  357. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/.context/CONTEXT.md +0 -0
  358. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/AGENTS.md +0 -0
  359. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/__init__.py +0 -0
  360. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/ports.py +0 -0
  361. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/pty_launcher.py +0 -0
  362. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/session.py +0 -0
  363. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/process/windows_launcher.py +0 -0
  364. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/prompt.py +0 -0
  365. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/prompt_context.py +0 -0
  366. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/reference.py +0 -0
  367. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/report.py +0 -0
  368. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/request.py +0 -0
  369. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/resolution.py +0 -0
  370. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/run_inputs.py +0 -0
  371. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/runner_helpers.py +0 -0
  372. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/streaming/.context/CONTEXT.md +0 -0
  373. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/streaming/AGENTS.md +0 -0
  374. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/streaming/__init__.py +0 -0
  375. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/streaming/heartbeat.py +0 -0
  376. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/streaming/terminal_arbitrator.py +0 -0
  377. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/text_utils.py +0 -0
  378. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/workspace.py +0 -0
  379. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/workspace_projection.py +0 -0
  380. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/launch/written_files.py +0 -0
  381. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/markdown/.context/CONTEXT.md +0 -0
  382. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/markdown/AGENTS.md +0 -0
  383. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/markdown/__init__.py +0 -0
  384. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/markdown/extract.py +0 -0
  385. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/markdown/types.py +0 -0
  386. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/.context/CONTEXT.md +0 -0
  387. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/AGENTS.md +0 -0
  388. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/__init__.py +0 -0
  389. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/report.py +0 -0
  390. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/scanner.py +0 -0
  391. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/serializer.py +0 -0
  392. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/.context/CONTEXT.md +0 -0
  393. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/AGENTS.md +0 -0
  394. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/__init__.py +0 -0
  395. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/bare_end.py +0 -0
  396. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/fill_no_color.py +0 -0
  397. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/line_map.py +0 -0
  398. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/ox_edge.py +0 -0
  399. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/preprocess.py +0 -0
  400. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/suppression.py +0 -0
  401. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/style/types.py +0 -0
  402. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/mermaid/validator.py +0 -0
  403. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/observability/.context/CONTEXT.md +0 -0
  404. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/observability/AGENTS.md +0 -0
  405. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/observability/__init__.py +0 -0
  406. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/observability/debug_tracer.py +0 -0
  407. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/observability/trace_helpers.py +0 -0
  408. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/.context/CONTEXT.md +0 -0
  409. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/AGENTS.md +0 -0
  410. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/__init__.py +0 -0
  411. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/catalog.py +0 -0
  412. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/commands.py +0 -0
  413. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/config.py +0 -0
  414. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/config_surface.py +0 -0
  415. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/context.py +0 -0
  416. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/hooks.py +0 -0
  417. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/init_ops.py +0 -0
  418. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/mars.py +0 -0
  419. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/migration.py +0 -0
  420. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/pruning.py +0 -0
  421. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/qi.py +0 -0
  422. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/report.py +0 -0
  423. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/runtime.py +0 -0
  424. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_corpus.py +0 -0
  425. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_log.py +0 -0
  426. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_log_render.py +0 -0
  427. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_render.py +0 -0
  428. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_repair.py +0 -0
  429. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_search.py +0 -0
  430. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/session_transcript.py +0 -0
  431. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/AGENTS.md +0 -0
  432. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/execute_bg.py +0 -0
  433. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/failure_policy.py +0 -0
  434. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/spawn/prepare.py +0 -0
  435. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/sync_conflicts.py +0 -0
  436. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/work_attachment.py +0 -0
  437. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/work_dashboard.py +0 -0
  438. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/work_lifecycle.py +0 -0
  439. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/work_sessions.py +0 -0
  440. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/ops/workspace.py +0 -0
  441. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/.context/CONTEXT.md +0 -0
  442. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/AGENTS.md +0 -0
  443. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/__init__.py +0 -0
  444. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/locking.py +0 -0
  445. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/process_scope/.context/CONTEXT.md +0 -0
  446. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/process_scope/AGENTS.md +0 -0
  447. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/process_scope/__init__.py +0 -0
  448. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/terminate.py +0 -0
  449. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/platform/unix_modules.py +0 -0
  450. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/safety/.context/CONTEXT.md +0 -0
  451. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/safety/AGENTS.md +0 -0
  452. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/safety/__init__.py +0 -0
  453. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/safety/budget.py +0 -0
  454. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/safety/guardrails.py +0 -0
  455. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/safety/permissions.py +0 -0
  456. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/safety/redaction.py +0 -0
  457. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/service_context.py +0 -0
  458. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/spawn/.context/CONTEXT.md +0 -0
  459. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/spawn/AGENTS.md +0 -0
  460. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/spawn/__init__.py +0 -0
  461. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/spawn/archive.py +0 -0
  462. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/.context/CONTEXT.md +0 -0
  463. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/AGENTS.md +0 -0
  464. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/__init__.py +0 -0
  465. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/artifact_store.py +0 -0
  466. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/atomic.py +0 -0
  467. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/event_store.py +0 -0
  468. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/history.py +0 -0
  469. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/launch_boundary.py +0 -0
  470. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/paths.py +0 -0
  471. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/runtime_root.py +0 -0
  472. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn/.context/CONTEXT.md +0 -0
  473. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn/AGENTS.md +0 -0
  474. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn/__init__.py +0 -0
  475. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn/terminal_policy.py +0 -0
  476. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn/transitions.py +0 -0
  477. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/spawn_report.py +0 -0
  478. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/timestamps.py +0 -0
  479. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/user_paths.py +0 -0
  480. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/wordgen.py +0 -0
  481. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/wordlists.py +0 -0
  482. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/state/work_store.py +0 -0
  483. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/.context/CONTEXT.md +0 -0
  484. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/__init__.py +0 -0
  485. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/control_socket.py +0 -0
  486. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/drain_policy.py +0 -0
  487. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/event_observers.py +0 -0
  488. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/heartbeat.py +0 -0
  489. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/spawn_dispatch.py +0 -0
  490. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/streaming/types.py +0 -0
  491. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/__init__.py +0 -0
  492. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/bootstrap.py +0 -0
  493. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/correlation.py +0 -0
  494. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/init.py +0 -0
  495. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/local_jsonl.py +0 -0
  496. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/maintenance.py +0 -0
  497. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/observers.py +0 -0
  498. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/query.py +0 -0
  499. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/reader.py +0 -0
  500. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/retention.py +0 -0
  501. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/router.py +0 -0
  502. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/sinks.py +0 -0
  503. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/telemetry/status.py +0 -0
  504. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/tools.py +0 -0
  505. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/utils/__init__.py +0 -0
  506. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/lib/utils/time.py +0 -0
  507. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/.context/CONTEXT.md +0 -0
  508. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/README.md +0 -0
  509. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/__init__.py +0 -0
  510. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/dist/extensions/managed-bash/index.js +0 -0
  511. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/dist/extensions/meridian-spawn-watch/index.js +0 -0
  512. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/managed-bash/bundle.smoke.test.ts +0 -0
  513. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_log_store.ts +0 -0
  514. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.test.ts +0 -0
  515. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/managed-bash/src/bash_runtime.ts +0 -0
  516. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/managed-bash/src/index.ts +0 -0
  517. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/bundle.smoke.test.ts +0 -0
  518. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.test.ts +0 -0
  519. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/meridian-spawn-watch/src/index.ts +0 -0
  520. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/ids.ts +0 -0
  521. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/json_file.ts +0 -0
  522. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/log_overlay.ts +0 -0
  523. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/meridian_cli.ts +0 -0
  524. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.test.ts +0 -0
  525. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/meridian_spawn.ts +0 -0
  526. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/pi_harness_profile.ts +0 -0
  527. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/pi_state_paths.ts +0 -0
  528. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/schemas.ts +0 -0
  529. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/selectable_panel.test.ts +0 -0
  530. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/selectable_panel.ts +0 -0
  531. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/spawn_origins.test.ts +0 -0
  532. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/spawn_origins.ts +0 -0
  533. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/extensions/shared/ui.ts +0 -0
  534. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/package.json +0 -0
  535. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/pnpm-lock.yaml +0 -0
  536. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/pnpm-workspace.yaml +0 -0
  537. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/scripts/verify-extensions-loop.mjs +0 -0
  538. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/pi_runtime/vitest.config.ts +0 -0
  539. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/plugin_api/AGENTS.md +0 -0
  540. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/plugin_api/__init__.py +0 -0
  541. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/plugin_api/config.py +0 -0
  542. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/plugin_api/fs.py +0 -0
  543. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/plugin_api/git.py +0 -0
  544. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/plugin_api/state.py +0 -0
  545. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/plugin_api/types.py +0 -0
  546. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/py.typed +0 -0
  547. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/server/AGENTS.md +0 -0
  548. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/src/meridian/server/__init__.py +0 -0
  549. {meridian_cli-0.3.0 → meridian_cli-0.3.2}/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.0
3
+ Version: 0.3.2
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
@@ -24,7 +24,7 @@ Requires-Dist: coolname>=4.0.0
24
24
  Requires-Dist: cyclopts>=3.0
25
25
  Requires-Dist: fastapi>=0.115
26
26
  Requires-Dist: markdown-it-py>=4.0
27
- Requires-Dist: mars-agents==0.8.1
27
+ Requires-Dist: mars-agents==0.8.3
28
28
  Requires-Dist: mcp>=1.0
29
29
  Requires-Dist: pathspec>=1.1.0
30
30
  Requires-Dist: psutil>=7.2.2
@@ -41,6 +41,7 @@ Requires-Dist: httpx>=0.28; extra == 'app'
41
41
  Provides-Extra: dev
42
42
  Requires-Dist: pyright>=1.1.400; extra == 'dev'
43
43
  Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
44
+ Requires-Dist: pytest-timeout>=2.4.0; extra == 'dev'
44
45
  Requires-Dist: pytest>=8.4.0; extra == 'dev'
45
46
  Requires-Dist: ruff>=0.12.0; extra == 'dev'
46
47
  Provides-Extra: templates
@@ -24,7 +24,7 @@ dependencies = [
24
24
  "cyclopts>=3.0",
25
25
  "fastapi>=0.115",
26
26
  "markdown-it-py>=4.0",
27
- "mars-agents==0.8.1",
27
+ "mars-agents==0.8.3",
28
28
  "mcp>=1.0",
29
29
  "pathspec>=1.1.0",
30
30
  "psutil>=7.2.2",
@@ -56,6 +56,7 @@ dev = [
56
56
  "pyright>=1.1.400",
57
57
  "pytest>=8.4.0",
58
58
  "pytest-asyncio>=0.24.0",
59
+ "pytest-timeout>=2.4.0",
59
60
  "ruff>=0.12.0",
60
61
  ]
61
62
  templates = [
@@ -140,9 +141,11 @@ ignore = [
140
141
 
141
142
  [tool.pytest.ini_options]
142
143
  testpaths = ["tests"]
143
- addopts = "-ra -n auto"
144
+ addopts = "-ra -n 4"
144
145
  asyncio_mode = "auto"
145
146
  pythonpath = ["src"]
147
+ timeout = 60
148
+ timeout_method = "thread"
146
149
 
147
150
  [dependency-groups]
148
151
  dev = [
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.3.0"
5
+ __version__ = "0.3.2"
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  _SPAWN_SUPPLEMENT = (
6
6
  "Agent Notes:\n\n"
7
- "Lifecycle: queued → running → finalizing → succeeded | failed | cancelled.\n"
7
+ "Lifecycle: queued → running → finalizing → succeeded | failed | cancelled | timed_out.\n"
8
8
  "'finalizing' is transient — treat as active when polling.\n\n"
9
9
  "Which subcommand when:\n\n"
10
10
  " show ID Status, report, cost — first check for any spawn\n\n"
@@ -35,6 +35,7 @@ _TOP_LEVEL_VALUE_FLAGS = frozenset(
35
35
  "--harness",
36
36
  "-a",
37
37
  "--work",
38
+ "--task-dir",
38
39
  "--autocompact",
39
40
  "--autocompact-pct",
40
41
  "--effort",
@@ -424,6 +425,19 @@ def maybe_bootstrap_runtime_state(
424
425
  return None
425
426
 
426
427
 
428
+ @contextmanager
429
+ def meridian_managed_env_default() -> Generator[None, None, None]:
430
+ prior = os.environ.get("MERIDIAN_MANAGED")
431
+ os.environ.setdefault("MERIDIAN_MANAGED", "1")
432
+ try:
433
+ yield
434
+ finally:
435
+ if prior is None:
436
+ os.environ.pop("MERIDIAN_MANAGED", None)
437
+ else:
438
+ os.environ["MERIDIAN_MANAGED"] = prior
439
+
440
+
427
441
  @contextmanager
428
442
  def temporary_config_env(config_file: str | None) -> Generator[None, None, None]:
429
443
  if config_file is None:
@@ -123,6 +123,7 @@ def register_bootstrap_command(
123
123
  harness=global_harness or explicit_harness,
124
124
  agent=agent,
125
125
  work=work,
126
+ task_dir=None,
126
127
  yolo=yolo,
127
128
  approval=approval,
128
129
  autocompact=autocompact,
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from collections.abc import Sequence
6
6
 
7
- from meridian.cli.bootstrap import first_positional_token
7
+ from meridian.cli.bootstrap import first_positional_token, meridian_managed_env_default
8
8
  from meridian.cli.startup.catalog import COMMAND_CATALOG
9
9
  from meridian.cli.startup.classify import classify_invocation
10
10
 
@@ -38,6 +38,11 @@ def _is_version_request(argv: Sequence[str]) -> bool:
38
38
  def main() -> None:
39
39
  """Thin CLI entrypoint: handles trivial fast paths, delegates the rest."""
40
40
 
41
+ with meridian_managed_env_default():
42
+ _main_impl()
43
+
44
+
45
+ def _main_impl() -> None:
41
46
  import sys
42
47
 
43
48
  if sys.platform == "win32":
@@ -42,6 +42,7 @@ from meridian.cli.bootstrap import (
42
42
  )
43
43
  from meridian.cli.bootstrap import (
44
44
  maybe_bootstrap_runtime_state,
45
+ meridian_managed_env_default,
45
46
  temporary_config_env,
46
47
  )
47
48
  from meridian.cli.bootstrap import (
@@ -418,6 +419,17 @@ def root(
418
419
  str,
419
420
  Parameter(name="--work", help="Attach the primary session to a work item id."),
420
421
  ] = "",
422
+ task_dir: Annotated[
423
+ str | None,
424
+ Parameter(
425
+ name="--task-dir",
426
+ help=(
427
+ "Override the source-code edit directory for this primary launch only. "
428
+ "Does not modify the work item's task_dir setting. "
429
+ "Relative -f paths resolve against this directory."
430
+ ),
431
+ ),
432
+ ] = None,
421
433
  yolo: Annotated[
422
434
  bool,
423
435
  Parameter(
@@ -496,29 +508,36 @@ def root(
496
508
  f"Conflicting harness selections: '{global_harness}' and '{explicit_harness}'."
497
509
  )
498
510
 
499
- _run_primary_launch(
500
- continue_ref=continue_ref,
501
- fork_ref=fork_ref,
502
- fork_fresh_ref=fork_fresh_ref,
503
- from_ref=from_ref,
504
- model=model,
505
- harness=global_harness or explicit_harness,
506
- agent=agent,
507
- work=work,
508
- yolo=yolo,
509
- approval=approval,
510
- autocompact=autocompact,
511
- autocompact_pct=autocompact_pct,
512
- effort=effort,
513
- sandbox=sandbox,
514
- timeout=timeout,
515
- dry_run=dry_run,
516
- reference_files=tuple(references),
517
- prompt=resolved_prompt,
518
- skills=tuple(parsed_skills),
519
- goal=goal,
520
- # See _split_passthrough_args() for why this reads from GlobalOptions.
521
- passthrough=get_global_options().passthrough_args,
511
+ normalized_task_dir = (task_dir or "").strip() or None
512
+
513
+ from meridian.cli import primary_launch
514
+
515
+ emit(
516
+ primary_launch.run_primary_launch(
517
+ project_root=get_global_options().project_root,
518
+ continue_ref=continue_ref,
519
+ fork_ref=fork_ref,
520
+ fork_fresh_ref=fork_fresh_ref,
521
+ from_ref=from_ref,
522
+ model=model,
523
+ harness=global_harness or explicit_harness,
524
+ agent=agent,
525
+ work=work,
526
+ task_dir=normalized_task_dir,
527
+ yolo=yolo,
528
+ approval=approval,
529
+ autocompact=autocompact,
530
+ autocompact_pct=autocompact_pct,
531
+ effort=effort,
532
+ sandbox=sandbox,
533
+ timeout=timeout,
534
+ dry_run=dry_run,
535
+ passthrough=get_global_options().passthrough_args,
536
+ reference_files=tuple(references),
537
+ prompt=resolved_prompt,
538
+ skills=tuple(parsed_skills),
539
+ goal=goal,
540
+ )
522
541
  )
523
542
 
524
543
 
@@ -571,60 +590,6 @@ def mars(
571
590
  _run_mars_passthrough(args, output_format=get_global_options().output.format)
572
591
 
573
592
 
574
- def _run_primary_launch(
575
- *,
576
- continue_ref: str | None,
577
- fork_ref: str | None,
578
- fork_fresh_ref: str | None,
579
- from_ref: str | None,
580
- model: str,
581
- harness: str | None,
582
- agent: str | None,
583
- work: str,
584
- yolo: bool,
585
- approval: str | None,
586
- autocompact: int | None,
587
- autocompact_pct: int | None,
588
- effort: str | None,
589
- sandbox: str | None,
590
- timeout: float | None,
591
- dry_run: bool,
592
- reference_files: tuple[str, ...] = (),
593
- prompt: str | None = None,
594
- skills: tuple[str, ...] = (),
595
- goal: str | None = None,
596
- passthrough: tuple[str, ...] = (),
597
- ) -> None:
598
- from meridian.cli import primary_launch
599
-
600
- emit(
601
- primary_launch.run_primary_launch(
602
- project_root=get_global_options().project_root,
603
- continue_ref=continue_ref,
604
- fork_ref=fork_ref,
605
- fork_fresh_ref=fork_fresh_ref,
606
- from_ref=from_ref,
607
- model=model,
608
- harness=harness,
609
- agent=agent,
610
- work=work,
611
- yolo=yolo,
612
- approval=approval,
613
- autocompact=autocompact,
614
- autocompact_pct=autocompact_pct,
615
- effort=effort,
616
- sandbox=sandbox,
617
- timeout=timeout,
618
- dry_run=dry_run,
619
- passthrough=passthrough,
620
- reference_files=reference_files,
621
- prompt=prompt,
622
- skills=skills,
623
- goal=goal,
624
- )
625
- )
626
-
627
-
628
593
  @app.command(name="init")
629
594
  def init_alias(
630
595
  path: Annotated[
@@ -1070,6 +1035,11 @@ def _directory_env_scope(
1070
1035
  def main(argv: Sequence[str] | None = None) -> None:
1071
1036
  """CLI entry point used by `meridian` and `python -m meridian`."""
1072
1037
 
1038
+ with meridian_managed_env_default():
1039
+ _main_impl(argv=argv)
1040
+
1041
+
1042
+ def _main_impl(argv: Sequence[str] | None = None) -> None:
1073
1043
  from meridian.lib.core.logging import configure_logging
1074
1044
 
1075
1045
  args = list(sys.argv[1:] if argv is None else argv)
@@ -18,7 +18,6 @@ from meridian.lib.ops.mars import resolve_mars_executable
18
18
  class MarsPassthroughRequest:
19
19
  command: tuple[str, ...]
20
20
  mars_args: tuple[str, ...]
21
- is_sync: bool
22
21
  wants_json: bool
23
22
  root_override: Path | None
24
23
 
@@ -53,25 +52,6 @@ def mars_requested_root(args: Sequence[str]) -> Path | None:
53
52
  return None
54
53
 
55
54
 
56
- def mars_subcommand(args: Sequence[str]) -> str | None:
57
- index = 0
58
- while index < len(args):
59
- token = args[index]
60
- if token == "--":
61
- return None
62
- if token == "--root":
63
- index += 2
64
- continue
65
- if token.startswith("--root="):
66
- index += 1
67
- continue
68
- if token.startswith("-"):
69
- index += 1
70
- continue
71
- return token
72
- return None
73
-
74
-
75
55
  def decode_json_values(raw_stdout: str) -> list[object] | None:
76
56
  decoder = json.JSONDecoder()
77
57
  parsed_values: list[object] = []
@@ -98,7 +78,6 @@ def parse_mars_passthrough(
98
78
  """Build an executable Mars passthrough request without side effects."""
99
79
 
100
80
  mars_args = list(args)
101
- is_sync = mars_subcommand(mars_args) == "sync"
102
81
  wants_json = mars_requested_json(mars_args) or output_format == "json"
103
82
  if wants_json and not mars_requested_json(mars_args):
104
83
  mars_args = ["--json", *mars_args]
@@ -109,7 +88,6 @@ def parse_mars_passthrough(
109
88
  return MarsPassthroughRequest(
110
89
  command=(executable, *mars_args),
111
90
  mars_args=tuple(mars_args),
112
- is_sync=is_sync,
113
91
  wants_json=wants_json,
114
92
  root_override=mars_requested_root(mars_args),
115
93
  )
@@ -124,11 +102,11 @@ def execute_mars_passthrough(
124
102
  """Execute a prepared Mars passthrough request."""
125
103
 
126
104
  stderr_stream = sys.stderr if stderr is None else stderr
127
- run_kwargs: dict[str, object] = {}
128
- if request.is_sync:
129
- # With MERIDIAN_PROJECT_DIR set, parse_mars_passthrough injects --root to the
130
- # launcher project; sync materializes .mars/ there, not the task cwd.
131
- run_kwargs["env"] = {**os.environ, "MERIDIAN_MANAGED": "1"}
105
+ # With MERIDIAN_PROJECT_DIR set, parse_mars_passthrough injects --root to the
106
+ # launcher project; Mars runs under Meridian management for all passthrough commands.
107
+ run_kwargs: dict[str, object] = {
108
+ "env": {**os.environ, "MERIDIAN_MANAGED": os.environ.get("MERIDIAN_MANAGED", "1")},
109
+ }
132
110
  try:
133
111
  if request.wants_json:
134
112
  result = run(
@@ -196,4 +174,3 @@ def resolve_init_project_root(path: str | None) -> Path:
196
174
  return Path(path).expanduser().resolve()
197
175
  env_root = os.getenv("MERIDIAN_PROJECT_DIR", "").strip()
198
176
  return Path(env_root).expanduser().resolve() if env_root else Path.cwd().resolve()
199
-
@@ -146,6 +146,7 @@ def run_primary_launch(
146
146
  harness: str | None,
147
147
  agent: str | None,
148
148
  work: str,
149
+ task_dir: str | None = None,
149
150
  yolo: bool,
150
151
  approval: str | None,
151
152
  autocompact: int | None,
@@ -197,6 +198,11 @@ def run_primary_launch(
197
198
  fork_target_requested = raw_fork_target or None
198
199
  fork_fresh_target_requested = raw_fork_fresh_target or None
199
200
  context_from_requested = (raw_from_target,) if raw_from_target else ()
201
+ normalized_task_dir = (task_dir or "").strip() or None
202
+ if resume_target is not None and normalized_task_dir is not None:
203
+ raise ValueError(
204
+ "--continue does not accept --task-dir. Use --fork --task-dir to diverge."
205
+ )
200
206
  resolved_approval = approval if approval is not None else ("never" if yolo else "default")
201
207
 
202
208
  fork_resolution = validate_fork_mode(
@@ -349,6 +355,7 @@ def run_primary_launch(
349
355
  ),
350
356
  agent=requested_agent,
351
357
  work_id=requested_work_id,
358
+ task_dir=normalized_task_dir,
352
359
  passthrough_args=passthrough,
353
360
  session_mode=session_mode,
354
361
  pinned_context="",
@@ -37,6 +37,7 @@ from meridian.lib.ops.spawn.api import (
37
37
  SpawnForkInput,
38
38
  SpawnListInput,
39
39
  SpawnShowInput,
40
+ SpawnSignalInput,
40
41
  SpawnStatsInput,
41
42
  SpawnStatusInput,
42
43
  SpawnWaitInput,
@@ -46,9 +47,11 @@ from meridian.lib.ops.spawn.api import (
46
47
  spawn_children_sync,
47
48
  spawn_continue_sync,
48
49
  spawn_create_sync,
50
+ spawn_done_sync,
49
51
  spawn_files_sync,
50
52
  spawn_fork_sync,
51
53
  spawn_list_sync,
54
+ spawn_rearm_sync,
52
55
  spawn_show_sync,
53
56
  spawn_stats_sync,
54
57
  spawn_status_sync,
@@ -85,6 +88,20 @@ def _prepare_spawn_runtime_write() -> RuntimeWriteContext:
85
88
  return prepare_for_runtime_write(require_established_project_root())
86
89
 
87
90
 
91
+ def _foreground_spawn_id_notifier(*, quiet: bool) -> Callable[[str], None] | None:
92
+ if quiet or _get_global_options().output.format == "json":
93
+ return None
94
+ sink = _current_output_sink()
95
+
96
+ def _notify(spawn_id: str) -> None:
97
+ sink.status(f"Spawn id: {spawn_id}")
98
+ from meridian.cli.output import flush_sink
99
+
100
+ flush_sink(sink)
101
+
102
+ return _notify
103
+
104
+
88
105
  def _spawn_create_exit_code(result: SpawnActionOutput) -> int:
89
106
  if result.exit_code is not None:
90
107
  return result.exit_code
@@ -558,6 +575,7 @@ def _spawn_create(
558
575
  ),
559
576
  sink=_current_output_sink(),
560
577
  prepared=_prepare_spawn_runtime_write(),
578
+ on_spawn_id=_foreground_spawn_id_notifier(quiet=quiet),
561
579
  )
562
580
  output_format = _get_global_options().output.format
563
581
  if output_format != "json" and metadata:
@@ -581,7 +599,10 @@ def _spawn_list(
581
599
  str | None,
582
600
  Parameter(
583
601
  name="--status",
584
- help="Filter by status: queued, running, finalizing, succeeded, failed, cancelled.",
602
+ help=(
603
+ "Filter by status: queued, running, finalizing, succeeded, "
604
+ "failed, cancelled, timed_out."
605
+ ),
585
606
  ),
586
607
  ] = None,
587
608
  view: Annotated[
@@ -590,7 +611,7 @@ def _spawn_list(
590
611
  name="--view",
591
612
  help=(
592
613
  "Preset list view: active, recent (recent active spawns), "
593
- "all, running, queued, completed, failed, cancelled. "
614
+ "all, running, queued, completed, failed, cancelled, timed_out. "
594
615
  "Default: active."
595
616
  ),
596
617
  ),
@@ -635,6 +656,7 @@ def _spawn_list(
635
656
  "completed": ("succeeded",),
636
657
  "failed": ("failed",),
637
658
  "cancelled": ("cancelled",),
659
+ "timed_out": ("timed_out",),
638
660
  }
639
661
  if normalized_view not in view_map:
640
662
  supported = ", ".join(view_map)
@@ -969,6 +991,42 @@ def _spawn_cancel_all(
969
991
  raise SystemExit(1)
970
992
 
971
993
 
994
+ def _spawn_done(
995
+ emit: Any,
996
+ spawn_id: Annotated[
997
+ str | None,
998
+ Parameter(help="Spawn ID to finish (defaults to MERIDIAN_SPAWN_ID)."),
999
+ ] = None,
1000
+ ) -> None:
1001
+ result = spawn_done_sync(
1002
+ SpawnSignalInput(spawn_id=spawn_id),
1003
+ ctx=RuntimeContext.from_environment(),
1004
+ sink=_current_output_sink(),
1005
+ prepared=_prepare_spawn_runtime_write(),
1006
+ )
1007
+ emit(result)
1008
+ if result.status == "failed":
1009
+ raise SystemExit(1)
1010
+
1011
+
1012
+ def _spawn_rearm(
1013
+ emit: Any,
1014
+ spawn_id: Annotated[
1015
+ str | None,
1016
+ Parameter(help="Spawn ID to keep resident (defaults to MERIDIAN_SPAWN_ID)."),
1017
+ ] = None,
1018
+ ) -> None:
1019
+ result = spawn_rearm_sync(
1020
+ SpawnSignalInput(spawn_id=spawn_id),
1021
+ ctx=RuntimeContext.from_environment(),
1022
+ sink=_current_output_sink(),
1023
+ prepared=_prepare_spawn_runtime_write(),
1024
+ )
1025
+ emit(result)
1026
+ if result.status == "failed":
1027
+ raise SystemExit(1)
1028
+
1029
+
972
1030
  def _spawn_inject(
973
1031
  spawn_id: Annotated[
974
1032
  str,
@@ -1021,6 +1079,20 @@ def register_spawn_commands(app: App, emit: Emitter) -> tuple[set[str], dict[str
1021
1079
  emit=emit,
1022
1080
  default_handler=partial(_spawn_create, emit),
1023
1081
  )
1082
+ app.command(
1083
+ partial(_spawn_done, emit),
1084
+ name="done",
1085
+ help="Signal a resident spawn to finish successfully.",
1086
+ )
1087
+ registered.add("spawn.done")
1088
+ descriptions["meridian.spawn.done"] = "Signal a resident spawn to finish successfully."
1089
+ app.command(
1090
+ partial(_spawn_rearm, emit),
1091
+ name="rearm",
1092
+ help="Signal a resident spawn to keep running.",
1093
+ )
1094
+ registered.add("spawn.rearm")
1095
+ descriptions["meridian.spawn.rearm"] = "Signal a resident spawn to keep running."
1024
1096
  app.command(
1025
1097
  _spawn_inject,
1026
1098
  name="inject",
@@ -27,6 +27,7 @@ Primary launch/resume:
27
27
  meridian --fork p123 Fork from ref
28
28
  meridian --fork-fresh p123 -m MODEL Fork and switch identity
29
29
  meridian --from p123 Fresh session with prior context
30
+ meridian --task-dir PATH Launch against a different edit directory
30
31
  continue/fork refs: chat id (c123), spawn id (p123), or raw harness session id
31
32
  --from refs: chat id (c123) or spawn id (p123)
32
33
  --fork preserves agent/model/skills identity. --fork-fresh allows
@@ -155,6 +156,8 @@ Primary launch/resume:
155
156
 
156
157
  meridian --from p123
157
158
 
159
+ meridian --task-dir PATH
160
+
158
161
  continue/fork refs: chat id (c123), spawn id (p123), or raw harness session id
159
162
  --from refs: chat id (c123) or spawn id (p123)
160
163
  --fork preserves agent/model/skills identity. --fork-fresh allows
@@ -98,7 +98,6 @@ def missing_fork_session_error_with_discovery(
98
98
  return missing_fork_session_error(normalized_ref)
99
99
 
100
100
  from meridian.lib.ops.runtime import resolve_runtime_root_for_read
101
- from meridian.lib.state import spawn_store
102
101
  from meridian.lib.state.primary_meta import read_primary_harness_session_discovery
103
102
 
104
103
  runtime_root = resolve_runtime_root_for_read(project_root)
@@ -111,7 +110,13 @@ def missing_fork_session_error_with_discovery(
111
110
  else (source_chat_id or "").strip()
112
111
  )
113
112
  if chat_ref:
114
- chat_spawns = spawn_store.list_spawns(runtime_root, filters={"chat_id": chat_ref})
113
+ from meridian.lib.state import session_identity
114
+
115
+ owner_chat_id = session_identity.get_owner_chat_for_session(runtime_root, chat_ref)
116
+ lookup_chat_id = owner_chat_id or chat_ref
117
+ chat_spawns = session_identity.list_spawns_for_owner_chat(
118
+ runtime_root, lookup_chat_id
119
+ )
115
120
  pi_primary_spawns = [
116
121
  row for row in chat_spawns if row.kind == "primary" and row.harness == "pi"
117
122
  ]
@@ -1337,6 +1337,30 @@ class MeridianConfig(BaseSettings):
1337
1337
  env_vars=("MERIDIAN_PI_CHILD_WAVE_TIMEOUT_SECONDS",),
1338
1338
  ),
1339
1339
  ] = None
1340
+ resident_deadline_seconds: Annotated[
1341
+ float | None,
1342
+ config_field(
1343
+ "timeouts.resident_deadline_seconds",
1344
+ value_kind="float",
1345
+ file_aliases=(
1346
+ file_alias("timeouts", "resident_deadline_seconds"),
1347
+ file_alias(None, "resident_deadline_seconds"),
1348
+ ),
1349
+ env_vars=("MERIDIAN_RESIDENT_DEADLINE_SECONDS",),
1350
+ ),
1351
+ ] = None
1352
+ resident_poll_seconds: Annotated[
1353
+ float | None,
1354
+ config_field(
1355
+ "timeouts.resident_poll_seconds",
1356
+ value_kind="float",
1357
+ file_aliases=(
1358
+ file_alias("timeouts", "resident_poll_seconds"),
1359
+ file_alias(None, "resident_poll_seconds"),
1360
+ ),
1361
+ env_vars=("MERIDIAN_RESIDENT_POLL_SECONDS",),
1362
+ ),
1363
+ ] = None
1340
1364
  pi_task_ping_interval_seconds: Annotated[
1341
1365
  float | None,
1342
1366
  config_field(
@@ -11,7 +11,9 @@ from meridian.lib.core.types import (
11
11
  )
12
12
  from meridian.lib.core.util import FormatContext
13
13
 
14
- SpawnStatus = Literal["queued", "running", "finalizing", "succeeded", "failed", "cancelled"]
14
+ SpawnStatus = Literal[
15
+ "queued", "running", "finalizing", "succeeded", "failed", "cancelled", "timed_out"
16
+ ]
15
17
 
16
18
 
17
19
  class TokenUsage(BaseModel):