loopx 0.5.2__tar.gz → 0.5.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1454) hide show
  1. loopx-0.5.4/PKG-INFO +782 -0
  2. loopx-0.5.4/README.md +753 -0
  3. loopx-0.5.4/loopx/__init__.py +5 -0
  4. loopx-0.5.4/loopx/agent_onboarding.py +706 -0
  5. loopx-0.5.4/loopx/agy_goal_mode/README.md +88 -0
  6. loopx-0.5.4/loopx/agy_goal_mode/__init__.py +118 -0
  7. loopx-0.5.4/loopx/attached_session_api.py +110 -0
  8. loopx-0.5.4/loopx/bootstrap.py +1213 -0
  9. loopx-0.5.4/loopx/bootstrap_command_pack.py +2223 -0
  10. loopx-0.5.4/loopx/canary/planner.py +1979 -0
  11. loopx-0.5.4/loopx/canary/premerge.py +1135 -0
  12. loopx-0.5.4/loopx/canary/qualification_profiles.py +308 -0
  13. loopx-0.5.4/loopx/canary/quality_surface_catalog.py +842 -0
  14. loopx-0.5.4/loopx/capabilities/README.md +141 -0
  15. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/README.md +1260 -0
  16. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/__init__.py +373 -0
  17. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/adaptive_concurrency.py +388 -0
  18. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/catalog_entry.py +954 -0
  19. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/concurrency_envelope.py +764 -0
  20. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/experiment_board.py +1039 -0
  21. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/external_agent.py +499 -0
  22. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/factorial_contrast.py +519 -0
  23. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/four_arm_contract.py +233 -0
  24. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/integrity.py +767 -0
  25. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/native_codex_isolation.py +530 -0
  26. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/native_codex_profile.py +643 -0
  27. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/provider_gateway.py +214 -0
  28. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/runtime_continuity.py +140 -0
  29. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/study_projection.py +1321 -0
  30. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/traex_evidence.py +425 -0
  31. loopx-0.5.4/loopx/capabilities/benchmark_toolkit/treatment_continuation.py +183 -0
  32. loopx-0.5.4/loopx/capabilities/catalog.py +261 -0
  33. loopx-0.5.4/loopx/capabilities/decision_context/README.md +243 -0
  34. loopx-0.5.4/loopx/capabilities/deep_research/README.md +72 -0
  35. loopx-0.5.4/loopx/capabilities/deep_research/__init__.py +5 -0
  36. loopx-0.5.4/loopx/capabilities/deep_research/catalog_entry.py +125 -0
  37. loopx-0.5.4/loopx/capabilities/deep_research/runtime.py +874 -0
  38. loopx-0.5.4/loopx/capabilities/integration_branch/README.md +165 -0
  39. loopx-0.5.4/loopx/capabilities/material_lifecycle/README.md +219 -0
  40. loopx-0.5.4/loopx/capabilities/periodic_report/README.md +512 -0
  41. loopx-0.5.4/loopx/capabilities/periodic_report/__init__.py +77 -0
  42. loopx-0.5.4/loopx/capabilities/periodic_report/bindings.py +826 -0
  43. loopx-0.5.4/loopx/capabilities/periodic_report/catalog_entry.py +191 -0
  44. loopx-0.5.4/loopx/capabilities/periodic_report/cli.py +365 -0
  45. loopx-0.5.4/loopx/capabilities/periodic_report/core.py +731 -0
  46. loopx-0.5.4/loopx/capabilities/periodic_report/incremental.py +504 -0
  47. loopx-0.5.4/loopx/capabilities/periodic_report/pending_intent.py +1145 -0
  48. loopx-0.5.4/loopx/capabilities/periodic_report/post_writeback_hook.py +430 -0
  49. loopx-0.5.4/loopx/capabilities/periodic_report/presets.py +104 -0
  50. loopx-0.5.4/loopx/capabilities/periodic_report/project_progress_snapshot.py +169 -0
  51. loopx-0.5.4/loopx/capabilities/periodic_report/runtime_producer.py +352 -0
  52. loopx-0.5.4/loopx/capabilities/periodic_report/stage_completion.py +290 -0
  53. loopx-0.5.4/loopx/capabilities/periodic_report/triggers.py +596 -0
  54. loopx-0.5.4/loopx/capabilities/pr_review_queue/README.md +552 -0
  55. loopx-0.5.4/loopx/capabilities/pr_review_queue/catalog_entry.py +126 -0
  56. loopx-0.5.4/loopx/capabilities/pr_review_queue/core.py +579 -0
  57. loopx-0.5.4/loopx/capabilities/pr_review_queue/review_contract.py +654 -0
  58. loopx-0.5.4/loopx/capabilities/repository_change_window/README.md +233 -0
  59. loopx-0.5.4/loopx/capabilities/repository_change_window/__init__.py +45 -0
  60. loopx-0.5.4/loopx/capabilities/repository_change_window/catalog_entry.py +127 -0
  61. loopx-0.5.4/loopx/capabilities/repository_change_window/git_hook.py +1139 -0
  62. loopx-0.5.4/loopx/capabilities/repository_change_window/interaction_hook.py +58 -0
  63. loopx-0.5.4/loopx/chat.py +463 -0
  64. loopx-0.5.4/loopx/chat_actions.py +1541 -0
  65. loopx-0.5.4/loopx/chat_agent.py +736 -0
  66. loopx-0.5.4/loopx/chat_goal_lifecycle_actions.py +162 -0
  67. loopx-0.5.4/loopx/chat_runtime.py +1066 -0
  68. loopx-0.5.4/loopx/chat_store.py +1253 -0
  69. loopx-0.5.4/loopx/cli.py +819 -0
  70. loopx-0.5.4/loopx/cli_commands/__init__.py +281 -0
  71. loopx-0.5.4/loopx/cli_commands/benchmark_boundary.py +629 -0
  72. loopx-0.5.4/loopx/cli_commands/benchmark_concurrency.py +248 -0
  73. loopx-0.5.4/loopx/cli_commands/benchmark_dispatch.py +160 -0
  74. loopx-0.5.4/loopx/cli_commands/benchmark_experiment_board.py +246 -0
  75. loopx-0.5.4/loopx/cli_commands/benchmark_external_agent.py +186 -0
  76. loopx-0.5.4/loopx/cli_commands/benchmark_study.py +195 -0
  77. loopx-0.5.4/loopx/cli_commands/bootstrap_connect.py +262 -0
  78. loopx-0.5.4/loopx/cli_commands/deepresearch.py +373 -0
  79. loopx-0.5.4/loopx/cli_commands/doctor.py +49 -0
  80. loopx-0.5.4/loopx/cli_commands/extension.py +293 -0
  81. loopx-0.5.4/loopx/cli_commands/lark_inbox.py +715 -0
  82. loopx-0.5.4/loopx/cli_commands/post_writeback.py +97 -0
  83. loopx-0.5.4/loopx/cli_commands/pr_review.py +290 -0
  84. loopx-0.5.4/loopx/cli_commands/project_lifecycle.py +995 -0
  85. loopx-0.5.4/loopx/cli_commands/project_lifecycle_sinks.py +72 -0
  86. loopx-0.5.4/loopx/cli_commands/quota.py +938 -0
  87. loopx-0.5.4/loopx/cli_commands/quota_context.py +281 -0
  88. loopx-0.5.4/loopx/cli_commands/quota_registration.py +310 -0
  89. loopx-0.5.4/loopx/cli_commands/quota_request.py +155 -0
  90. loopx-0.5.4/loopx/cli_commands/quota_scheduler_followup.py +225 -0
  91. loopx-0.5.4/loopx/cli_commands/registry_admin.py +695 -0
  92. loopx-0.5.4/loopx/cli_commands/registry_admin_lifecycle.py +350 -0
  93. loopx-0.5.4/loopx/cli_commands/slash_commands.py +161 -0
  94. loopx-0.5.4/loopx/cli_commands/start_goal.py +352 -0
  95. loopx-0.5.4/loopx/cli_commands/starter_bootstrap.py +186 -0
  96. loopx-0.5.4/loopx/cli_commands/status.py +870 -0
  97. loopx-0.5.4/loopx/cli_commands/support_control.py +953 -0
  98. loopx-0.5.4/loopx/cli_commands/support_control_heartbeat_registration.py +171 -0
  99. loopx-0.5.4/loopx/cli_commands/task_lease.py +235 -0
  100. loopx-0.5.4/loopx/cli_commands/todo.py +1082 -0
  101. loopx-0.5.4/loopx/cli_commands/todo_argument_validation.py +609 -0
  102. loopx-0.5.4/loopx/cli_commands/todo_event.py +162 -0
  103. loopx-0.5.4/loopx/cli_commands/turn.py +991 -0
  104. loopx-0.5.4/loopx/cli_commands/turn_dsh_host.py +41 -0
  105. loopx-0.5.4/loopx/cli_commands/turn_inspection.py +64 -0
  106. loopx-0.5.4/loopx/cli_commands/turn_registration.py +244 -0
  107. loopx-0.5.4/loopx/cli_commands/turn_rendering.py +150 -0
  108. loopx-0.5.4/loopx/cli_commands/turn_selection.py +42 -0
  109. loopx-0.5.4/loopx/cli_runtime.py +354 -0
  110. loopx-0.5.4/loopx/configure_goal.py +1496 -0
  111. loopx-0.5.4/loopx/contract.py +1039 -0
  112. loopx-0.5.4/loopx/control_plane/agents/agent_lane_recommendation.py +711 -0
  113. loopx-0.5.4/loopx/control_plane/agents/delivery_workspace.py +110 -0
  114. loopx-0.5.4/loopx/control_plane/agents/delivery_workspace.ts +232 -0
  115. loopx-0.5.4/loopx/control_plane/agents/workspace_guard.py +398 -0
  116. loopx-0.5.4/loopx/control_plane/capability_hooks.py +984 -0
  117. loopx-0.5.4/loopx/control_plane/capability_hooks.ts +822 -0
  118. loopx-0.5.4/loopx/control_plane/coordination/__init__.py +1 -0
  119. loopx-0.5.4/loopx/control_plane/coordination/authority_core.py +1019 -0
  120. loopx-0.5.4/loopx/control_plane/coordination/executor.py +1203 -0
  121. loopx-0.5.4/loopx/control_plane/coordination/file_provider.py +309 -0
  122. loopx-0.5.4/loopx/control_plane/coordination/goal_state_shadow.py +99 -0
  123. loopx-0.5.4/loopx/control_plane/coordination/head.py +831 -0
  124. loopx-0.5.4/loopx/control_plane/coordination/local_snapshot.py +207 -0
  125. loopx-0.5.4/loopx/control_plane/coordination/nokv_jsonl_helper.py +610 -0
  126. loopx-0.5.4/loopx/control_plane/effect_program.py +813 -0
  127. loopx-0.5.4/loopx/control_plane/effect_program.ts +896 -0
  128. loopx-0.5.4/loopx/control_plane/effect_runtime.py +727 -0
  129. loopx-0.5.4/loopx/control_plane/effect_runtime_errors.ts +129 -0
  130. loopx-0.5.4/loopx/control_plane/effect_runtime_handlers.ts +576 -0
  131. loopx-0.5.4/loopx/control_plane/effect_runtime_io.ts +440 -0
  132. loopx-0.5.4/loopx/control_plane/effect_runtime_server.ts +137 -0
  133. loopx-0.5.4/loopx/control_plane/goals/active_state_event_projection.py +106 -0
  134. loopx-0.5.4/loopx/control_plane/goals/botmux_runtime.py +1493 -0
  135. loopx-0.5.4/loopx/control_plane/goals/deletion_service.py +335 -0
  136. loopx-0.5.4/loopx/control_plane/goals/goal_frontier/__init__.py +1892 -0
  137. loopx-0.5.4/loopx/control_plane/goals/goal_vision.py +174 -0
  138. loopx-0.5.4/loopx/control_plane/goals/start_contract.py +209 -0
  139. loopx-0.5.4/loopx/control_plane/goals/start_goal_todo_delta.py +224 -0
  140. loopx-0.5.4/loopx/control_plane/goals/vision_checkpoint.py +181 -0
  141. loopx-0.5.4/loopx/control_plane/goals/vision_checkpoint.ts +708 -0
  142. loopx-0.5.4/loopx/control_plane/governed_capability.ts +945 -0
  143. loopx-0.5.4/loopx/control_plane/heartbeat/builder.py +624 -0
  144. loopx-0.5.4/loopx/control_plane/heartbeat/rules.py +69 -0
  145. loopx-0.5.4/loopx/control_plane/heartbeat/task_body.py +780 -0
  146. loopx-0.5.4/loopx/control_plane/host_adapter_settlement.py +344 -0
  147. loopx-0.5.4/loopx/control_plane/operator_inbox_binding.py +55 -0
  148. loopx-0.5.4/loopx/control_plane/projects/registry.py +664 -0
  149. loopx-0.5.4/loopx/control_plane/quota/accounting_artifact_transaction.ts +910 -0
  150. loopx-0.5.4/loopx/control_plane/quota/cli_projection.py +759 -0
  151. loopx-0.5.4/loopx/control_plane/quota/codex_session_usage.py +278 -0
  152. loopx-0.5.4/loopx/control_plane/quota/decision_summary.py +444 -0
  153. loopx-0.5.4/loopx/control_plane/quota/effect_program.py +230 -0
  154. loopx-0.5.4/loopx/control_plane/quota/goal_boundary.py +479 -0
  155. loopx-0.5.4/loopx/control_plane/quota/heartbeat_receipt.py +433 -0
  156. loopx-0.5.4/loopx/control_plane/quota/live_decision.py +508 -0
  157. loopx-0.5.4/loopx/control_plane/quota/monitor_poll.py +798 -0
  158. loopx-0.5.4/loopx/control_plane/quota/monitor_poll_commit.ts +2126 -0
  159. loopx-0.5.4/loopx/control_plane/quota/projection_repair.py +264 -0
  160. loopx-0.5.4/loopx/control_plane/quota/scheduler_ack.py +422 -0
  161. loopx-0.5.4/loopx/control_plane/quota/settlement.py +220 -0
  162. loopx-0.5.4/loopx/control_plane/quota/settlement_cli.py +365 -0
  163. loopx-0.5.4/loopx/control_plane/quota/settlement_phase.ts +73 -0
  164. loopx-0.5.4/loopx/control_plane/quota/settlement_precedence.py +179 -0
  165. loopx-0.5.4/loopx/control_plane/quota/settlement_readback.ts +788 -0
  166. loopx-0.5.4/loopx/control_plane/quota/settlement_workspace_causality.py +375 -0
  167. loopx-0.5.4/loopx/control_plane/quota/settlement_workspace_causality.ts +391 -0
  168. loopx-0.5.4/loopx/control_plane/quota/should_run.py +372 -0
  169. loopx-0.5.4/loopx/control_plane/quota/should_run_packet.py +1491 -0
  170. loopx-0.5.4/loopx/control_plane/quota/should_run_prepare.py +858 -0
  171. loopx-0.5.4/loopx/control_plane/quota/slot_accounting.py +904 -0
  172. loopx-0.5.4/loopx/control_plane/quota/spend_commit.py +221 -0
  173. loopx-0.5.4/loopx/control_plane/quota/spend_commit.ts +863 -0
  174. loopx-0.5.4/loopx/control_plane/quota/spend_sources.py +115 -0
  175. loopx-0.5.4/loopx/control_plane/quota/turn_envelope.py +86 -0
  176. loopx-0.5.4/loopx/control_plane/quota/turn_envelope.ts +798 -0
  177. loopx-0.5.4/loopx/control_plane/quota/usage_collector.py +376 -0
  178. loopx-0.5.4/loopx/control_plane/quota/usage_summary.py +249 -0
  179. loopx-0.5.4/loopx/control_plane/quota/void_commit.py +243 -0
  180. loopx-0.5.4/loopx/control_plane/quota/void_commit.ts +862 -0
  181. loopx-0.5.4/loopx/control_plane/runtime/run_compaction.py +374 -0
  182. loopx-0.5.4/loopx/control_plane/runtime_decode.ts +75 -0
  183. loopx-0.5.4/loopx/control_plane/scheduler/arbitration.py +190 -0
  184. loopx-0.5.4/loopx/control_plane/scheduler/automation_liveness.py +208 -0
  185. loopx-0.5.4/loopx/control_plane/scheduler/execution_context.py +573 -0
  186. loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_commit.ts +994 -0
  187. loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_commit_cli.ts +53 -0
  188. loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_followup.ts +474 -0
  189. loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_followup_cli.ts +300 -0
  190. loopx-0.5.4/loopx/control_plane/scheduler/monitor_poll_writeback.py +345 -0
  191. loopx-0.5.4/loopx/control_plane/scheduler/monitor_todo.py +122 -0
  192. loopx-0.5.4/loopx/control_plane/scheduler/scheduler_hint.py +1358 -0
  193. loopx-0.5.4/loopx/control_plane/scheduler/state_store.ts +637 -0
  194. loopx-0.5.4/loopx/control_plane/scheduler/state_transition_rules.py +398 -0
  195. loopx-0.5.4/loopx/control_plane/scheduler/state_transition_rules.ts +486 -0
  196. loopx-0.5.4/loopx/control_plane/settlement_driver.py +85 -0
  197. loopx-0.5.4/loopx/control_plane/testing/action_portfolio_scenarios.py +323 -0
  198. loopx-0.5.4/loopx/control_plane/testing/actual_default_model_behavior_portfolio.py +1498 -0
  199. loopx-0.5.4/loopx/control_plane/testing/cli_output_budget.py +861 -0
  200. loopx-0.5.4/loopx/control_plane/testing/cli_output_differential.py +622 -0
  201. loopx-0.5.4/loopx/control_plane/testing/cli_output_semantics.py +130 -0
  202. loopx-0.5.4/loopx/control_plane/testing/doubao_model_behavior_actor.py +653 -0
  203. loopx-0.5.4/loopx/control_plane/testing/model_behavior_action_oracles.py +41 -0
  204. loopx-0.5.4/loopx/control_plane/testing/model_behavior_qualification.py +937 -0
  205. loopx-0.5.4/loopx/control_plane/testing/model_tool_behavior.py +547 -0
  206. loopx-0.5.4/loopx/control_plane/testing/scoped_gate_successor_tool_behavior.py +531 -0
  207. loopx-0.5.4/loopx/control_plane/testing/selected_todo_tool_behavior.py +1178 -0
  208. loopx-0.5.4/loopx/control_plane/testing/terminal_settlement_tool_behavior.py +1182 -0
  209. loopx-0.5.4/loopx/control_plane/todos/active_state_todo_parser.py +148 -0
  210. loopx-0.5.4/loopx/control_plane/todos/completion_fence.py +78 -0
  211. loopx-0.5.4/loopx/control_plane/todos/completion_fence.ts +312 -0
  212. loopx-0.5.4/loopx/control_plane/todos/completion_state.py +178 -0
  213. loopx-0.5.4/loopx/control_plane/todos/completion_state.ts +267 -0
  214. loopx-0.5.4/loopx/control_plane/todos/completion_transaction.py +405 -0
  215. loopx-0.5.4/loopx/control_plane/todos/completion_transaction.ts +413 -0
  216. loopx-0.5.4/loopx/control_plane/todos/completion_validation.py +372 -0
  217. loopx-0.5.4/loopx/control_plane/todos/completion_validation_plan.ts +244 -0
  218. loopx-0.5.4/loopx/control_plane/todos/contract.py +1477 -0
  219. loopx-0.5.4/loopx/control_plane/todos/deferred_resume.py +545 -0
  220. loopx-0.5.4/loopx/control_plane/todos/event_writeback.py +712 -0
  221. loopx-0.5.4/loopx/control_plane/todos/external_wait_contract.py +70 -0
  222. loopx-0.5.4/loopx/control_plane/todos/external_wait_writeback.py +112 -0
  223. loopx-0.5.4/loopx/control_plane/todos/handoff_mode.py +512 -0
  224. loopx-0.5.4/loopx/control_plane/todos/line_update.py +500 -0
  225. loopx-0.5.4/loopx/control_plane/todos/list_projection.py +536 -0
  226. loopx-0.5.4/loopx/control_plane/todos/markdown.py +265 -0
  227. loopx-0.5.4/loopx/control_plane/todos/monitor_metadata.py +338 -0
  228. loopx-0.5.4/loopx/control_plane/todos/mutation_authority.py +295 -0
  229. loopx-0.5.4/loopx/control_plane/todos/next_action.ts +527 -0
  230. loopx-0.5.4/loopx/control_plane/todos/next_action_runtime.py +223 -0
  231. loopx-0.5.4/loopx/control_plane/todos/projection.py +738 -0
  232. loopx-0.5.4/loopx/control_plane/todos/quota_summary.py +1173 -0
  233. loopx-0.5.4/loopx/control_plane/todos/resume_condition.py +219 -0
  234. loopx-0.5.4/loopx/control_plane/todos/resume_condition.ts +641 -0
  235. loopx-0.5.4/loopx/control_plane/todos/route_continuation.py +269 -0
  236. loopx-0.5.4/loopx/control_plane/todos/succession_warning.py +217 -0
  237. loopx-0.5.4/loopx/control_plane/todos/summary_item.py +278 -0
  238. loopx-0.5.4/loopx/control_plane/todos/todo_summary.py +1311 -0
  239. loopx-0.5.4/loopx/control_plane/todos/write_correctness.py +42 -0
  240. loopx-0.5.4/loopx/control_plane/turn_driver/__init__.py +87 -0
  241. loopx-0.5.4/loopx/control_plane/turn_driver/codex_cli.py +819 -0
  242. loopx-0.5.4/loopx/control_plane/turn_driver/delivery_continuity.ts +351 -0
  243. loopx-0.5.4/loopx/control_plane/turn_driver/driver.py +413 -0
  244. loopx-0.5.4/loopx/control_plane/turn_driver/executor.py +1496 -0
  245. loopx-0.5.4/loopx/control_plane/turn_driver/host_failure.py +146 -0
  246. loopx-0.5.4/loopx/control_plane/turn_driver/host_todo_completion.ts +936 -0
  247. loopx-0.5.4/loopx/control_plane/turn_driver/journal_store.py +89 -0
  248. loopx-0.5.4/loopx/control_plane/turn_driver/loop_controller.py +734 -0
  249. loopx-0.5.4/loopx/control_plane/turn_driver/recovery.py +121 -0
  250. loopx-0.5.4/loopx/control_plane/turn_driver/session_recovery.py +128 -0
  251. loopx-0.5.4/loopx/control_plane/turn_driver/settlement.py +573 -0
  252. loopx-0.5.4/loopx/control_plane/turn_driver/settlement.ts +911 -0
  253. loopx-0.5.4/loopx/control_plane/turn_driver/turn_journal.ts +705 -0
  254. loopx-0.5.4/loopx/control_plane/turn_driver/turn_journal_effects.ts +308 -0
  255. loopx-0.5.4/loopx/control_plane/turn_driver/turn_journal_runtime.py +182 -0
  256. loopx-0.5.4/loopx/control_plane/work_items/accountable_settlement.py +72 -0
  257. loopx-0.5.4/loopx/control_plane/work_items/action_portfolio.py +124 -0
  258. loopx-0.5.4/loopx/control_plane/work_items/action_portfolio.ts +391 -0
  259. loopx-0.5.4/loopx/control_plane/work_items/action_selection_contract.py +155 -0
  260. loopx-0.5.4/loopx/control_plane/work_items/autonomous_replan_obligation.py +937 -0
  261. loopx-0.5.4/loopx/control_plane/work_items/delivery_outcome.py +216 -0
  262. loopx-0.5.4/loopx/control_plane/work_items/delivery_outcome.ts +97 -0
  263. loopx-0.5.4/loopx/control_plane/work_items/governed_transition_proposal.py +330 -0
  264. loopx-0.5.4/loopx/control_plane/work_items/interaction_contract.py +1541 -0
  265. loopx-0.5.4/loopx/control_plane/work_items/interaction_contract.ts +153 -0
  266. loopx-0.5.4/loopx/control_plane/work_items/local_lease_record.py +221 -0
  267. loopx-0.5.4/loopx/control_plane/work_items/operator_inbox.py +325 -0
  268. loopx-0.5.4/loopx/control_plane/work_items/pending_capability_intent.ts +137 -0
  269. loopx-0.5.4/loopx/control_plane/work_items/planning_horizon.ts +303 -0
  270. loopx-0.5.4/loopx/control_plane/work_items/planning_inventory.py +177 -0
  271. loopx-0.5.4/loopx/control_plane/work_items/planning_inventory.ts +522 -0
  272. loopx-0.5.4/loopx/control_plane/work_items/primary_action.py +345 -0
  273. loopx-0.5.4/loopx/control_plane/work_items/progress_observation.py +719 -0
  274. loopx-0.5.4/loopx/control_plane/work_items/progress_result.py +26 -0
  275. loopx-0.5.4/loopx/control_plane/work_items/project_asset.py +686 -0
  276. loopx-0.5.4/loopx/control_plane/work_items/refresh_recommendation.py +178 -0
  277. loopx-0.5.4/loopx/control_plane/work_items/refresh_recommendation.ts +294 -0
  278. loopx-0.5.4/loopx/control_plane/work_items/replan_settlement.py +137 -0
  279. loopx-0.5.4/loopx/control_plane/work_items/replan_settlement.ts +216 -0
  280. loopx-0.5.4/loopx/control_plane/work_items/repository_delivery.ts +100 -0
  281. loopx-0.5.4/loopx/control_plane/work_items/runtime_capability_reentry.py +191 -0
  282. loopx-0.5.4/loopx/control_plane/work_items/semantic_replan_writeback.py +480 -0
  283. loopx-0.5.4/loopx/control_plane/work_items/task_graph.py +1042 -0
  284. loopx-0.5.4/loopx/control_plane/work_items/task_lease.py +940 -0
  285. loopx-0.5.4/loopx/control_plane/work_items/task_lease_acquire.ts +1380 -0
  286. loopx-0.5.4/loopx/control_plane/work_items/task_lease_acquire_adapter.py +598 -0
  287. loopx-0.5.4/loopx/control_plane/work_items/task_lease_acquire_cli.ts +64 -0
  288. loopx-0.5.4/loopx/control_plane/work_items/task_lease_lifecycle.ts +2687 -0
  289. loopx-0.5.4/loopx/control_plane/work_items/task_lease_lifecycle_decision.ts +309 -0
  290. loopx-0.5.4/loopx/control_plane/work_items/user_action_frontier.py +50 -0
  291. loopx-0.5.4/loopx/control_plane/work_items/work_lane.py +742 -0
  292. loopx-0.5.4/loopx/dashboard_launcher.py +256 -0
  293. loopx-0.5.4/loopx/diagnose.py +648 -0
  294. loopx-0.5.4/loopx/doctor.py +1500 -0
  295. loopx-0.5.4/loopx/dsh_goal_mode/README.md +116 -0
  296. loopx-0.5.4/loopx/dsh_goal_mode/host_failure_map.py +281 -0
  297. loopx-0.5.4/loopx/dsh_goal_mode/turn_host_adapter.py +731 -0
  298. loopx-0.5.4/loopx/entrypoint.py +88 -0
  299. loopx-0.5.4/loopx/extensions/governed_capability_execution.py +718 -0
  300. loopx-0.5.4/loopx/extensions/lark/README.md +258 -0
  301. loopx-0.5.4/loopx/extensions/lark/bot_scopes.py +66 -0
  302. loopx-0.5.4/loopx/extensions/lark/docs/lark-event-inbox.md +611 -0
  303. loopx-0.5.4/loopx/extensions/lark/document_comment_provider.py +1193 -0
  304. loopx-0.5.4/loopx/extensions/lark/event_collector.py +656 -0
  305. loopx-0.5.4/loopx/extensions/lark/event_collector_routes.py +343 -0
  306. loopx-0.5.4/loopx/extensions/lark/event_collector_runtime.py +609 -0
  307. loopx-0.5.4/loopx/extensions/lark/event_inbox.py +812 -0
  308. loopx-0.5.4/loopx/extensions/lark/extension.toml +108 -0
  309. loopx-0.5.4/loopx/extensions/lark/goal_channel_setup.py +824 -0
  310. loopx-0.5.4/loopx/extensions/lark/goal_topic_connections.py +1291 -0
  311. loopx-0.5.4/loopx/extensions/lark/goal_topic_runtime.py +976 -0
  312. loopx-0.5.4/loopx/extensions/lark/group_history.py +607 -0
  313. loopx-0.5.4/loopx/extensions/lark/group_history_cursor.py +290 -0
  314. loopx-0.5.4/loopx/extensions/lark/inbox_reactions.py +1026 -0
  315. loopx-0.5.4/loopx/extensions/lark/inbox_reply.py +545 -0
  316. loopx-0.5.4/loopx/extensions/lark/miaoda_report.py +534 -0
  317. loopx-0.5.4/loopx/extensions/lark/outbound.py +260 -0
  318. loopx-0.5.4/loopx/extensions/lark/periodic_report_cli.py +215 -0
  319. loopx-0.5.4/loopx/extensions/lark/periodic_report_delivery.py +630 -0
  320. loopx-0.5.4/loopx/extensions/lark/presentation/periodic_report.py +444 -0
  321. loopx-0.5.4/loopx/extensions/lark/provider.py +91 -0
  322. loopx-0.5.4/loopx/extensions/lark/reviewer_notification.py +660 -0
  323. loopx-0.5.4/loopx/extensions/lark/routed_inbox.py +423 -0
  324. loopx-0.5.4/loopx/extensions/lark/turn_start_sync.py +792 -0
  325. loopx-0.5.4/loopx/extensions/manifest.py +730 -0
  326. loopx-0.5.4/loopx/extensions/readiness.py +167 -0
  327. loopx-0.5.4/loopx/extensions/runtime.py +985 -0
  328. loopx-0.5.4/loopx/feedback.py +587 -0
  329. loopx-0.5.4/loopx/file_lock.py +969 -0
  330. loopx-0.5.4/loopx/goal_mode_mcp.py +288 -0
  331. loopx-0.5.4/loopx/help_surface.py +560 -0
  332. loopx-0.5.4/loopx/history.py +739 -0
  333. loopx-0.5.4/loopx/host_loop_activation.py +1500 -0
  334. loopx-0.5.4/loopx/host_mode_planner.py +992 -0
  335. loopx-0.5.4/loopx/kunluncode_goal_mode/guards.py +117 -0
  336. loopx-0.5.4/loopx/long_task_cadence.py +261 -0
  337. loopx-0.5.4/loopx/pi_goal_mode/README.md +145 -0
  338. loopx-0.5.4/loopx/pi_goal_mode/loopx-goal.ts +594 -0
  339. loopx-0.5.4/loopx/pi_goal_mode/pi-goal-loop-runtime.mjs +1083 -0
  340. loopx-0.5.4/loopx/presentation/renderers/quota_markdown.py +1114 -0
  341. loopx-0.5.4/loopx/project_prompt.py +1263 -0
  342. loopx-0.5.4/loopx/python_install_owner.py +55 -0
  343. loopx-0.5.4/loopx/quota.py +1415 -0
  344. loopx-0.5.4/loopx/registry.py +649 -0
  345. loopx-0.5.4/loopx/release_candidate.py +277 -0
  346. loopx-0.5.4/loopx/rollout_event_log.py +523 -0
  347. loopx-0.5.4/loopx/self_update.py +1475 -0
  348. loopx-0.5.4/loopx/slash_command_files.py +162 -0
  349. loopx-0.5.4/loopx/slash_command_install.py +1434 -0
  350. loopx-0.5.4/loopx/slash_commands.py +266 -0
  351. loopx-0.5.4/loopx/state_refresh.py +1459 -0
  352. loopx-0.5.4/loopx/status.py +1312 -0
  353. loopx-0.5.4/loopx/todos.py +2277 -0
  354. loopx-0.5.4/loopx/turn_identity.py +32 -0
  355. loopx-0.5.4/loopx/upgrade.py +1090 -0
  356. loopx-0.5.4/loopx/visible_governance.py +684 -0
  357. loopx-0.5.4/loopx/web/chat/assets/index-B1C2FwbO.js +126 -0
  358. loopx-0.5.4/loopx/web/chat/assets/index-B8L75LO_.js +126 -0
  359. loopx-0.5.4/loopx/web/chat/assets/index-BepDBer4.css +1 -0
  360. loopx-0.5.4/loopx/web/chat/assets/index-CWBLcLBj.js +126 -0
  361. loopx-0.5.4/loopx/web/chat/assets/index-DODAzFAe.js +126 -0
  362. loopx-0.5.4/loopx/web/chat/assets/index-DaU9YYwh.js +126 -0
  363. loopx-0.5.4/loopx/web/chat/assets/index-Db3HU1A2.css +1 -0
  364. loopx-0.5.4/loopx/web/chat/assets/index-Do79u7RP.css +1 -0
  365. loopx-0.5.4/loopx/web/chat/assets/index-gSbSfVeP.js +126 -0
  366. loopx-0.5.4/loopx/web/chat/assets/index-kPzCW1DS.css +1 -0
  367. loopx-0.5.4/loopx/web/chat/assets/index-yQOik-72.js +126 -0
  368. loopx-0.5.4/loopx/web/chat/index.html +27 -0
  369. loopx-0.5.4/loopx/workflow_skill_install.py +403 -0
  370. loopx-0.5.4/loopx/zcode_goal_mode/README.md +47 -0
  371. loopx-0.5.4/loopx/zcode_goal_mode/__init__.py +26 -0
  372. loopx-0.5.4/loopx.egg-info/PKG-INFO +782 -0
  373. loopx-0.5.4/loopx.egg-info/SOURCES.txt +1121 -0
  374. loopx-0.5.4/loopx.egg-info/requires.txt +13 -0
  375. loopx-0.5.4/pyproject.toml +139 -0
  376. loopx-0.5.4/skills/loopx-benchmark/SKILL.md +190 -0
  377. loopx-0.5.4/skills/loopx-pr-review/SKILL.md +180 -0
  378. loopx-0.5.4/skills/loopx-self-repair/references/repair-patterns.md +207 -0
  379. loopx-0.5.4/tests/test_agy_host_surface.py +253 -0
  380. loopx-0.5.4/tests/test_attached_session_broker.py +751 -0
  381. loopx-0.5.4/tests/test_auto_research_artifact_receipt.py +558 -0
  382. loopx-0.5.4/tests/test_chat_session_active_turn.py +739 -0
  383. loopx-0.5.4/tests/test_cli_argument_diagnostics.py +1147 -0
  384. loopx-0.5.4/tests/test_cli_entrypoint.py +421 -0
  385. loopx-0.5.4/tests/test_dashboard_command.py +890 -0
  386. loopx-0.5.4/tests/test_deepresearch_command.py +1027 -0
  387. loopx-0.5.4/tests/test_doctor_install_freshness.py +527 -0
  388. loopx-0.5.4/tests/test_dsh_goal_mode.py +606 -0
  389. loopx-0.5.4/tests/test_feedback_goal_id_validation.py +123 -0
  390. loopx-0.5.4/tests/test_feedback_run_selection.py +105 -0
  391. loopx-0.5.4/tests/test_file_lock.py +350 -0
  392. loopx-0.5.4/tests/test_gemini_cursor_host_surfaces.py +128 -0
  393. loopx-0.5.4/tests/test_goal_mode_mcp_completion_validation.py +184 -0
  394. loopx-0.5.4/tests/test_goal_mode_mcp_settlement.py +463 -0
  395. loopx-0.5.4/tests/test_history_chronology.py +187 -0
  396. loopx-0.5.4/tests/test_host_loop_activation.py +1185 -0
  397. loopx-0.5.4/tests/test_host_parity_smoke.py +377 -0
  398. loopx-0.5.4/tests/test_kunluncode_goal_mode.py +1576 -0
  399. loopx-0.5.4/tests/test_license_metadata.py +61 -0
  400. loopx-0.5.4/tests/test_loop_turn_loop_controller.py +1023 -0
  401. loopx-0.5.4/tests/test_loopx_turn_codex_cli.py +737 -0
  402. loopx-0.5.4/tests/test_loopx_turn_driver.py +2308 -0
  403. loopx-0.5.4/tests/test_loopx_turn_executor.py +1997 -0
  404. loopx-0.5.4/tests/test_loopx_turn_host_failure.py +72 -0
  405. loopx-0.5.4/tests/test_loopx_turn_journal_inspection.py +575 -0
  406. loopx-0.5.4/tests/test_loopx_turn_settlement_parity.py +273 -0
  407. loopx-0.5.4/tests/test_nokv_jsonl_helper.py +590 -0
  408. loopx-0.5.4/tests/test_nokv_shadow_provider_probes.py +121 -0
  409. loopx-0.5.4/tests/test_pi_goal_mode.py +171 -0
  410. loopx-0.5.4/tests/test_public_package_lock_boundary.py +71 -0
  411. loopx-0.5.4/tests/test_registry_git_probe.py +114 -0
  412. loopx-0.5.4/tests/test_release_candidate.py +150 -0
  413. loopx-0.5.4/tests/test_scheduler_native_launcher.py +214 -0
  414. loopx-0.5.4/tests/test_self_update_runtime_activation.py +491 -0
  415. loopx-0.5.4/tests/test_slash_command_install.py +993 -0
  416. loopx-0.5.4/tests/test_state_file_containment.py +121 -0
  417. loopx-0.5.4/tests/test_state_refresh_agent_lane_action.py +278 -0
  418. loopx-0.5.4/tests/test_status_server_cors.py +139 -0
  419. loopx-0.5.4/tests/test_turn_envelope.py +952 -0
  420. loopx-0.5.4/tests/test_windows_install.py +350 -0
  421. loopx-0.5.4/tests/test_worker_command_validation.py +110 -0
  422. loopx-0.5.4/tests/test_workflow_skill_install.py +229 -0
  423. loopx-0.5.4/tests/test_zcode_host_surface.py +170 -0
  424. loopx-0.5.2/PKG-INFO +0 -777
  425. loopx-0.5.2/README.md +0 -748
  426. loopx-0.5.2/loopx/__init__.py +0 -5
  427. loopx-0.5.2/loopx/agent_onboarding.py +0 -682
  428. loopx-0.5.2/loopx/attached_session_api.py +0 -95
  429. loopx-0.5.2/loopx/bootstrap.py +0 -1166
  430. loopx-0.5.2/loopx/bootstrap_command_pack.py +0 -2166
  431. loopx-0.5.2/loopx/canary/planner.py +0 -1980
  432. loopx-0.5.2/loopx/canary/premerge.py +0 -1134
  433. loopx-0.5.2/loopx/canary/qualification_profiles.py +0 -308
  434. loopx-0.5.2/loopx/canary/quality_surface_catalog.py +0 -836
  435. loopx-0.5.2/loopx/capabilities/README.md +0 -142
  436. loopx-0.5.2/loopx/capabilities/auto_research/README.md +0 -449
  437. loopx-0.5.2/loopx/capabilities/auto_research/__init__.py +0 -16
  438. loopx-0.5.2/loopx/capabilities/auto_research/bootstrap_contract.py +0 -157
  439. loopx-0.5.2/loopx/capabilities/auto_research/catalog_entry.py +0 -115
  440. loopx-0.5.2/loopx/capabilities/auto_research/cli.py +0 -1468
  441. loopx-0.5.2/loopx/capabilities/auto_research/core.py +0 -11
  442. loopx-0.5.2/loopx/capabilities/auto_research/defaults.py +0 -79
  443. loopx-0.5.2/loopx/capabilities/auto_research/demo_e2e.py +0 -1848
  444. loopx-0.5.2/loopx/capabilities/auto_research/demo_supervisor.py +0 -186
  445. loopx-0.5.2/loopx/capabilities/auto_research/evidence_packet.py +0 -767
  446. loopx-0.5.2/loopx/capabilities/auto_research/human_view.py +0 -794
  447. loopx-0.5.2/loopx/capabilities/auto_research/kernel.py +0 -191
  448. loopx-0.5.2/loopx/capabilities/auto_research/knn_demo_workspace.py +0 -322
  449. loopx-0.5.2/loopx/capabilities/auto_research/live_evidence.py +0 -248
  450. loopx-0.5.2/loopx/capabilities/auto_research/preset.py +0 -176
  451. loopx-0.5.2/loopx/capabilities/auto_research/research_state.py +0 -1085
  452. loopx-0.5.2/loopx/capabilities/auto_research/role_profiles.py +0 -394
  453. loopx-0.5.2/loopx/capabilities/auto_research/rollout_append.py +0 -97
  454. loopx-0.5.2/loopx/capabilities/auto_research/terminal_result_contract.py +0 -422
  455. loopx-0.5.2/loopx/capabilities/auto_research/terminal_result_projection.py +0 -171
  456. loopx-0.5.2/loopx/capabilities/auto_research/terminal_result_query.py +0 -233
  457. loopx-0.5.2/loopx/capabilities/auto_research/terminal_results.py +0 -349
  458. loopx-0.5.2/loopx/capabilities/auto_research/user_contract.py +0 -190
  459. loopx-0.5.2/loopx/capabilities/auto_research/worker_loop.py +0 -163
  460. loopx-0.5.2/loopx/capabilities/auto_research/worker_runtime.py +0 -777
  461. loopx-0.5.2/loopx/capabilities/auto_research/worker_skill/SKILL.md +0 -343
  462. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/README.md +0 -658
  463. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/__init__.py +0 -241
  464. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/catalog_entry.py +0 -512
  465. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/concurrency_envelope.py +0 -604
  466. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/experiment_board.py +0 -955
  467. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/integrity.py +0 -440
  468. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/native_codex_isolation.py +0 -510
  469. loopx-0.5.2/loopx/capabilities/benchmark_toolkit/native_codex_profile.py +0 -620
  470. loopx-0.5.2/loopx/capabilities/catalog.py +0 -261
  471. loopx-0.5.2/loopx/capabilities/decision_context/README.md +0 -229
  472. loopx-0.5.2/loopx/capabilities/integration_branch/README.md +0 -153
  473. loopx-0.5.2/loopx/capabilities/material_lifecycle/README.md +0 -205
  474. loopx-0.5.2/loopx/capabilities/periodic_report/README.md +0 -403
  475. loopx-0.5.2/loopx/capabilities/periodic_report/__init__.py +0 -77
  476. loopx-0.5.2/loopx/capabilities/periodic_report/bindings.py +0 -705
  477. loopx-0.5.2/loopx/capabilities/periodic_report/catalog_entry.py +0 -170
  478. loopx-0.5.2/loopx/capabilities/periodic_report/cli.py +0 -312
  479. loopx-0.5.2/loopx/capabilities/periodic_report/core.py +0 -691
  480. loopx-0.5.2/loopx/capabilities/periodic_report/presets.py +0 -103
  481. loopx-0.5.2/loopx/capabilities/periodic_report/triggers.py +0 -452
  482. loopx-0.5.2/loopx/capabilities/pr_review_queue/README.md +0 -513
  483. loopx-0.5.2/loopx/capabilities/pr_review_queue/catalog_entry.py +0 -124
  484. loopx-0.5.2/loopx/capabilities/pr_review_queue/core.py +0 -554
  485. loopx-0.5.2/loopx/capabilities/pr_review_queue/review_contract.py +0 -514
  486. loopx-0.5.2/loopx/capabilities/repository_change_window/README.md +0 -199
  487. loopx-0.5.2/loopx/capabilities/repository_change_window/__init__.py +0 -43
  488. loopx-0.5.2/loopx/capabilities/repository_change_window/catalog_entry.py +0 -106
  489. loopx-0.5.2/loopx/capabilities/repository_change_window/git_hook.py +0 -976
  490. loopx-0.5.2/loopx/chat.py +0 -419
  491. loopx-0.5.2/loopx/chat_actions.py +0 -1541
  492. loopx-0.5.2/loopx/chat_agent.py +0 -598
  493. loopx-0.5.2/loopx/chat_goal_lifecycle_actions.py +0 -98
  494. loopx-0.5.2/loopx/chat_runtime.py +0 -1040
  495. loopx-0.5.2/loopx/chat_store.py +0 -1021
  496. loopx-0.5.2/loopx/cli.py +0 -905
  497. loopx-0.5.2/loopx/cli_commands/__init__.py +0 -245
  498. loopx-0.5.2/loopx/cli_commands/benchmark_boundary.py +0 -317
  499. loopx-0.5.2/loopx/cli_commands/benchmark_concurrency.py +0 -163
  500. loopx-0.5.2/loopx/cli_commands/benchmark_dispatch.py +0 -133
  501. loopx-0.5.2/loopx/cli_commands/benchmark_experiment_board.py +0 -232
  502. loopx-0.5.2/loopx/cli_commands/bootstrap_connect.py +0 -238
  503. loopx-0.5.2/loopx/cli_commands/doctor.py +0 -43
  504. loopx-0.5.2/loopx/cli_commands/extension.py +0 -271
  505. loopx-0.5.2/loopx/cli_commands/lark_inbox.py +0 -448
  506. loopx-0.5.2/loopx/cli_commands/multi_agent.py +0 -211
  507. loopx-0.5.2/loopx/cli_commands/pr_review.py +0 -273
  508. loopx-0.5.2/loopx/cli_commands/project_lifecycle.py +0 -979
  509. loopx-0.5.2/loopx/cli_commands/quota.py +0 -961
  510. loopx-0.5.2/loopx/cli_commands/quota_registration.py +0 -255
  511. loopx-0.5.2/loopx/cli_commands/quota_request.py +0 -120
  512. loopx-0.5.2/loopx/cli_commands/registry_admin.py +0 -998
  513. loopx-0.5.2/loopx/cli_commands/slash_commands.py +0 -145
  514. loopx-0.5.2/loopx/cli_commands/start_goal.py +0 -251
  515. loopx-0.5.2/loopx/cli_commands/starter_bootstrap.py +0 -179
  516. loopx-0.5.2/loopx/cli_commands/status.py +0 -866
  517. loopx-0.5.2/loopx/cli_commands/support_control.py +0 -972
  518. loopx-0.5.2/loopx/cli_commands/task_lease.py +0 -311
  519. loopx-0.5.2/loopx/cli_commands/todo.py +0 -974
  520. loopx-0.5.2/loopx/cli_commands/todo_argument_validation.py +0 -593
  521. loopx-0.5.2/loopx/cli_commands/todo_event.py +0 -132
  522. loopx-0.5.2/loopx/cli_commands/turn.py +0 -922
  523. loopx-0.5.2/loopx/cli_commands/turn_registration.py +0 -207
  524. loopx-0.5.2/loopx/cli_commands/turn_rendering.py +0 -79
  525. loopx-0.5.2/loopx/configure_goal.py +0 -1426
  526. loopx-0.5.2/loopx/contract.py +0 -1014
  527. loopx-0.5.2/loopx/control_plane/agents/agent_lane_recommendation.py +0 -629
  528. loopx-0.5.2/loopx/control_plane/agents/multi_agent/__init__.py +0 -1
  529. loopx-0.5.2/loopx/control_plane/agents/multi_agent/codex_executable.py +0 -207
  530. loopx-0.5.2/loopx/control_plane/agents/multi_agent/collective_round_ledger.py +0 -387
  531. loopx-0.5.2/loopx/control_plane/agents/multi_agent/contract.py +0 -474
  532. loopx-0.5.2/loopx/control_plane/agents/multi_agent/recipe.py +0 -110
  533. loopx-0.5.2/loopx/control_plane/agents/multi_agent/role_successor.py +0 -297
  534. loopx-0.5.2/loopx/control_plane/agents/multi_agent/runtime_scripts.py +0 -426
  535. loopx-0.5.2/loopx/control_plane/agents/multi_agent/visible_launch_policy.py +0 -149
  536. loopx-0.5.2/loopx/control_plane/agents/multi_agent/visible_wake_scheduler.py +0 -392
  537. loopx-0.5.2/loopx/control_plane/agents/workspace_guard.py +0 -364
  538. loopx-0.5.2/loopx/control_plane/effect_program.py +0 -594
  539. loopx-0.5.2/loopx/control_plane/effect_program.ts +0 -869
  540. loopx-0.5.2/loopx/control_plane/effect_runtime.py +0 -525
  541. loopx-0.5.2/loopx/control_plane/effect_runtime_handlers.ts +0 -399
  542. loopx-0.5.2/loopx/control_plane/effect_runtime_io.ts +0 -121
  543. loopx-0.5.2/loopx/control_plane/effect_runtime_server.ts +0 -127
  544. loopx-0.5.2/loopx/control_plane/goals/active_state_event_projection.py +0 -103
  545. loopx-0.5.2/loopx/control_plane/goals/botmux_runtime.py +0 -1475
  546. loopx-0.5.2/loopx/control_plane/goals/goal_frontier/__init__.py +0 -1925
  547. loopx-0.5.2/loopx/control_plane/goals/goal_vision.py +0 -443
  548. loopx-0.5.2/loopx/control_plane/goals/start_contract.py +0 -207
  549. loopx-0.5.2/loopx/control_plane/goals/vision_checkpoint.py +0 -94
  550. loopx-0.5.2/loopx/control_plane/goals/vision_checkpoint.ts +0 -233
  551. loopx-0.5.2/loopx/control_plane/governed_capability.ts +0 -282
  552. loopx-0.5.2/loopx/control_plane/heartbeat/builder.py +0 -554
  553. loopx-0.5.2/loopx/control_plane/heartbeat/rules.py +0 -68
  554. loopx-0.5.2/loopx/control_plane/heartbeat/task_body.py +0 -780
  555. loopx-0.5.2/loopx/control_plane/host_adapter_settlement.py +0 -454
  556. loopx-0.5.2/loopx/control_plane/projects/registry.py +0 -663
  557. loopx-0.5.2/loopx/control_plane/quota/cli_projection.py +0 -705
  558. loopx-0.5.2/loopx/control_plane/quota/decision_summary.py +0 -431
  559. loopx-0.5.2/loopx/control_plane/quota/effect_program.py +0 -205
  560. loopx-0.5.2/loopx/control_plane/quota/goal_boundary.py +0 -461
  561. loopx-0.5.2/loopx/control_plane/quota/heartbeat_receipt.py +0 -406
  562. loopx-0.5.2/loopx/control_plane/quota/live_decision.py +0 -148
  563. loopx-0.5.2/loopx/control_plane/quota/monitor_poll.py +0 -837
  564. loopx-0.5.2/loopx/control_plane/quota/projection_repair.py +0 -262
  565. loopx-0.5.2/loopx/control_plane/quota/scheduler_ack.py +0 -490
  566. loopx-0.5.2/loopx/control_plane/quota/settlement.py +0 -496
  567. loopx-0.5.2/loopx/control_plane/quota/settlement_cli.py +0 -350
  568. loopx-0.5.2/loopx/control_plane/quota/settlement_workspace_causality.py +0 -249
  569. loopx-0.5.2/loopx/control_plane/quota/settlement_workspace_causality.ts +0 -211
  570. loopx-0.5.2/loopx/control_plane/quota/should_run.py +0 -274
  571. loopx-0.5.2/loopx/control_plane/quota/should_run_packet.py +0 -1370
  572. loopx-0.5.2/loopx/control_plane/quota/should_run_prepare.py +0 -780
  573. loopx-0.5.2/loopx/control_plane/quota/slot_accounting.py +0 -1156
  574. loopx-0.5.2/loopx/control_plane/quota/spend_sources.py +0 -66
  575. loopx-0.5.2/loopx/control_plane/quota/turn_envelope.py +0 -894
  576. loopx-0.5.2/loopx/control_plane/quota/usage_collector.py +0 -83
  577. loopx-0.5.2/loopx/control_plane/quota/usage_summary.py +0 -222
  578. loopx-0.5.2/loopx/control_plane/runtime/run_compaction.py +0 -373
  579. loopx-0.5.2/loopx/control_plane/runtime_decode.ts +0 -73
  580. loopx-0.5.2/loopx/control_plane/scheduler/ack.py +0 -329
  581. loopx-0.5.2/loopx/control_plane/scheduler/arbitration.py +0 -188
  582. loopx-0.5.2/loopx/control_plane/scheduler/automation_liveness.py +0 -197
  583. loopx-0.5.2/loopx/control_plane/scheduler/execution_context.py +0 -563
  584. loopx-0.5.2/loopx/control_plane/scheduler/monitor_poll_policy.py +0 -161
  585. loopx-0.5.2/loopx/control_plane/scheduler/monitor_poll_writeback.py +0 -351
  586. loopx-0.5.2/loopx/control_plane/scheduler/monitor_target.py +0 -64
  587. loopx-0.5.2/loopx/control_plane/scheduler/monitor_todo.py +0 -146
  588. loopx-0.5.2/loopx/control_plane/scheduler/scheduler_hint.py +0 -1218
  589. loopx-0.5.2/loopx/control_plane/scheduler/state_store.ts +0 -537
  590. loopx-0.5.2/loopx/control_plane/scheduler/state_transition_rules.py +0 -346
  591. loopx-0.5.2/loopx/control_plane/scheduler/state_transition_rules.ts +0 -395
  592. loopx-0.5.2/loopx/control_plane/settlement_driver.py +0 -116
  593. loopx-0.5.2/loopx/control_plane/testing/actual_default_model_behavior_portfolio.py +0 -1371
  594. loopx-0.5.2/loopx/control_plane/testing/cli_output_budget.py +0 -843
  595. loopx-0.5.2/loopx/control_plane/testing/cli_output_differential.py +0 -266
  596. loopx-0.5.2/loopx/control_plane/testing/cli_output_semantics.py +0 -87
  597. loopx-0.5.2/loopx/control_plane/testing/doubao_model_behavior_actor.py +0 -559
  598. loopx-0.5.2/loopx/control_plane/testing/model_behavior_qualification.py +0 -769
  599. loopx-0.5.2/loopx/control_plane/testing/model_tool_behavior.py +0 -543
  600. loopx-0.5.2/loopx/control_plane/testing/scoped_gate_successor_tool_behavior.py +0 -527
  601. loopx-0.5.2/loopx/control_plane/testing/selected_todo_tool_behavior.py +0 -1058
  602. loopx-0.5.2/loopx/control_plane/testing/terminal_settlement_tool_behavior.py +0 -1177
  603. loopx-0.5.2/loopx/control_plane/todos/active_state_todo_parser.py +0 -138
  604. loopx-0.5.2/loopx/control_plane/todos/completion_fence.py +0 -184
  605. loopx-0.5.2/loopx/control_plane/todos/completion_fence.ts +0 -333
  606. loopx-0.5.2/loopx/control_plane/todos/completion_state.py +0 -221
  607. loopx-0.5.2/loopx/control_plane/todos/completion_state.ts +0 -266
  608. loopx-0.5.2/loopx/control_plane/todos/completion_validation.py +0 -409
  609. loopx-0.5.2/loopx/control_plane/todos/completion_validation_plan.ts +0 -243
  610. loopx-0.5.2/loopx/control_plane/todos/contract.py +0 -1500
  611. loopx-0.5.2/loopx/control_plane/todos/deferred_resume.py +0 -546
  612. loopx-0.5.2/loopx/control_plane/todos/event_writeback.py +0 -684
  613. loopx-0.5.2/loopx/control_plane/todos/handoff_mode.py +0 -444
  614. loopx-0.5.2/loopx/control_plane/todos/line_update.py +0 -434
  615. loopx-0.5.2/loopx/control_plane/todos/list_projection.py +0 -274
  616. loopx-0.5.2/loopx/control_plane/todos/markdown.py +0 -199
  617. loopx-0.5.2/loopx/control_plane/todos/monitor_metadata.py +0 -91
  618. loopx-0.5.2/loopx/control_plane/todos/mutation_authority.py +0 -299
  619. loopx-0.5.2/loopx/control_plane/todos/next_action.ts +0 -442
  620. loopx-0.5.2/loopx/control_plane/todos/next_action_runtime.py +0 -181
  621. loopx-0.5.2/loopx/control_plane/todos/projection.py +0 -655
  622. loopx-0.5.2/loopx/control_plane/todos/quota_summary.py +0 -1140
  623. loopx-0.5.2/loopx/control_plane/todos/route_continuation.py +0 -267
  624. loopx-0.5.2/loopx/control_plane/todos/succession_warning.py +0 -215
  625. loopx-0.5.2/loopx/control_plane/todos/summary_item.py +0 -226
  626. loopx-0.5.2/loopx/control_plane/todos/todo_summary.py +0 -1465
  627. loopx-0.5.2/loopx/control_plane/turn_driver/__init__.py +0 -85
  628. loopx-0.5.2/loopx/control_plane/turn_driver/codex_cli.py +0 -510
  629. loopx-0.5.2/loopx/control_plane/turn_driver/delivery_continuity.ts +0 -350
  630. loopx-0.5.2/loopx/control_plane/turn_driver/driver.py +0 -394
  631. loopx-0.5.2/loopx/control_plane/turn_driver/executor.py +0 -1499
  632. loopx-0.5.2/loopx/control_plane/turn_driver/loop_controller.py +0 -669
  633. loopx-0.5.2/loopx/control_plane/turn_driver/session_recovery.py +0 -64
  634. loopx-0.5.2/loopx/control_plane/turn_driver/settlement.py +0 -527
  635. loopx-0.5.2/loopx/control_plane/turn_driver/settlement.ts +0 -618
  636. loopx-0.5.2/loopx/control_plane/turn_driver/turn_journal.ts +0 -230
  637. loopx-0.5.2/loopx/control_plane/turn_driver/turn_journal_effects.ts +0 -109
  638. loopx-0.5.2/loopx/control_plane/turn_driver/turn_journal_runtime.py +0 -119
  639. loopx-0.5.2/loopx/control_plane/work_items/accountable_settlement.py +0 -48
  640. loopx-0.5.2/loopx/control_plane/work_items/autonomous_replan_obligation.py +0 -931
  641. loopx-0.5.2/loopx/control_plane/work_items/delivery_outcome.py +0 -148
  642. loopx-0.5.2/loopx/control_plane/work_items/delivery_outcome.ts +0 -47
  643. loopx-0.5.2/loopx/control_plane/work_items/interaction_contract.py +0 -1517
  644. loopx-0.5.2/loopx/control_plane/work_items/operator_inbox.py +0 -264
  645. loopx-0.5.2/loopx/control_plane/work_items/primary_action.py +0 -336
  646. loopx-0.5.2/loopx/control_plane/work_items/progress_observation.py +0 -730
  647. loopx-0.5.2/loopx/control_plane/work_items/project_asset.py +0 -675
  648. loopx-0.5.2/loopx/control_plane/work_items/replan_settlement.py +0 -133
  649. loopx-0.5.2/loopx/control_plane/work_items/replan_settlement.ts +0 -157
  650. loopx-0.5.2/loopx/control_plane/work_items/runtime_capability_reentry.py +0 -182
  651. loopx-0.5.2/loopx/control_plane/work_items/semantic_replan_writeback.py +0 -346
  652. loopx-0.5.2/loopx/control_plane/work_items/task_graph.py +0 -1046
  653. loopx-0.5.2/loopx/control_plane/work_items/task_lease.py +0 -1399
  654. loopx-0.5.2/loopx/control_plane/work_items/task_lease_settlement.py +0 -422
  655. loopx-0.5.2/loopx/control_plane/work_items/work_lane.py +0 -619
  656. loopx-0.5.2/loopx/dashboard_launcher.py +0 -148
  657. loopx-0.5.2/loopx/diagnose.py +0 -633
  658. loopx-0.5.2/loopx/doctor.py +0 -1491
  659. loopx-0.5.2/loopx/dsh_goal_mode/README.md +0 -65
  660. loopx-0.5.2/loopx/dsh_goal_mode/turn_host_adapter.py +0 -465
  661. loopx-0.5.2/loopx/entrypoint.py +0 -16
  662. loopx-0.5.2/loopx/extensions/governed_capability_execution.py +0 -620
  663. loopx-0.5.2/loopx/extensions/lark/README.md +0 -128
  664. loopx-0.5.2/loopx/extensions/lark/bot_scopes.py +0 -63
  665. loopx-0.5.2/loopx/extensions/lark/docs/lark-event-inbox.md +0 -384
  666. loopx-0.5.2/loopx/extensions/lark/document_comment_provider.py +0 -1081
  667. loopx-0.5.2/loopx/extensions/lark/event_collector.py +0 -479
  668. loopx-0.5.2/loopx/extensions/lark/event_collector_runtime.py +0 -603
  669. loopx-0.5.2/loopx/extensions/lark/event_inbox.py +0 -478
  670. loopx-0.5.2/loopx/extensions/lark/extension.toml +0 -108
  671. loopx-0.5.2/loopx/extensions/lark/goal_channel_setup.py +0 -805
  672. loopx-0.5.2/loopx/extensions/lark/goal_topic_connections.py +0 -1256
  673. loopx-0.5.2/loopx/extensions/lark/goal_topic_runtime.py +0 -958
  674. loopx-0.5.2/loopx/extensions/lark/inbox_reactions.py +0 -650
  675. loopx-0.5.2/loopx/extensions/lark/inbox_reply.py +0 -460
  676. loopx-0.5.2/loopx/extensions/lark/miaoda_report.py +0 -420
  677. loopx-0.5.2/loopx/extensions/lark/periodic_report_cli.py +0 -120
  678. loopx-0.5.2/loopx/extensions/lark/presentation/periodic_report.py +0 -330
  679. loopx-0.5.2/loopx/extensions/lark/provider.py +0 -86
  680. loopx-0.5.2/loopx/extensions/lark/reviewer_notification.py +0 -604
  681. loopx-0.5.2/loopx/extensions/manifest.py +0 -618
  682. loopx-0.5.2/loopx/extensions/readiness.py +0 -168
  683. loopx-0.5.2/loopx/extensions/runtime.py +0 -931
  684. loopx-0.5.2/loopx/feedback.py +0 -581
  685. loopx-0.5.2/loopx/file_lock.py +0 -484
  686. loopx-0.5.2/loopx/goal_mode_mcp.py +0 -266
  687. loopx-0.5.2/loopx/help_surface.py +0 -554
  688. loopx-0.5.2/loopx/history.py +0 -722
  689. loopx-0.5.2/loopx/host_loop_activation.py +0 -1422
  690. loopx-0.5.2/loopx/host_mode_planner.py +0 -991
  691. loopx-0.5.2/loopx/kunluncode_goal_mode/guards.py +0 -111
  692. loopx-0.5.2/loopx/long_task_cadence.py +0 -208
  693. loopx-0.5.2/loopx/pi_goal_mode/README.md +0 -75
  694. loopx-0.5.2/loopx/pi_goal_mode/loopx-goal.ts +0 -269
  695. loopx-0.5.2/loopx/pi_goal_mode/pi-goal-loop-runtime.mjs +0 -609
  696. loopx-0.5.2/loopx/presentation/renderers/quota_markdown.py +0 -1112
  697. loopx-0.5.2/loopx/project_prompt.py +0 -1163
  698. loopx-0.5.2/loopx/quota.py +0 -1315
  699. loopx-0.5.2/loopx/registry.py +0 -621
  700. loopx-0.5.2/loopx/release_candidate.py +0 -150
  701. loopx-0.5.2/loopx/rollout_event_log.py +0 -499
  702. loopx-0.5.2/loopx/self_update.py +0 -818
  703. loopx-0.5.2/loopx/slash_command_install.py +0 -1485
  704. loopx-0.5.2/loopx/slash_commands.py +0 -264
  705. loopx-0.5.2/loopx/state_refresh.py +0 -1489
  706. loopx-0.5.2/loopx/status.py +0 -1309
  707. loopx-0.5.2/loopx/todos.py +0 -2285
  708. loopx-0.5.2/loopx/turn_identity.py +0 -17
  709. loopx-0.5.2/loopx/upgrade.py +0 -1083
  710. loopx-0.5.2/loopx/visible_governance.py +0 -669
  711. loopx-0.5.2/loopx/visible_multi_agent_launcher.py +0 -1253
  712. loopx-0.5.2/loopx/visible_multi_agent_tmux.py +0 -429
  713. loopx-0.5.2/loopx/web/chat/index.html +0 -27
  714. loopx-0.5.2/loopx/workflow_skill_install.py +0 -387
  715. loopx-0.5.2/loopx.egg-info/PKG-INFO +0 -777
  716. loopx-0.5.2/loopx.egg-info/SOURCES.txt +0 -1029
  717. loopx-0.5.2/loopx.egg-info/requires.txt +0 -13
  718. loopx-0.5.2/pyproject.toml +0 -136
  719. loopx-0.5.2/skills/loopx-benchmark/SKILL.md +0 -136
  720. loopx-0.5.2/skills/loopx-pr-review/SKILL.md +0 -180
  721. loopx-0.5.2/skills/loopx-self-repair/references/repair-patterns.md +0 -174
  722. loopx-0.5.2/tests/test_attached_session_broker.py +0 -545
  723. loopx-0.5.2/tests/test_chat_session_active_turn.py +0 -56
  724. loopx-0.5.2/tests/test_cli_argument_diagnostics.py +0 -1103
  725. loopx-0.5.2/tests/test_cli_entrypoint.py +0 -62
  726. loopx-0.5.2/tests/test_dashboard_command.py +0 -748
  727. loopx-0.5.2/tests/test_doctor_install_freshness.py +0 -427
  728. loopx-0.5.2/tests/test_dsh_goal_mode.py +0 -239
  729. loopx-0.5.2/tests/test_feedback_goal_id_validation.py +0 -116
  730. loopx-0.5.2/tests/test_file_lock.py +0 -139
  731. loopx-0.5.2/tests/test_gemini_cursor_host_surfaces.py +0 -229
  732. loopx-0.5.2/tests/test_goal_mode_mcp_completion_validation.py +0 -124
  733. loopx-0.5.2/tests/test_goal_mode_mcp_settlement.py +0 -312
  734. loopx-0.5.2/tests/test_history_chronology.py +0 -148
  735. loopx-0.5.2/tests/test_host_loop_activation.py +0 -1149
  736. loopx-0.5.2/tests/test_host_parity_smoke.py +0 -306
  737. loopx-0.5.2/tests/test_kunluncode_goal_mode.py +0 -1478
  738. loopx-0.5.2/tests/test_license_metadata.py +0 -61
  739. loopx-0.5.2/tests/test_loop_turn_loop_controller.py +0 -940
  740. loopx-0.5.2/tests/test_loopx_turn_codex_cli.py +0 -409
  741. loopx-0.5.2/tests/test_loopx_turn_driver.py +0 -2237
  742. loopx-0.5.2/tests/test_loopx_turn_executor.py +0 -1640
  743. loopx-0.5.2/tests/test_loopx_turn_journal_inspection.py +0 -472
  744. loopx-0.5.2/tests/test_loopx_turn_settlement_parity.py +0 -269
  745. loopx-0.5.2/tests/test_nokv_shadow_provider_probes.py +0 -47
  746. loopx-0.5.2/tests/test_pi_goal_mode.py +0 -139
  747. loopx-0.5.2/tests/test_self_update_runtime_activation.py +0 -246
  748. loopx-0.5.2/tests/test_slash_command_install.py +0 -982
  749. loopx-0.5.2/tests/test_state_file_containment.py +0 -98
  750. loopx-0.5.2/tests/test_status_server_cors.py +0 -133
  751. loopx-0.5.2/tests/test_turn_envelope.py +0 -928
  752. loopx-0.5.2/tests/test_windows_install.py +0 -349
  753. loopx-0.5.2/tests/test_worker_command_validation.py +0 -104
  754. loopx-0.5.2/tests/test_workflow_skill_install.py +0 -191
  755. {loopx-0.5.2 → loopx-0.5.4}/LICENSE +0 -0
  756. {loopx-0.5.2 → loopx-0.5.4}/LICENSE-MIT +0 -0
  757. {loopx-0.5.2 → loopx-0.5.4}/NOTICE +0 -0
  758. {loopx-0.5.2 → loopx-0.5.4}/loopx/agent_registry.py +0 -0
  759. {loopx-0.5.2 → loopx-0.5.4}/loopx/ark_managed_agent_host.py +0 -0
  760. {loopx-0.5.2 → loopx-0.5.4}/loopx/attached_session.py +0 -0
  761. {loopx-0.5.2 → loopx-0.5.4}/loopx/authority.py +0 -0
  762. {loopx-0.5.2 → loopx-0.5.4}/loopx/boundary_authority.py +0 -0
  763. {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/__init__.py +0 -0
  764. {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/maintainability_ratchet.py +0 -0
  765. {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/package_profiles.py +0 -0
  766. {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/release_profiles.py +0 -0
  767. {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/runner.py +0 -0
  768. {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/smoke_health.py +0 -0
  769. {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/smoke_profiles.py +0 -0
  770. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/__init__.py +0 -0
  771. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/README.md +0 -0
  772. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/__init__.py +0 -0
  773. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/catalog_entry.py +0 -0
  774. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/cli.py +0 -0
  775. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/core.py +0 -0
  776. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/artifacts.py +0 -0
  777. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/container_binding.py +0 -0
  778. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/environment_access.py +0 -0
  779. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/native_codex_goal.py +0 -0
  780. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/public_trajectory.py +0 -0
  781. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/reward_contract.py +0 -0
  782. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/run_permissions.py +0 -0
  783. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/runtime_observation.py +0 -0
  784. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/source_revision_fence.py +0 -0
  785. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/README.md +0 -0
  786. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/__init__.py +0 -0
  787. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/catalog_entry.py +0 -0
  788. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/cli.py +0 -0
  789. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/context.py +0 -0
  790. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/oracles.py +0 -0
  791. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/policy.py +0 -0
  792. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/receipt.py +0 -0
  793. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/result.py +0 -0
  794. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/scope.py +0 -0
  795. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/shadow.py +0 -0
  796. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/README.md +0 -0
  797. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/__init__.py +0 -0
  798. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/catalog_entry.py +0 -0
  799. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/cli.py +0 -0
  800. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/core.py +0 -0
  801. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/tests/test_connector_registry.py +0 -0
  802. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/README.md +0 -0
  803. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/__init__.py +0 -0
  804. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/catalog_entry.py +0 -0
  805. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/cli.py +0 -0
  806. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/connector_packets.py +0 -0
  807. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/item_lifecycle.py +0 -0
  808. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/layout.py +0 -0
  809. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/markdown.py +0 -0
  810. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/schemas.py +0 -0
  811. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/social_browser_x.py +0 -0
  812. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/surface.py +0 -0
  813. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/templates/layout-catalog-v0.json +0 -0
  814. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/__init__.py +0 -0
  815. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/base.py +0 -0
  816. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/factory.py +0 -0
  817. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/openviking.py +0 -0
  818. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/service_ownership.py +0 -0
  819. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/README.zh-CN.md +0 -0
  820. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/__init__.py +0 -0
  821. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/architecture.py +0 -0
  822. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/assembler.py +0 -0
  823. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/catalog_entry.py +0 -0
  824. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/cli.py +0 -0
  825. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/cursor_commit.py +0 -0
  826. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/outcome_feedback.py +0 -0
  827. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/packets.py +0 -0
  828. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/private_state.py +0 -0
  829. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/profile.py +0 -0
  830. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/providers.py +0 -0
  831. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/review_settlement.py +0 -0
  832. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/runtime.py +0 -0
  833. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/sources.py +0 -0
  834. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/documentation.py +0 -0
  835. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/README.md +0 -0
  836. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/README.zh-CN.md +0 -0
  837. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/__init__.py +0 -0
  838. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/activation.py +0 -0
  839. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/adaptive_replay_planner.py +0 -0
  840. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/catalog_entry.py +0 -0
  841. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/child_replay_runtime.py +0 -0
  842. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/composition_frontier.py +0 -0
  843. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/counterfactual_runtime.py +0 -0
  844. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/episode_runtime.py +0 -0
  845. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/harness_checkpoint.py +0 -0
  846. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/harness_gate.py +0 -0
  847. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/harness_runtime.py +0 -0
  848. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/replay_metrics.py +0 -0
  849. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/replay_runtime.py +0 -0
  850. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/resource_portfolio.py +0 -0
  851. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/result_log.py +0 -0
  852. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/router_state.py +0 -0
  853. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/source_history_reconcile.py +0 -0
  854. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/speculative_scheduler.py +0 -0
  855. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/todo_branch_plan.py +0 -0
  856. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/todo_evidence.py +0 -0
  857. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/trace_runtime.py +0 -0
  858. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/worker_branch_plan.py +0 -0
  859. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/__init__.py +0 -0
  860. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/catalog_entry.py +0 -0
  861. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/cli.py +0 -0
  862. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/core.py +0 -0
  863. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/README.md +0 -0
  864. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/README.zh-CN.md +0 -0
  865. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/__init__.py +0 -0
  866. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/acceptance_loop.py +0 -0
  867. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/candidate_evidence.py +0 -0
  868. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/candidate_preflight.py +0 -0
  869. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/catalog_entry.py +0 -0
  870. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/cli.py +0 -0
  871. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/cli_input.py +0 -0
  872. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/content_ops_cli.py +0 -0
  873. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/discovered_issue_promotion.py +0 -0
  874. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/openviking-pilot-handoff.md +0 -0
  875. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-acceptance-loop-v0.md +0 -0
  876. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-discovered-issue-promotion-v0.md +0 -0
  877. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-metrics-projection-v0.md +0 -0
  878. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-notification-sinks-v0.md +0 -0
  879. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-recommendation-v0.md +0 -0
  880. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-request-v0.md +0 -0
  881. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-workflow-contract-v0.md +0 -0
  882. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/state-kernel-domain-state-case-study.zh-CN.md +0 -0
  883. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/explore_projection.py +0 -0
  884. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/feasibility.py +0 -0
  885. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/github_public.py +0 -0
  886. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/intake_surface.py +0 -0
  887. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metadata_preview.py +0 -0
  888. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metrics_projection.py +0 -0
  889. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metrics_supplement.py +0 -0
  890. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metrics_supplement_cli.py +0 -0
  891. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/outcome_projection.py +0 -0
  892. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/periodic_report.py +0 -0
  893. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_description.py +0 -0
  894. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_gate_reconcile.py +0 -0
  895. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_gate_reconcile_cli.py +0 -0
  896. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_lifecycle.py +0 -0
  897. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_lifecycle_rollout.py +0 -0
  898. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_monitor_materialization.py +0 -0
  899. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_review_ack.py +0 -0
  900. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/provider_hooks.py +0 -0
  901. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_commit_evidence.py +0 -0
  902. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_context.py +0 -0
  903. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_memory.py +0 -0
  904. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_memory_provider.py +0 -0
  905. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_snapshot.py +0 -0
  906. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_cli.py +0 -0
  907. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_notification.py +0 -0
  908. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_notification_drain.py +0 -0
  909. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_recommendation.py +0 -0
  910. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_request.py +0 -0
  911. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reward_memory.py +0 -0
  912. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/workflow_plan.py +0 -0
  913. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/README.zh-CN.md +0 -0
  914. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/__init__.py +0 -0
  915. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/_validation.py +0 -0
  916. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/apply.py +0 -0
  917. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/architecture.py +0 -0
  918. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/catalog_entry.py +0 -0
  919. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/cli.py +0 -0
  920. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/decision_planning.py +0 -0
  921. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/explore_execution.py +0 -0
  922. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/intake.py +0 -0
  923. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/inventory.py +0 -0
  924. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/lifecycle.py +0 -0
  925. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/preparation.py +0 -0
  926. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/project_skill.py +0 -0
  927. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/ranking.py +0 -0
  928. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/readable_projection.py +0 -0
  929. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/rebuild.py +0 -0
  930. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/settlement.py +0 -0
  931. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/adapters.py +0 -0
  932. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/archive.py +0 -0
  933. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/audience.py +0 -0
  934. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/extension_envelope.py +0 -0
  935. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/profile.py +0 -0
  936. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/project_progress.py +0 -0
  937. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/pr_review_queue/__init__.py +0 -0
  938. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/README.md +0 -0
  939. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/__init__.py +0 -0
  940. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/catalog_entry.py +0 -0
  941. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/cli.py +0 -0
  942. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/core.py +0 -0
  943. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/README.md +0 -0
  944. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/__init__.py +0 -0
  945. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/catalog_entry.py +0 -0
  946. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/scan_cli.py +0 -0
  947. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/scanner.py +0 -0
  948. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/tests/test_scanner.py +0 -0
  949. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/registry.py +0 -0
  950. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/cli.py +0 -0
  951. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/ledger.py +0 -0
  952. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/policy.py +0 -0
  953. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/repository.py +0 -0
  954. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/README.md +0 -0
  955. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/README.zh-CN.md +0 -0
  956. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/__init__.py +0 -0
  957. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/application.py +0 -0
  958. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/architecture.py +0 -0
  959. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/candidate_review.py +0 -0
  960. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/catalog_entry.py +0 -0
  961. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/cli.py +0 -0
  962. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/dogfood.py +0 -0
  963. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/evaluation.py +0 -0
  964. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/evaluation_fixtures.py +0 -0
  965. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/experiment.py +0 -0
  966. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/health.py +0 -0
  967. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/ingestion.py +0 -0
  968. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/memory_utility.py +0 -0
  969. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/registry.py +0 -0
  970. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/runtime_hooks.py +0 -0
  971. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/scoped_feedback.py +0 -0
  972. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/README.md +0 -0
  973. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/__init__.py +0 -0
  974. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/catalog_entry.py +0 -0
  975. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/cli.py +0 -0
  976. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/contract.py +0 -0
  977. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/docs/openviking-project-peer.md +0 -0
  978. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/reward_memory.py +0 -0
  979. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/README.md +0 -0
  980. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/__init__.py +0 -0
  981. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/catalog_entry.py +0 -0
  982. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/cli.py +0 -0
  983. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/docs/agent-reach-ops-source-map.md +0 -0
  984. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/docs/finance-market-snapshot-probe.md +0 -0
  985. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/finance_extension_migration.py +0 -0
  986. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/install_check.py +0 -0
  987. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/planner.py +0 -0
  988. {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/source_map.py +0 -0
  989. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_acp.py +0 -0
  990. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_action_store.py +0 -0
  991. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_attachments.py +0 -0
  992. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_endpoints.py +0 -0
  993. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_lark_api.py +0 -0
  994. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_monitor_actions.py +0 -0
  995. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_providers.py +0 -0
  996. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_server.py +0 -0
  997. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_ssh_source_api.py +0 -0
  998. {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_todo_actions.py +0 -0
  999. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/README.md +0 -0
  1000. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/__init__.py +0 -0
  1001. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/hooks/goal_policy.py +0 -0
  1002. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/hooks/goal_state.py +0 -0
  1003. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/mcp/loopx_mcp.py +0 -0
  1004. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/scripts/connect.py +0 -0
  1005. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/scripts/goalmode_cmd.py +0 -0
  1006. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/scripts/install.py +0 -0
  1007. {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/statusline/goal_status.py +0 -0
  1008. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/_host_thread.py +0 -0
  1009. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/canary.py +0 -0
  1010. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/canary_release_qualification.py +0 -0
  1011. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/capability.py +0 -0
  1012. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/dash.py +0 -0
  1013. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/dreaming.py +0 -0
  1014. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/evidence_log.py +0 -0
  1015. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/explore.py +0 -0
  1016. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/explore_feishu_commands.py +0 -0
  1017. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/explore_planning_commands.py +0 -0
  1018. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/first_run_report.py +0 -0
  1019. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/goal_channel.py +0 -0
  1020. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/goal_lifecycle.py +0 -0
  1021. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/handoff_mode.py +0 -0
  1022. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/history.py +0 -0
  1023. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/host_mode_plan.py +0 -0
  1024. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/lark_kanban.py +0 -0
  1025. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/ml_experiment.py +0 -0
  1026. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/opencode2_goal_worker.py +0 -0
  1027. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/presentation.py +0 -0
  1028. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/preset.py +0 -0
  1029. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/project.py +0 -0
  1030. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/quota_host_poll.py +0 -0
  1031. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/quota_monitor_poll.py +0 -0
  1032. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/ready_score.py +0 -0
  1033. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_admin_configure.py +0 -0
  1034. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_admin_peer.py +0 -0
  1035. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_admin_thread_resolution.py +0 -0
  1036. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_authority.py +0 -0
  1037. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/review_batch.py +0 -0
  1038. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter.py +0 -0
  1039. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_bootstrap_registration.py +0 -0
  1040. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_runtime_idle.py +0 -0
  1041. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_scheduler.py +0 -0
  1042. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_session_runtime.py +0 -0
  1043. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_visible_common.py +0 -0
  1044. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_visible_driver.py +0 -0
  1045. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_visible_pilot.py +0 -0
  1046. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/status_registration.py +0 -0
  1047. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/summary_all.py +0 -0
  1048. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_backup.py +0 -0
  1049. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_chat_endpoint.py +0 -0
  1050. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_registry.py +0 -0
  1051. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_supervisor.py +0 -0
  1052. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/version.py +0 -0
  1053. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/worker_bridge.py +0 -0
  1054. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/workflow_skills.py +0 -0
  1055. {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_rollout.py +0 -0
  1056. {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_probe.py +0 -0
  1057. {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_probe_markdown.py +0 -0
  1058. {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_runtime_probe.py +0 -0
  1059. {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_scheduler.py +0 -0
  1060. {loopx-0.5.2 → loopx-0.5.4}/loopx/command_invocation.py +0 -0
  1061. {loopx-0.5.2 → loopx-0.5.4}/loopx/configuration_catalog.py +0 -0
  1062. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/__init__.py +0 -0
  1063. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/__init__.py +0 -0
  1064. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/agent_scope.py +0 -0
  1065. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/agent_scope_frontier.py +0 -0
  1066. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/capability_gate.py +0 -0
  1067. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/identity.py +0 -0
  1068. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/legacy_migration.py +0 -0
  1069. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/management_projection.py +0 -0
  1070. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/material_frontier.py +0 -0
  1071. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/material_handoff.py +0 -0
  1072. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/profile.py +0 -0
  1073. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/runtime_model.py +0 -0
  1074. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/subagent_activity.py +0 -0
  1075. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/supervisor.py +0 -0
  1076. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/supervisor_events.py +0 -0
  1077. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/supervisor_inject.py +0 -0
  1078. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/work_mode.py +0 -0
  1079. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/__init__.py +0 -0
  1080. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/activation.py +0 -0
  1081. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/activation_service.py +0 -0
  1082. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/active_state_metadata.py +0 -0
  1083. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/active_state_sections.py +0 -0
  1084. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/configure_goal_service.py +0 -0
  1085. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/contract_health.py +0 -0
  1086. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/dreaming.py +0 -0
  1087. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/global_registry_health.py +0 -0
  1088. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/global_registry_shadow.py +0 -0
  1089. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_channel.py +0 -0
  1090. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_channel_projection.py +0 -0
  1091. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/ack_policy.py +0 -0
  1092. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/long_todo_chain.py +0 -0
  1093. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/outcome_continuity.py +0 -0
  1094. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/replan_rules.py +0 -0
  1095. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/semantic_history.py +0 -0
  1096. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/terminal.py +0 -0
  1097. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_vision_policy.py +0 -0
  1098. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_vision_state.py +0 -0
  1099. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_vision_wait.py +0 -0
  1100. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/path_resolution.py +0 -0
  1101. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/__init__.py +0 -0
  1102. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/cross_runtime_impl_review.py +0 -0
  1103. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/delivery_contract.py +0 -0
  1104. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/handoff_runs.py +0 -0
  1105. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/project_handoff.py +0 -0
  1106. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/review_batch.py +0 -0
  1107. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/review_packet_context.py +0 -0
  1108. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/agent.py +0 -0
  1109. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/budget.py +0 -0
  1110. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/host.py +0 -0
  1111. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/visible_goal.py +0 -0
  1112. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/projects/__init__.py +0 -0
  1113. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/projects/contract.py +0 -0
  1114. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/__init__.py +0 -0
  1115. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/error_codes.py +0 -0
  1116. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/heartbeat_recommendation.py +0 -0
  1117. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/host_poll_receipts.py +0 -0
  1118. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/policy_constants.py +0 -0
  1119. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/recent_runs.py +0 -0
  1120. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/selected_todo_projection.py +0 -0
  1121. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/settlement_validation.py +0 -0
  1122. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/stall_repair.py +0 -0
  1123. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/states.py +0 -0
  1124. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/task_orchestration.py +0 -0
  1125. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/task_orchestration_admission.py +0 -0
  1126. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/reward_memory.py +0 -0
  1127. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/__init__.py +0 -0
  1128. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/agent_scoped_evidence_log.py +0 -0
  1129. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/decision_freshness.py +0 -0
  1130. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/event_ledger.py +0 -0
  1131. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/event_store_migration_bridge.py +0 -0
  1132. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/goal_project_route.py +0 -0
  1133. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/local_state_write_correctness.py +0 -0
  1134. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/promotion_readiness.py +0 -0
  1135. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/public_safety.py +0 -0
  1136. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_artifacts.py +0 -0
  1137. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_context_retention.py +0 -0
  1138. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_history.py +0 -0
  1139. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_index_duplicates.py +0 -0
  1140. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_index_rebuild.py +0 -0
  1141. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/runtime_projection_route.py +0 -0
  1142. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/runtime_projection_writer.py +0 -0
  1143. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/session_runtime.py +0 -0
  1144. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/shared_runtime_material_projection.py +0 -0
  1145. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/shared_runtime_refresh_projection.py +0 -0
  1146. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/stale_latest_run.py +0 -0
  1147. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/status_classifications.py +0 -0
  1148. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/status_projection_cache.py +0 -0
  1149. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/stride_observation.py +0 -0
  1150. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/time.py +0 -0
  1151. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/trajectory_hygiene.py +0 -0
  1152. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/validation_command.py +0 -0
  1153. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/__init__.py +0 -0
  1154. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/external_evidence_observation.py +0 -0
  1155. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/monitor_display.py +0 -0
  1156. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/monitor_wait.py +0 -0
  1157. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/state.py +0 -0
  1158. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/time.py +0 -0
  1159. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/__init__.py +0 -0
  1160. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/active_state_projection.py +0 -0
  1161. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/agent_lane_projection.py +0 -0
  1162. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/attention_projection.py +0 -0
  1163. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/autonomous_replan_projection.py +0 -0
  1164. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/collection.py +0 -0
  1165. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/contract_projection.py +0 -0
  1166. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/dreaming_projection.py +0 -0
  1167. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/goal_attention_projection.py +0 -0
  1168. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/lifecycle_projection.py +0 -0
  1169. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/monitor_display_projection.py +0 -0
  1170. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/registry_health_projection.py +0 -0
  1171. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/run_projection.py +0 -0
  1172. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/runtime_summaries.py +0 -0
  1173. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/ssh_host_catalog.py +0 -0
  1174. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/ssh_tunnel.py +0 -0
  1175. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/__init__.py +0 -0
  1176. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/canary_harness.py +0 -0
  1177. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/capability_monitor_repair_tool_behavior.py +0 -0
  1178. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/control_plane_composition_scenarios.py +0 -0
  1179. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/decision_replay.py +0 -0
  1180. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/model_behavior_corpus.py +0 -0
  1181. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/model_behavior_retained_cases.py +0 -0
  1182. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/onboarding_model_behavior_qualification.py +0 -0
  1183. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/quota_fixtures.py +0 -0
  1184. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/quota_should_run_parity.py +0 -0
  1185. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/release_commit_qualification.py +0 -0
  1186. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/replan_semantic_action_behavior.py +0 -0
  1187. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/turn_journal_characterization.py +0 -0
  1188. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/__init__.py +0 -0
  1189. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/active_state_editing.py +0 -0
  1190. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/active_state_todos.py +0 -0
  1191. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/addition.py +0 -0
  1192. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/claim_visibility.py +0 -0
  1193. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completed_archive.py +0 -0
  1194. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completion_policy.py +0 -0
  1195. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completion_validation_accountability.py +0 -0
  1196. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completion_validation_projection.py +0 -0
  1197. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/decision_scope.py +0 -0
  1198. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/durable_completion.py +0 -0
  1199. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/frontier_deadline.py +0 -0
  1200. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/handoff_gate.py +0 -0
  1201. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/handoff_note.py +0 -0
  1202. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/text.py +0 -0
  1203. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/todo_index.py +0 -0
  1204. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/unblock_resume.py +0 -0
  1205. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/user_gate.py +0 -0
  1206. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/write_hint.py +0 -0
  1207. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/write_policy.py +0 -0
  1208. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/turn_driver/delivery_continuity.py +0 -0
  1209. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/turn_driver/transaction.py +0 -0
  1210. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/turn_transaction_contract.json +0 -0
  1211. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/__init__.py +0 -0
  1212. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_fields.py +0 -0
  1213. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_item.py +0 -0
  1214. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_queue.py +0 -0
  1215. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_routing.py +0 -0
  1216. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/autonomous_candidates.py +0 -0
  1217. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/autonomous_replan_ack.py +0 -0
  1218. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/backlog_hygiene.py +0 -0
  1219. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/capability_monitor_fallback.py +0 -0
  1220. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/delivery_batch_scale.py +0 -0
  1221. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/delivery_signals.py +0 -0
  1222. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/execution_obligation.py +0 -0
  1223. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/goal_route_hint.py +0 -0
  1224. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/issue_meta_surface.py +0 -0
  1225. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/lifecycle.py +0 -0
  1226. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/outcome_followthrough.py +0 -0
  1227. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/repair_delta.py +0 -0
  1228. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/status_contract.py +0 -0
  1229. {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/work_lane_context.py +0 -0
  1230. {loopx-0.5.2 → loopx-0.5.4}/loopx/dash_server.py +0 -0
  1231. {loopx-0.5.2 → loopx-0.5.4}/loopx/demo.py +0 -0
  1232. {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_packs/__init__.py +0 -0
  1233. {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_packs/issue_fix.py +0 -0
  1234. {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_packs/ml_experiment.py +0 -0
  1235. {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_state.py +0 -0
  1236. {loopx-0.5.2 → loopx-0.5.4}/loopx/dreaming.py +0 -0
  1237. {loopx-0.5.2 → loopx-0.5.4}/loopx/dsh_goal_mode/__init__.py +0 -0
  1238. {loopx-0.5.2 → loopx-0.5.4}/loopx/dsh_goal_mode/__main__.py +0 -0
  1239. {loopx-0.5.2 → loopx-0.5.4}/loopx/event_sourced_state.py +0 -0
  1240. {loopx-0.5.2 → loopx-0.5.4}/loopx/execution_profile.py +0 -0
  1241. {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/README.md +0 -0
  1242. {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/__init__.py +0 -0
  1243. {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/__init__.py +0 -0
  1244. {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/contract.py +0 -0
  1245. {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/runtime.py +0 -0
  1246. {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/traex.py +0 -0
  1247. {loopx-0.5.2 → loopx-0.5.4}/loopx/explore_graph.py +0 -0
  1248. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/__init__.py +0 -0
  1249. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/bundled.py +0 -0
  1250. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/capability_admission.py +0 -0
  1251. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/execution_envelope.py +0 -0
  1252. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/external_connector_provider.py +0 -0
  1253. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/external_connector_runtime.py +0 -0
  1254. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/__init__.py +0 -0
  1255. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/app_setup.py +0 -0
  1256. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/cli_resolution.py +0 -0
  1257. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel.py +0 -0
  1258. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_contracts.py +0 -0
  1259. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_lifecycle.py +0 -0
  1260. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_notification.py +0 -0
  1261. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_runtime.py +0 -0
  1262. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_targets.py +0 -0
  1263. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_transport.py +0 -0
  1264. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/__init__.py +0 -0
  1265. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_results.py +0 -0
  1266. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_singleflight.py +0 -0
  1267. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_source_guard.py +0 -0
  1268. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_stage_document.py +0 -0
  1269. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_visual_integrity.py +0 -0
  1270. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_visual_readback.py +0 -0
  1271. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_visual_styles.py +0 -0
  1272. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/issue_fix_surface.py +0 -0
  1273. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/kanban.py +0 -0
  1274. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/message_card.py +0 -0
  1275. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/projection_rows.py +0 -0
  1276. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/record_io.py +0 -0
  1277. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/sync_receipt.py +0 -0
  1278. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/private_json.py +0 -0
  1279. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/__init__.py +0 -0
  1280. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/activation.py +0 -0
  1281. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/extension.toml +0 -0
  1282. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/provider.py +0 -0
  1283. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/sink.py +0 -0
  1284. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/__init__.py +0 -0
  1285. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/extension.toml +0 -0
  1286. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/history_export.py +0 -0
  1287. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/project_peer.py +0 -0
  1288. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/provider.py +0 -0
  1289. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/presentation.py +0 -0
  1290. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/process_runtime.py +0 -0
  1291. {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/scaffold.py +0 -0
  1292. {loopx-0.5.2 → loopx-0.5.4}/loopx/global_registry.py +0 -0
  1293. {loopx-0.5.2 → loopx-0.5.4}/loopx/global_risks.py +0 -0
  1294. {loopx-0.5.2 → loopx-0.5.4}/loopx/global_todos.py +0 -0
  1295. {loopx-0.5.2 → loopx-0.5.4}/loopx/goal_mode_context.py +0 -0
  1296. {loopx-0.5.2 → loopx-0.5.4}/loopx/handoff_budget.py +0 -0
  1297. {loopx-0.5.2 → loopx-0.5.4}/loopx/heartbeat_prequota.py +0 -0
  1298. {loopx-0.5.2 → loopx-0.5.4}/loopx/heartbeat_prompt.py +0 -0
  1299. {loopx-0.5.2 → loopx-0.5.4}/loopx/install_contract.py +0 -0
  1300. {loopx-0.5.2 → loopx-0.5.4}/loopx/interface_budget.py +0 -0
  1301. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/README.md +0 -0
  1302. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/__init__.py +0 -0
  1303. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/app_server.py +0 -0
  1304. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/cli.py +0 -0
  1305. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/context.py +0 -0
  1306. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/control_plane.py +0 -0
  1307. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/runtime.py +0 -0
  1308. {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/server.py +0 -0
  1309. {loopx-0.5.2 → loopx-0.5.4}/loopx/materials.py +0 -0
  1310. {loopx-0.5.2 → loopx-0.5.4}/loopx/ml_experiment.py +0 -0
  1311. {loopx-0.5.2 → loopx-0.5.4}/loopx/onboarding.py +0 -0
  1312. {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode2_goal_mode/README.md +0 -0
  1313. {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode2_goal_mode/__init__.py +0 -0
  1314. {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode2_goal_mode/opencode2-goal-worker.mjs +0 -0
  1315. {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/README.md +0 -0
  1316. {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/__init__.py +0 -0
  1317. {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/goal-bridge-runtime.mjs +0 -0
  1318. {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/loopx-goal.js +0 -0
  1319. {loopx-0.5.2 → loopx-0.5.4}/loopx/operator_gate.py +0 -0
  1320. {loopx-0.5.2 → loopx-0.5.4}/loopx/orchestration.py +0 -0
  1321. {loopx-0.5.2 → loopx-0.5.4}/loopx/paths.py +0 -0
  1322. {loopx-0.5.2 → loopx-0.5.4}/loopx/pi_goal_mode/__init__.py +0 -0
  1323. {loopx-0.5.2 → loopx-0.5.4}/loopx/pr_review.py +0 -0
  1324. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/README.md +0 -0
  1325. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/__init__.py +0 -0
  1326. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/explore_views.py +0 -0
  1327. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/markdown.py +0 -0
  1328. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/projection_source_reconcile.py +0 -0
  1329. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/projections/__init__.py +0 -0
  1330. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/projections/session_dash.py +0 -0
  1331. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/public_safety.py +0 -0
  1332. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/__init__.py +0 -0
  1333. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/goal_channel_html.py +0 -0
  1334. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/periodic_report_html.py +0 -0
  1335. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/periodic_report_markdown.py +0 -0
  1336. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/quota_event_markdown.py +0 -0
  1337. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/session_dash_html.py +0 -0
  1338. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/status_markdown.py +0 -0
  1339. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/trajectory_hygiene_markdown.py +0 -0
  1340. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/turn_envelope_markdown.py +0 -0
  1341. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/sinks/__init__.py +0 -0
  1342. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/sinks/openviking_periodic_report.py +0 -0
  1343. {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/static_site.py +0 -0
  1344. {loopx-0.5.2 → loopx-0.5.4}/loopx/presets.py +0 -0
  1345. {loopx-0.5.2 → loopx-0.5.4}/loopx/project_alias.py +0 -0
  1346. {loopx-0.5.2 → loopx-0.5.4}/loopx/project_map.py +0 -0
  1347. {loopx-0.5.2 → loopx-0.5.4}/loopx/project_uninstall.py +0 -0
  1348. {loopx-0.5.2 → loopx-0.5.4}/loopx/promotion_gate.py +0 -0
  1349. {loopx-0.5.2 → loopx-0.5.4}/loopx/ready_score.py +0 -0
  1350. {loopx-0.5.2 → loopx-0.5.4}/loopx/registry_writability.py +0 -0
  1351. {loopx-0.5.2 → loopx-0.5.4}/loopx/release_manifest.py +0 -0
  1352. {loopx-0.5.2 → loopx-0.5.4}/loopx/repository_identity.py +0 -0
  1353. {loopx-0.5.2 → loopx-0.5.4}/loopx/review_packet.py +0 -0
  1354. {loopx-0.5.2 → loopx-0.5.4}/loopx/runtime.py +0 -0
  1355. {loopx-0.5.2 → loopx-0.5.4}/loopx/session_runtime.py +0 -0
  1356. {loopx-0.5.2 → loopx-0.5.4}/loopx/skill_install_readback.py +0 -0
  1357. {loopx-0.5.2 → loopx-0.5.4}/loopx/state_backup.py +0 -0
  1358. {loopx-0.5.2 → loopx-0.5.4}/loopx/state_migration.py +0 -0
  1359. {loopx-0.5.2 → loopx-0.5.4}/loopx/state_projection.py +0 -0
  1360. {loopx-0.5.2 → loopx-0.5.4}/loopx/status_server.py +0 -0
  1361. {loopx-0.5.2 → loopx-0.5.4}/loopx/summary_all.py +0 -0
  1362. {loopx-0.5.2 → loopx-0.5.4}/loopx/thread_agent_binding.py +0 -0
  1363. {loopx-0.5.2 → loopx-0.5.4}/loopx/todo_followups.py +0 -0
  1364. {loopx-0.5.2 → loopx-0.5.4}/loopx/todo_suggestion_prompt.py +0 -0
  1365. {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/assets/index-9IiDicAv.js +0 -0
  1366. {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/assets/index-CLqMm9A9.js +0 -0
  1367. {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/assets/index-DLmo9pnP.css +0 -0
  1368. {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/manifest.webmanifest +0 -0
  1369. {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/pwa/icon-192.png +0 -0
  1370. {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/pwa/icon-512.png +0 -0
  1371. {loopx-0.5.2 → loopx-0.5.4}/loopx/windows_install.py +0 -0
  1372. {loopx-0.5.2 → loopx-0.5.4}/loopx/worker_bridge.py +0 -0
  1373. {loopx-0.5.2 → loopx-0.5.4}/loopx.egg-info/dependency_links.txt +0 -0
  1374. {loopx-0.5.2 → loopx-0.5.4}/loopx.egg-info/entry_points.txt +0 -0
  1375. {loopx-0.5.2 → loopx-0.5.4}/loopx.egg-info/top_level.txt +0 -0
  1376. {loopx-0.5.2 → loopx-0.5.4}/setup.cfg +0 -0
  1377. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-benchmark/agents/openai.yaml +0 -0
  1378. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-doc-registry/SKILL.md +0 -0
  1379. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-doc-registry/agents/openai.yaml +0 -0
  1380. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/SKILL.md +0 -0
  1381. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/agents/openai.yaml +0 -0
  1382. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/references/snapshot-contract.md +0 -0
  1383. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/scripts/diff_snapshot.py +0 -0
  1384. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-review/agents/openai.yaml +0 -0
  1385. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-project/SKILL.md +0 -0
  1386. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-project/agents/openai.yaml +0 -0
  1387. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-self-repair/SKILL.md +0 -0
  1388. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-self-repair/agents/openai.yaml +0 -0
  1389. {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-self-repair/references/upstream-issue-escalation.md +0 -0
  1390. {loopx-0.5.2 → loopx-0.5.4}/tests/test_agent_onboarding_pi_host.py +0 -0
  1391. {loopx-0.5.2 → loopx-0.5.4}/tests/test_agent_onboarding_unconnected_project.py +0 -0
  1392. {loopx-0.5.2 → loopx-0.5.4}/tests/test_ark_managed_agent_host.py +0 -0
  1393. {loopx-0.5.2 → loopx-0.5.4}/tests/test_ark_managed_agent_issue_fix_matrix.py +0 -0
  1394. {loopx-0.5.2 → loopx-0.5.4}/tests/test_attached_session_cli.py +0 -0
  1395. {loopx-0.5.2 → loopx-0.5.4}/tests/test_auto_research_control.py +0 -0
  1396. {loopx-0.5.2 → loopx-0.5.4}/tests/test_chat_image_attachments.py +0 -0
  1397. {loopx-0.5.2 → loopx-0.5.4}/tests/test_chat_lark_api_contract.py +0 -0
  1398. {loopx-0.5.2 → loopx-0.5.4}/tests/test_chat_server_cors.py +0 -0
  1399. {loopx-0.5.2 → loopx-0.5.4}/tests/test_codex_app_apply_rrule.py +0 -0
  1400. {loopx-0.5.2 → loopx-0.5.4}/tests/test_command_invocation.py +0 -0
  1401. {loopx-0.5.2 → loopx-0.5.4}/tests/test_content_ops_item_lifecycle.py +0 -0
  1402. {loopx-0.5.2 → loopx-0.5.4}/tests/test_content_ops_lifecycle.py +0 -0
  1403. {loopx-0.5.2 → loopx-0.5.4}/tests/test_content_ops_queue_status.py +0 -0
  1404. {loopx-0.5.2 → loopx-0.5.4}/tests/test_contract_credential_pattern_precision.py +0 -0
  1405. {loopx-0.5.2 → loopx-0.5.4}/tests/test_contract_scan_unreadable_files.py +0 -0
  1406. {loopx-0.5.2 → loopx-0.5.4}/tests/test_decision_context_material.py +0 -0
  1407. {loopx-0.5.2 → loopx-0.5.4}/tests/test_default_public_scan_root.py +0 -0
  1408. {loopx-0.5.2 → loopx-0.5.4}/tests/test_dependency_security_boundaries.py +0 -0
  1409. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_counterfactual_runtime.py +0 -0
  1410. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_episode_runtime.py +0 -0
  1411. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_monitor_lane_budget.py +0 -0
  1412. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_owner_board_views.py +0 -0
  1413. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_presentation_views.py +0 -0
  1414. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_replay_compatibility.py +0 -0
  1415. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_replay_runtime.py +0 -0
  1416. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_resource_portfolio.py +0 -0
  1417. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_router_acceptance.py +0 -0
  1418. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_source_history_reconcile.py +0 -0
  1419. {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_worker_topic_affinity.py +0 -0
  1420. {loopx-0.5.2 → loopx-0.5.4}/tests/test_external_scheduler_worker.py +0 -0
  1421. {loopx-0.5.2 → loopx-0.5.4}/tests/test_file_lock_cross_process.py +0 -0
  1422. {loopx-0.5.2 → loopx-0.5.4}/tests/test_global_registry_write_serialization.py +0 -0
  1423. {loopx-0.5.2 → loopx-0.5.4}/tests/test_global_risks.py +0 -0
  1424. {loopx-0.5.2 → loopx-0.5.4}/tests/test_global_todos.py +0 -0
  1425. {loopx-0.5.2 → loopx-0.5.4}/tests/test_host_mode_planner.py +0 -0
  1426. {loopx-0.5.2 → loopx-0.5.4}/tests/test_host_poll_receipts.py +0 -0
  1427. {loopx-0.5.2 → loopx-0.5.4}/tests/test_loopx_turn_transaction.py +0 -0
  1428. {loopx-0.5.2 → loopx-0.5.4}/tests/test_ml_experiment_volc_packet.py +0 -0
  1429. {loopx-0.5.2 → loopx-0.5.4}/tests/test_opencode2_goal_worker.py +0 -0
  1430. {loopx-0.5.2 → loopx-0.5.4}/tests/test_opencode2_goal_worker_cli.py +0 -0
  1431. {loopx-0.5.2 → loopx-0.5.4}/tests/test_opencode_goal_bridge.py +0 -0
  1432. {loopx-0.5.2 → loopx-0.5.4}/tests/test_operator_markdown_renderers.py +0 -0
  1433. {loopx-0.5.2 → loopx-0.5.4}/tests/test_packaged_skill_metadata.py +0 -0
  1434. {loopx-0.5.2 → loopx-0.5.4}/tests/test_pr_program_snapshot.py +0 -0
  1435. {loopx-0.5.2 → loopx-0.5.4}/tests/test_pr_program_snapshot_diff.py +0 -0
  1436. {loopx-0.5.2 → loopx-0.5.4}/tests/test_pr_review_github_scan.py +0 -0
  1437. {loopx-0.5.2 → loopx-0.5.4}/tests/test_project_skill_cli.py +0 -0
  1438. {loopx-0.5.2 → loopx-0.5.4}/tests/test_register_agent_fresh_identity.py +0 -0
  1439. {loopx-0.5.2 → loopx-0.5.4}/tests/test_release_smoke_archive_helpers.py +0 -0
  1440. {loopx-0.5.2 → loopx-0.5.4}/tests/test_reward_memory_pipeline.py +0 -0
  1441. {loopx-0.5.2 → loopx-0.5.4}/tests/test_skill_delivery_parity.py +0 -0
  1442. {loopx-0.5.2 → loopx-0.5.4}/tests/test_smoke_suite.py +0 -0
  1443. {loopx-0.5.2 → loopx-0.5.4}/tests/test_sonarcloud_workflow.py +0 -0
  1444. {loopx-0.5.2 → loopx-0.5.4}/tests/test_ssh_tunnel_source.py +0 -0
  1445. {loopx-0.5.2 → loopx-0.5.4}/tests/test_state_refresh_projections.py +0 -0
  1446. {loopx-0.5.2 → loopx-0.5.4}/tests/test_static_site_presentation.py +0 -0
  1447. {loopx-0.5.2 → loopx-0.5.4}/tests/test_status_server_extension_projection.py +0 -0
  1448. {loopx-0.5.2 → loopx-0.5.4}/tests/test_status_server_fast_path.py +0 -0
  1449. {loopx-0.5.2 → loopx-0.5.4}/tests/test_status_server_ssh_hosts.py +0 -0
  1450. {loopx-0.5.2 → loopx-0.5.4}/tests/test_summary_all.py +0 -0
  1451. {loopx-0.5.2 → loopx-0.5.4}/tests/test_thread_agent_binding.py +0 -0
  1452. {loopx-0.5.2 → loopx-0.5.4}/tests/test_trajectory_hygiene.py +0 -0
  1453. {loopx-0.5.2 → loopx-0.5.4}/tests/test_turn_loop_disposition.py +0 -0
  1454. {loopx-0.5.2 → loopx-0.5.4}/tests/test_visible_goal_terminal_settlement.py +0 -0
loopx-0.5.4/PKG-INFO ADDED
@@ -0,0 +1,782 @@
1
+ Metadata-Version: 2.4
2
+ Name: loopx
3
+ Version: 0.5.4
4
+ Summary: A lightweight Loop Engineering control plane for long-running agent goals.
5
+ Author: LoopX contributors
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://huangruiteng.github.io/loopx/
8
+ Project-URL: Documentation, https://huangruiteng.github.io/loopx/docs/
9
+ Project-URL: Repository, https://github.com/huangruiteng/loopx
10
+ Project-URL: Issues, https://github.com/huangruiteng/loopx/issues
11
+ Project-URL: Changelog, https://github.com/huangruiteng/loopx/releases
12
+ Requires-Python: >=3.11
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ License-File: NOTICE
16
+ License-File: LICENSE-MIT
17
+ Provides-Extra: deepseek-harness
18
+ Requires-Dist: deepseek-harness-sdk==0.1.2a3; extra == "deepseek-harness"
19
+ Provides-Extra: test
20
+ Requires-Dist: jsonschema<5,>=4.23; extra == "test"
21
+ Requires-Dist: mcp==1.28.1; extra == "test"
22
+ Requires-Dist: types-jsonschema<5,>=4.23; extra == "test"
23
+ Requires-Dist: pytest<9,>=8; extra == "test"
24
+ Requires-Dist: pytest-cov<7,>=5; extra == "test"
25
+ Requires-Dist: pytest-xdist<4,>=3; extra == "test"
26
+ Requires-Dist: ruff<0.16,>=0.12; extra == "test"
27
+ Requires-Dist: mypy<2,>=1.18; extra == "test"
28
+ Dynamic: license-file
29
+
30
+ <div align="center">
31
+
32
+ <h1 align="center">LoopX</h1>
33
+
34
+ <img src="docs/assets/loopx-social-preview.png" alt="LoopX loop engineering social preview banner" width="560">
35
+
36
+ **The open, provider-neutral, stateful control plane for long-horizon agents.**
37
+
38
+ <sub>Runs on top of any agent harness — Codex App, Claude Code, Cursor, dsh, or your own — providing long-horizon state, semantic decisions, governance, recovery, and human-agent collaboration. Objectives, gates, todos, evidence, quota, and handoffs stay stable while the harness executes bounded turns.</sub>
39
+
40
+ <a href="https://trendshift.io/repositories/102379?utm_source=repository-badge&amp;utm_medium=badge&amp;utm_campaign=badge-repository-102379"><img src="https://trendshift.io/api/badge/repositories/102379" alt="huangruiteng/loopx on Trendshift" width="220" height="48"></a>
41
+
42
+ [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Release](https://img.shields.io/github/v/release/huangruiteng/loopx?display_name=tag)](https://github.com/huangruiteng/loopx/releases/latest) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/XmGgQyCFZd) [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](pyproject.toml) [![Local first](https://img.shields.io/badge/control--plane-local--first-brightgreen.svg)](docs/public-private-boundary.md) [![Loop Agents](https://img.shields.io/badge/status-loop%20agents%20active-brightgreen.svg)](docs/product/release-readiness.md)
43
+
44
+ [Public website](https://huangruiteng.github.io/loopx/) · [Docs](https://huangruiteng.github.io/loopx/docs/) · [Developer Book](https://huangruiteng.github.io/loopx/docs/book/) · [Try LoopX](#try-loopx) · [See real loops](#evidence) · [How it works](#why-loopx) · [User manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg) · [简体中文](README.zh-CN.md)
45
+
46
+ **把会干活的 Agent,接成可管理、可复盘、可持续改进的数字员工。**
47
+
48
+ </div>
49
+
50
+ ---
51
+
52
+ Open and provider-neutral, LoopX is a lightweight state kernel and local-first
53
+ control plane for loop engineering. It runs on top of different agent harnesses
54
+ rather than replacing them, providing the long-horizon state, semantic
55
+ decisions about what happens next, governance, recovery, and human-agent
56
+ collaboration that keep long-running work reviewable, restartable, and easier
57
+ to hand off across turns, tools, and agents.
58
+
59
+ **Loop engineering for long-horizon AI agents and peer agent teams.**
60
+
61
+ > Keep the loop moving. Keep the judgment human.
62
+
63
+ ## Learn LoopX
64
+
65
+ - **Developer Book** - the curated bilingual path from control-plane foundations to project onboarding and developer contributions. [中文版](https://huangruiteng.github.io/loopx/docs/book/) · [English](https://huangruiteng.github.io/loopx/docs/book/en/)
66
+ - **Getting started** - install, connect a project, and run your first governed loop. [Guide](docs/guides/getting-started.md)
67
+ - **Docs** - the full reference and operations site. [LoopX Docs](https://huangruiteng.github.io/loopx/docs/)
68
+
69
+ ## Meet the Personal Agent Workspace
70
+
71
+ Keep long-horizon goals in one local-first workspace. Goals, attention,
72
+ conversations, tasks, files, schedules, and recovery stay durable across days,
73
+ restarts, and harnesses, so work that began last week resumes exactly where
74
+ the last bounded turn stopped instead of living in chat memory.
75
+
76
+ <a href="docs/assets/personal-workspace/loopx-dashboard-launch.mp4">
77
+ <img src="docs/assets/personal-workspace/loopx-dashboard-tour.webp" alt="Animated tour of the LoopX personal Agent workspace, from one-command launch to Manager overview, Goal task board, protected action preview, and Goal details" width="960">
78
+ </a>
79
+
80
+ The workspace gives you one place to:
81
+
82
+ - see what needs you, what is running, what is being watched, and what is
83
+ scheduled or stopped;
84
+ - continue across Codex, Claude Code, direct-model, and other registered Agent
85
+ sessions without losing Goal state or evidence;
86
+ - review protected changes through typed preview, explicit confirmation, and
87
+ receipts while LoopX state—not the browser—remains authoritative.
88
+
89
+ ```bash
90
+ loopx dashboard
91
+ ```
92
+
93
+ `loopx dashboard` is the supported browser/PWA launch path. For a native
94
+ window, the experimental source-built Tauri shell reuses the same loopback
95
+ status and Chat services without becoming another state authority:
96
+
97
+ ```bash
98
+ cd apps/desktop/loopx-control-plane
99
+ npm install
100
+ npm run dev
101
+ ```
102
+
103
+ [Read the desktop shell guide](apps/desktop/loopx-control-plane/README.md).
104
+ Closing the window stops only the service processes that the shell started;
105
+ existing LoopX services and durable Goal state remain intact. Both entry
106
+ points share the same loopback services and can be started in either order:
107
+ `loopx dashboard` reuses an already-running LoopX Chat service instead of
108
+ starting a second one.
109
+
110
+ [Watch the full 32-second walkthrough](docs/assets/personal-workspace/loopx-dashboard-launch.mp4)
111
+ · [Read the workspace guide](docs/guides/personal-workspace-user-guide.md)
112
+ · [Try the five-minute tour](docs/guides/personal-workspace-trial-guide.md)
113
+
114
+ <a id="how-it-works"></a>
115
+
116
+ ## Why LoopX
117
+
118
+ An agent can finish a task in one session. Long-running work is harder:
119
+ objectives change, owner decisions appear, evidence goes stale, agents hand work
120
+ to peers, and a scheduler can keep spending after no useful transition remains.
121
+ Chat memory and a timer are not enough to govern that.
122
+
123
+ LoopX keeps the durable control state in one compact layer:
124
+
125
+ ```text
126
+ objective / issue / project
127
+
128
+
129
+ LoopX state: objective + gates + todos + scope + evidence + quota
130
+
131
+ ├─ human judgment needed? ── yes ─▶ ask a concrete question and wait
132
+
133
+ ├─ safe fallback available? ──────▶ run one bounded agent slice
134
+
135
+
136
+ Codex / Claude Code / Cursor / shell agent executes one turn
137
+
138
+
139
+ write evidence + handoff + next todo ─▶ quota decides the next tick
140
+ ```
141
+
142
+ Agent runtimes execute the work. LoopX governs the state that lets engineering,
143
+ research, discovery, and operations loops continue across runs. It is not
144
+ another agent framework or a provider-specific orchestration runtime.
145
+
146
+ ![LoopX control-plane board](docs/assets/control-plane-board.svg)
147
+
148
+ A useful mental model is an
149
+ **[agent-native Kanban for long-running work](docs/development/control-plane-course/00-concept-primer.md)**.
150
+ Cards carry identity, authority, evidence, and continuation. Moves are validated
151
+ operators such as claim, gate, monitor, and writeback. The board is a
152
+ projection; LoopX state remains the source of truth.
153
+
154
+ Registered agents are peers. Claims, leases, task boundaries, capabilities, and
155
+ typed continuation decide who acts next; no durable leader identity is
156
+ required.
157
+
158
+ LoopX is useful when you run:
159
+
160
+ - multi-day engineering, research, benchmark, or experiment objectives;
161
+ - issue and PR loops that must preserve scope, evidence, and review state;
162
+ - recurring heartbeat or monitor work;
163
+ - projects with owner, safety, publication, or private-data gates;
164
+ - peer-agent teams where ownership, leases, and handoff matter;
165
+ - creator, research, or operations workflows whose progress must remain
166
+ legible to a non-engineering operator.
167
+
168
+ LoopX is not an autonomous production controller. Dangerous permissions,
169
+ publishing, production writes, and final ownership stay with the human.
170
+
171
+ <a id="see-it-in-action"></a>
172
+
173
+ ## Evidence
174
+
175
+ These are not one-turn demos. The public OpenViking contribution sequence and
176
+ the redacted, owner-run Auto ML showcase each span
177
+ **200+ hours of elapsed loop lifetime** across many bounded turns, decisions,
178
+ and evidence updates. Elapsed lifetime is wall-clock project time. It is
179
+ not 200 hours of continuous model execution or a claim of unattended
180
+ production autonomy. Open each visual to
181
+ inspect the public-safe graph, evidence branches, and decisions preserved
182
+ across turns.
183
+
184
+ ### Open-Source Issue Fix
185
+
186
+ **200+ hour public contribution arc: PR delivery and reusable fix knowledge
187
+ evolve together.**
188
+
189
+ <a href="docs/assets/long-running-loop-openviking-trajectory.png">
190
+ <img src="docs/assets/long-running-loop-openviking-trajectory.png" alt="Open-source issue-fix trajectory linking focused PR delivery with reusable LoopX capabilities" width="420">
191
+ </a>
192
+
193
+ LoopX's creator uses this path as an
194
+ [OpenViking contributor](https://github.com/volcengine/OpenViking/pulls?q=is%3Apr+author%3Ahuangruiteng).
195
+ The represented public contribution sequence spans more than 200 elapsed hours
196
+ from its first PR creation to the latest represented review or update. The
197
+ [Issue-Fix capability](loopx/capabilities/issue_fix/README.md) keeps rolling
198
+ repository context, revision-stamped fix knowledge, and reviewer-facing
199
+ preferences separate; linked PRs plus current checkout source and tests remain
200
+ authoritative.
201
+
202
+ ### Auto ML Experiment
203
+
204
+ **Redacted owner-run showcase: a 200+ hour experiment arc keeps hypotheses,
205
+ matched evidence, invalid lineages, running replicates, and promote/stop gates
206
+ visible in one graph.**
207
+
208
+ <a href="docs/assets/long-running-loop-ml-experiment-trajectory.png">
209
+ <img src="docs/assets/long-running-loop-ml-experiment-trajectory.png" alt="Auto ML Experiment trajectory with experiment lineages, evidence gates, and promotion decisions" width="760">
210
+ </a>
211
+
212
+ The redacted public-safe graph preserves decision lineage across that 200+ hour
213
+ elapsed window. It is an owner-run showcase, not a claim of continuous compute,
214
+ independent reproduction, a production result, or company or employer
215
+ endorsement. The redacted image is not sufficient to reproduce the underlying
216
+ experiment independently.
217
+
218
+ ### Auto Research
219
+
220
+ **Reproducible public KNN demo: proposer, executor, and evaluator/promoter agents
221
+ iterate in parallel while todo, quota, evidence, and targeted wake remain
222
+ visible.**
223
+
224
+ <a href="docs/assets/auto-research-multi-agent-showcase.png">
225
+ <img src="docs/assets/auto-research-multi-agent-showcase.png" alt="Auto Research multi-agent workspace with proposer, executor, evaluator/promoter, todo, quota, evidence, and targeted wake activity">
226
+ </a>
227
+
228
+ This screenshot comes from LoopX's built-in exact-KNN demo. The public task,
229
+ editable and protected files, deterministic CPU evaluator, and dev/held-out
230
+ commands all live in this repository. Follow the
231
+ [showcase walkthrough](docs/product/use-cases/auto-research/decentralized-auto-research-showcase.md)
232
+ or the [demo command path](demo/auto_research/README.md) to reproduce the
233
+ workflow; it is a demo result, not a production research claim.
234
+
235
+ ### Used In Real Projects
236
+
237
+ - **Independent user · `>13h` C++ accuracy run.** The user reported that a
238
+ multi-stage task stayed aligned, triggered public research, adopted a
239
+ [public code-memory tool](https://github.com/DeusData/codebase-memory-mcp),
240
+ and improved final precision. [Read the evidence boundary](docs/showcases/cases/independent-cpp-accuracy-long-run.md).
241
+ - **Independent user · `4d` unattended run.** The user reported four days
242
+ without human intervention, useful ongoing work, and a periodic report
243
+ surface. [Read the redacted case](docs/showcases/cases/independent-four-day-unattended-agent.md).
244
+ - **Independent user · `7` merged PRs.** A LoopX-attributed Engine refactor is
245
+ visible in a [public issue](https://github.com/zilliztech/mfs/issues/166) and
246
+ seven merged PRs; attribution and the reported `1B+` token scale remain user
247
+ reports. [Inspect the case](docs/showcases/cases/independent-public-engine-refactor.md).
248
+
249
+ These are the three strongest current cases, not the full inventory. Browse the
250
+ [complete Showcase catalog](docs/showcases/README.md) for contributor cases,
251
+ creator dogfooding, reproducible demos, and explicit evidence-strength labels.
252
+
253
+ More inspectable surfaces:
254
+
255
+ - the [public homepage](https://huangruiteng.github.io/loopx/) for the product
256
+ narrative, quick start, and long-running evidence;
257
+ - the [complete Showcase catalog](docs/showcases/README.md) and its
258
+ [bilingual hosted index](docs/showcases/index.html);
259
+ - the [cross-runtime implementation review demo](docs/product/use-cases/cross-runtime/cross-runtime-impl-review-demo.md);
260
+ - the public [user manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg).
261
+
262
+ <a id="quick-start"></a>
263
+
264
+ ## Try LoopX
265
+
266
+ Requirements: Python 3.11+. Use an active Python environment whose console
267
+ scripts are on `PATH`; macOS and Linux use a POSIX shell, while native Windows
268
+ uses PowerShell 7. Git is only needed for contributor clone/canary workflows.
269
+ The package has no runtime dependencies outside the standard library.
270
+
271
+ Install from PyPI without cloning:
272
+
273
+ ```bash
274
+ python3 -m pip install --upgrade loopx
275
+ loopx workflow-skills --install
276
+ loopx doctor
277
+ ```
278
+
279
+ Existing installs can use `loopx update plan` and `loopx update apply`; LoopX
280
+ keeps the detected pip, pipx, or archive owner instead of switching channels.
281
+
282
+ On native Windows PowerShell 7, use the same PyPI release without a POSIX
283
+ compatibility layer:
284
+
285
+ ```powershell
286
+ py -3.11 -m pip install --upgrade loopx
287
+ loopx workflow-skills --install
288
+ loopx doctor
289
+ ```
290
+
291
+ Restart your agent host after first install so it reloads the workflow skills.
292
+ See [Installing LoopX](docs/guides/installing-loopx.md) for `pipx`, host
293
+ command surfaces, native Windows checkout installation, upgrade, rollback,
294
+ uninstall, and the archive fallback.
295
+
296
+ Then connect from your project root:
297
+
298
+ ```bash
299
+ cd /path/to/your-project
300
+ loopx connect
301
+ loopx status
302
+ ```
303
+
304
+ If the project has not been initialized and `connect` tells you state is
305
+ missing, use the guided path:
306
+
307
+ ```bash
308
+ loopx start-goal --guided --project . --goal-text "Your long-running objective"
309
+ ```
310
+
311
+ LoopX should reuse existing state rather than overwrite it. Keep `.loopx/`,
312
+ `.codex/goals/`, and `.local/` ignored.
313
+
314
+ ### Start From Your Agent
315
+
316
+ | Host | Recommended start | Loop driver |
317
+ | --- | --- | --- |
318
+ | Codex App | Ask the agent to connect this project to LoopX, run `loopx doctor`, preserve existing state, and report the current gate and next todo. Then use `$loopx <complex task>` or choose `loopx` from `/skills`. | Codex App heartbeat automation, refreshed from `quota should-run.scheduler_hint` |
319
+ | Codex App over SSH | `loopx agent-onboard --agent-type codex-app-ssh --project .` | The returned visible `/goal <task_body>` |
320
+ | Codex CLI | Start `codex` in the project, ask it to connect and diagnose LoopX, then use `$loopx <complex task>` or `/skills`. | Visible `/goal <task_body>`; no hidden headless execution by default |
321
+ | Claude Code | Install the opt-in adapter, then run `/loopx <task>` followed by `/loop`. | Native Claude Code `/loop` gated by LoopX |
322
+ | KunlunCode | Run `loopx-kunluncode connect --project . --goal-id <goal-id> --agent-id <registered-agent-id>`, add a bounded todo, then run `loopx-kunluncode run --project .`. | Native Goal Pro through app-server; LoopX writes completion and quota only after strict verification |
323
+ | OpenCode | Install the static command facade; opt in to `--with-goal-bridge` for recurring goals. | OpenCode command facade and explicit goal bridge |
324
+ | Pi | Install the opt-in goal extension with `loopx slash-commands --install --surface pi`, then use `/loopx <task>` from a trusted Pi session. | Visible Pi goal extension gated by LoopX quota (`loopx_goal_activate` + `agent_settled` continuation) |
325
+ | ZCode | Install the skill facade with `loopx slash-commands --install --surface zcode`, then invoke the `$loopx` skill (or `/loopx <complex task>`) from a ZCode session in the project. | The ZCode session's own turn loop; every continuation enters through `quota should-run` |
326
+ | Antigravity CLI (agy) | Install the skill facade with `loopx slash-commands --install --surface agy`, then invoke the `loopx` skill (or `/loopx <complex task>`) from an `agy` session in the project. | The session's native `/goal` loop (audited until `<!-- GOAL_COMPLETE -->`) with `schedule` self-wakes while the session lives; the facade instructs every turn/wake to re-enter through `quota should-run` — advisory pacing, not a host-enforced gate |
327
+ | DeepSeek Harness (dsh) | Install `loopx[deepseek-harness]`, prepare a dsh `cordis.yml`, then use the [dsh goal-mode adapter](loopx/dsh_goal_mode/README.md) with `loopx turn run-once`. | Headless dsh segments through LoopX Turn, each tick gated by `quota should-run` |
328
+ | Cursor, shell, or custom runner | Use the installer and `loopx doctor`; connect manually or call LoopX from your runner. | Your shell, scheduler, or runner |
329
+
330
+ The exact, copy-ready setup messages and host recovery paths live in
331
+ [Getting Started](docs/guides/getting-started.md). Host integrations can inspect
332
+ the [Codex App host command registry contract](docs/reference/protocols/codex-app-host-command-registry-v0.md),
333
+ the [Codex CLI packaged install path](docs/product/runtimes/codex-cli/codex-cli-packaged-install.md),
334
+ the [Claude Code adapter](loopx/claude_goal_mode/README.md), the
335
+ [KunlunCode native Goal adapter](loopx/kunluncode_goal_mode/README.md), or the
336
+ [DeepSeek Harness turn adapter](loopx/dsh_goal_mode/README.md).
337
+
338
+ For custom runners, start with the
339
+ [minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md)
340
+ (`python3 examples/custom-runtime-minimal-cli-turn-smoke.py`), then the full
341
+ [Embed LoopX in Your Agent Runner](docs/guides/custom-agent-runner-integration.md)
342
+ guide and the [worker bridge install contract](docs/integrations/worker-bridge-install-contract.md).
343
+ The core tick is deliberately small:
344
+
345
+ ```text
346
+ loopx quota should-run # should this registered agent act now?
347
+ loopx todo claim # who owns this slice?
348
+ loopx todo update # what changed?
349
+ loopx refresh-state # what should the next turn see?
350
+ loopx quota spend-slot # account for a completed, validated slice
351
+ ```
352
+
353
+ ### First-Run Feedback
354
+
355
+ If LoopX works for you, a one-minute public issue helps us learn what a real
356
+ first run looks like. It is optional, contains no telemetry, and should not
357
+ include logs, paths, credentials, internal project names, or goal contents:
358
+
359
+ - [First-run feedback](https://github.com/huangruiteng/loopx/issues/new?template=first_run.yml)
360
+ - [Usage story for longer runs](https://github.com/huangruiteng/loopx/issues/new?template=usage_story.yml)
361
+
362
+ `loopx first-run-report` prints the same prefilled link locally without
363
+ sending anything.
364
+
365
+ A successful connection has:
366
+
367
+ - `loopx doctor` passing;
368
+ - `.loopx/registry.json` and a projected active goal state;
369
+ - `loopx status` showing the current objective, concrete user gate, and next
370
+ agent todo;
371
+ - a visible loop driver or an exact activation instruction;
372
+ - local runtime state ignored rather than committed.
373
+
374
+ Clone-based install is only for contributors who want the live canary wrapper:
375
+
376
+ ```bash
377
+ git clone https://github.com/huangruiteng/loopx ~/loopx
378
+ ~/loopx/scripts/install-local.sh
379
+ loopx doctor
380
+ ```
381
+
382
+ <a id="capability-surface"></a>
383
+
384
+ ## Capabilities
385
+
386
+ LoopX keeps the architecture explicit so the same governed outcome can survive
387
+ a change of agent harness or external provider. The terms describe different
388
+ boundaries rather than interchangeable kinds of plugin:
389
+
390
+ | Boundary | Meaning | Go deeper |
391
+ | --- | --- | --- |
392
+ | **Kernel** | Owns durable goal, todo, gate, evidence, quota, recovery, and scheduling truth. | [Architecture](docs/architecture.md) |
393
+ | **Capability** | Defines a stable, provider-neutral contract for producing one bounded, verifiable caller outcome from LoopX state. | [Capability catalog](loopx/capabilities/README.md) |
394
+ | **Provider** | Calls an external system or local implementation and returns bounded observations, effect results, and readback. | [Provider responsibilities](docs/reference/extensions.md#runtime-responsibilities) |
395
+ | **Extension** | Packages and operates an optional provider through explicit install, readiness, enable, upgrade, disable, and rollback lifecycle. | [Extension lifecycle](docs/reference/extensions.md#runtime-lifecycle) |
396
+
397
+ Host declarations such as `--available-capability shell` describe observed
398
+ execution support. They are runtime capacities in this product map, not product
399
+ capabilities and not permission grants. The effective capability still applies
400
+ its own policy and authority checks before proposing a transition.
401
+
402
+ ### Core Control-Plane Promises
403
+
404
+ The Kernel folds its mechanics into five questions. Each question delivers one
405
+ product promise on top of any agent harness: objective → long-horizon state;
406
+ next → semantic decisions; human judgment → human-agent collaboration;
407
+ evidence → recovery; continuation → governance.
408
+
409
+ | Question | What LoopX keeps visible |
410
+ | --- | --- |
411
+ | What is the objective? | The active goal, explicit scope, and current authority. |
412
+ | What happens next? | Ordered user and agent todos, ownership, claims, and leases. |
413
+ | What needs human judgment? | Concrete user gates instead of a vague "waiting for owner." |
414
+ | What evidence changed? | Compact run history, validation, blockers, and accepted writeback. |
415
+ | May the loop continue? | Quota, capabilities, safe fallback, scheduler hints, and stop conditions. |
416
+
417
+ ### Control-Plane Surface
418
+
419
+ | Surface | What it does | Start with |
420
+ | --- | --- | --- |
421
+ | Goal state and status | Tracks active state, todos, claims, gates, evidence, run history, and first-screen attention. | `loopx status`, `loopx diagnose`, `loopx review-packet` |
422
+ | Quota and interaction contract | Decides whether a turn should deliver, ask, wait, self-repair, or stay quiet. | `loopx quota should-run`, [quota allocation](docs/quota-allocation.md) |
423
+ | Agent runtime bridges | Keeps Codex App, Codex CLI, Claude Code, and generic workers aligned with the same guard. | `loopx heartbeat-prompt`, `loopx codex-cli-bootstrap-message`, `loopx worker-bridge` |
424
+ | Operator surfaces | Renders compact status without making the browser the state authority. | `loopx serve-status`, [dashboard](apps/presentation/dashboard/README.md) |
425
+ | Session dash | Starts a live single-page panel that tracks fleet progress: sessions, their goals, and each goal's status/todo progress, with result statistics; auto-refreshes in place. | `loopx dash`, [session dash design](docs/product/surfaces/session-dash-panel-design.md) |
426
+ | External projections | Projects todos and gates into collaboration surfaces while LoopX remains authoritative. | `loopx lark-kanban`, [Lark Kanban adapter](docs/integrations/lark-kanban-control-plane-adapter.md) |
427
+ | Domain capabilities | Packages repeatable work lanes such as issue fixing, content operations, value connector planning, ML experiment advice, benchmark evidence, and Explore. | `loopx issue-fix`, `loopx content-ops`, `loopx value-connectors`, `loopx ml-experiment`, `loopx benchmark`, [Explore](loopx/capabilities/explore/README.md) |
428
+ | Experimental context learning | Lets named registered agents trial provider-neutral Reward Memory through ignored, default-off project configuration. OpenViking is one provider option, not a global dependency. | `loopx reward-memory experiment-status`, [Reward Memory architecture](loopx/capabilities/reward_memory/README.md) |
429
+ | Governance patterns | Captures reusable routing, gate, evidence, projection, and planning shapes. | [interaction patterns](docs/concepts/interaction-pattern-catalog.md), [state model](docs/state-interaction-model.md) |
430
+
431
+ The shipped primitives include lifetime goals, concrete user gates, audited safe
432
+ fallbacks, peer todo ownership, quota and steering, compact run history,
433
+ evidence-backed handoff, a read-first management surface, project-level value
434
+ signals, and public/private boundary checks.
435
+
436
+ ### Product Capability Paths
437
+
438
+ Capabilities turn those generic primitives into outcome-owned work lanes. Start
439
+ from the outcome, then inspect the current registered implementation and its
440
+ write boundary:
441
+
442
+ | You need to... | Capability | Start with |
443
+ | --- | --- | --- |
444
+ | Turn a public issue into a reviewable, evidence-backed change | [Issue Fix](loopx/capabilities/issue_fix/README.md) | `loopx capability show issue-fix --format json` |
445
+ | Qualify the exact final diff before delivery | [Change Quality](loopx/capabilities/change_quality/README.md) | `loopx capability show change-quality-qualification --format json` |
446
+ | Preserve a changing stack of already reviewed branches | [Integration Branch](loopx/capabilities/integration_branch/README.md) | `loopx capability show integration-branch-reconcile --format json` |
447
+ | Explore uncertain research without losing hypotheses and findings | [Explore](loopx/capabilities/explore/README.md) | `loopx capability show explore --format json` |
448
+ | Rebase decisions on current evidence and verified outcomes | [Decision Context](loopx/capabilities/decision_context/README.md) | `loopx capability show decision-context --format json` |
449
+ | Produce scheduled or progress-triggered reports with receipts | [Periodic Report](loopx/capabilities/periodic_report/README.md) | `loopx capability show periodic-report --format json` |
450
+
451
+ Run `loopx capability list --format json` for the authoritative catalog in the
452
+ installed release. A capability detail reports its user value, maturity,
453
+ provider readiness, entry commands, write boundaries, protocols, and durable
454
+ validation. Browse the [human-readable capability index](loopx/capabilities/README.md)
455
+ to choose by outcome; use [Extensions and Capabilities](docs/reference/extensions.md)
456
+ when installing or building a provider.
457
+
458
+ ### Runtime Responsibilities
459
+
460
+ | Role | Responsibility |
461
+ | --- | --- |
462
+ | **Agent** | Plans, analyzes, uses tools, and performs one bounded action through a host/runtime. |
463
+ | **Provider** | Calls external systems and returns observations, effect results, and readback. |
464
+ | **Capability** | Defines the caller outcome, normalizes provider output, validates it, and proposes a typed transition. |
465
+ | **Kernel** | Owns durable todos, gates, monitors, accepted writeback, quota, recovery, and scheduling. |
466
+
467
+ The execution path is `Agent -> Capability -> Provider`; the control path
468
+ returns `Provider readback -> Capability transition -> Kernel`. An extension is
469
+ how an optional provider is packaged and managed, not another control-plane
470
+ owner. See [Architecture](docs/architecture.md) and
471
+ [Extensions and Capabilities](docs/reference/extensions.md).
472
+
473
+ ## Advanced Paths
474
+
475
+ The first useful loop does not require every optional surface. Add these only
476
+ when the work needs them.
477
+
478
+ Inspect the current goal's read-only capability catalog before enabling an
479
+ advanced path:
480
+
481
+ ```bash
482
+ loopx configure-goal --goal-id <goal-id>
483
+ ```
484
+
485
+ Without `--execute`, this reports current/default state, fit, boundaries, and
486
+ copyable commands without changing project state.
487
+
488
+ ### Presets and Auto Research
489
+
490
+ Safe presets cover daily triage, changelog drafts, and PR watching. The
491
+ one-command research path coordinates proposer, executor, and
492
+ evaluator/promoter roles while keeping quota and evidence visible. See the
493
+ [beginner preset guide](docs/product/foundations/beginner-loop-presets.md) and
494
+ [Auto Research demo path](demo/auto_research/README.md).
495
+
496
+ ```bash
497
+ loopx preset list
498
+ loopx preset show daily-triage
499
+ ```
500
+
501
+ Preset inspection is read-only. For a connected recurring goal,
502
+ `loopx ready-score --goal-id <goal-id> --agent-id <agent-id>` reports whether
503
+ the loop is ready to run repeatedly.
504
+
505
+ ### Governed Turns
506
+
507
+ LoopX can generate one pure, bounded turn decision from a validated receipt,
508
+ fresh quota state, and a provider-neutral budget. The current Codex CLI
509
+ quickstart and activation contract are documented in
510
+ [LoopX Turn for Codex CLI](docs/product/runtimes/codex-cli/loopx-turn-codex-cli-quickstart.md).
511
+
512
+ ### Explore Graph and Harness
513
+
514
+ Explore is supported, optional, and default-off. It works best when a task has
515
+ a measurable offline evaluation, baseline, treatment, and guardrails; it is not
516
+ a substitute for production approval. Start with the
517
+ [Explore capability](loopx/capabilities/explore/README.md) and its
518
+ [Lark presentation mapping](loopx/capabilities/explore/README.md#presentation-sink-lark-mapping).
519
+
520
+ ### Review Agent Work
521
+
522
+ Use `loopx review-packet` for a compact owner-facing view of decisions,
523
+ evidence, validation, and unresolved gates. The
524
+ [intelligent management surface](docs/product/surfaces/intelligent-management-surface.md)
525
+ describes the operator model; the
526
+ [project-level reward model](docs/product/foundations/project-level-reward-model.md)
527
+ describes conservative value signals across output quantity, quality, token
528
+ cost, and user attention cost.
529
+
530
+ For one concrete peer workflow, see the
531
+ [cross-runtime implementation review demo](docs/product/use-cases/cross-runtime/cross-runtime-impl-review-demo.md):
532
+ Claude implements and Codex reviews while LoopX keeps ownership, evidence,
533
+ quota, and handoff explicit.
534
+
535
+ ### App and Projection Paths
536
+
537
+ - Local read-first UI: [dashboard guide](apps/presentation/dashboard/README.md)
538
+ - Public product overview: [public homepage](https://huangruiteng.github.io/loopx/)
539
+ - Documentation portal: [hosted docs](https://huangruiteng.github.io/loopx/docs/)
540
+ - Feishu/Lark projection: [Lark Kanban adapter](docs/integrations/lark-kanban-control-plane-adapter.md)
541
+ - Generic host integration: [integration guide](docs/integration.md)
542
+ - Custom multi-agent runner:
543
+ [minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md),
544
+ then [custom runner integration](docs/guides/custom-agent-runner-integration.md)
545
+
546
+ Optional projections make state easier to inspect; they do not become the
547
+ source of truth.
548
+
549
+ ### Operating and Recovery
550
+
551
+ Start daily inspection with:
552
+
553
+ ```bash
554
+ loopx status
555
+ loopx history --goal-id your-project-goal
556
+ loopx quota should-run --goal-id your-project-goal
557
+ ```
558
+
559
+ Automatic turns must check quota first and append spend only after validated
560
+ writeback. Quiet skips, preflight failures, and dry-run previews do not spend.
561
+ When a user gate blocks one lane, a separately audited safe fallback may
562
+ continue, but it must not bypass the gate.
563
+
564
+ Peer agents use `loopx todo claim` before delivery and `loopx todo update`
565
+ after validation so ownership and evidence remain visible.
566
+
567
+ Scheduler cadence follows `quota should-run.scheduler_hint`; installed Codex
568
+ App automations acknowledge the current hint through the returned
569
+ `ack_hint.cli_args`. Collision recovery, monitor semantics, self-repair, and
570
+ the exact operator commands are maintained in
571
+ [Getting Started](docs/guides/getting-started.md),
572
+ [Quota Allocation](docs/quota-allocation.md), and
573
+ [Long-Task Cadence Policy](docs/operations/long-task-cadence-policy.md).
574
+
575
+ Before publishing public docs or examples:
576
+
577
+ ```bash
578
+ loopx check \
579
+ --scan-path README.md \
580
+ --scan-path docs/ \
581
+ --scan-path examples/
582
+ ```
583
+
584
+ ## Current Technical Directions
585
+
586
+ LoopX has three active strategic programs plus an architecture and research
587
+ incubator. These are direction signals, not delivery promises; `main`, released
588
+ artifacts, and stable reference contracts remain the source of shipped truth.
589
+
590
+ - **Long-Horizon Benchmarks and Evidence:** reproducible capability evidence
591
+ and controlled mechanism research across complementary benchmark
592
+ environments. [Direction tracker](https://github.com/huangruiteng/loopx/issues/3243)
593
+ - **Operator Surface and IM Integration:** an operator workspace, session
594
+ records, and bounded collaboration surfaces, currently incubating on a
595
+ dedicated integration branch with `@maxliux5` as implementation lead.
596
+ [Direction tracker](https://github.com/huangruiteng/loopx/issues/3244)
597
+ - **Shared Goal Authority and Cross-host Coordination:** provider-neutral
598
+ coordination for explicitly shared goals, with NoKV as an unpromoted
599
+ provider candidate rather than a new control-plane authority.
600
+ [Direction tracker](https://github.com/huangruiteng/loopx/issues/3245)
601
+ - **Architecture and Research Incubator:** Effect Program hardening,
602
+ TypeScript parity migration, hierarchical stride, research exploration,
603
+ human attention, artifact lifecycle, and memory utility work at explicitly
604
+ different maturity levels.
605
+ [Direction tracker](https://github.com/huangruiteng/loopx/issues/3246)
606
+
607
+ Read the canonical
608
+ [Technical Directions map](docs/project/technical-directions.md) for stages,
609
+ promotion gates, contributor-safe cuts, and ownership boundaries. Use the
610
+ pinned [GitHub Discussion](https://github.com/huangruiteng/loopx/discussions/2851)
611
+ for community discussion. Core control-plane reliability continues as the
612
+ shared foundation beneath these programs.
613
+
614
+ ## Advanced Documentation
615
+
616
+ Start with the path that matches your current task. Use the hosted
617
+ [documentation portal](https://huangruiteng.github.io/loopx/docs/) for the
618
+ published docs site; the [documentation index](docs/README.md) remains the
619
+ complete source map. This list stays selective; each category index owns its
620
+ deeper documents and versioned protocols.
621
+
622
+ ### Use and Operate
623
+
624
+ - [Getting Started](docs/guides/getting-started.md): install, connect,
625
+ diagnose, daily workflow, heartbeats, dashboard, development, and commands.
626
+ - [User Manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg):
627
+ public onboarding, concepts, FAQ, and selected cases.
628
+ - [Operations](docs/operations/README.md): goal continuation, todo, cadence,
629
+ attention, and authority workflows.
630
+ - [Quota Allocation](docs/quota-allocation.md) and
631
+ [Heartbeat Automation Prompt](docs/heartbeat-automation-prompt.md): scheduler
632
+ eligibility, spend, and scheduled continuation.
633
+ - [Dashboard](apps/presentation/dashboard/README.md) and
634
+ [Status Data Contract](docs/status-data-contract.md): operator-facing state
635
+ and projection contracts.
636
+ - [Release Readiness](docs/product/release-readiness.md): install/update paths,
637
+ compatibility gates, release notes, and safe-to-depend-on surfaces.
638
+
639
+ ### Understand the Control Plane
640
+
641
+ - [Architecture](docs/architecture.md): lifetime-goal invariant and kernel.
642
+ - [State Interaction Model](docs/state-interaction-model.md): actors, stores,
643
+ interaction contract, and writeback.
644
+ - [Concepts](docs/concepts/README.md): reusable routing, gate, evidence,
645
+ projection, and planning patterns.
646
+ - [Product Foundations](docs/product/foundations/README.md): Loop Engineering
647
+ principles, project-level reward, and reward-style replanning.
648
+ - [Product Vision](docs/product/vision.md): the broader Loop Agent direction.
649
+
650
+ ### Integrate and Extend
651
+
652
+ - [Integration Guide](docs/integration.md)
653
+ - [Minimal Custom Runtime Example](docs/guides/minimal-custom-runtime-example.md)
654
+ - [Custom Agent Runner Integration](docs/guides/custom-agent-runner-integration.md)
655
+ - [Integrations](docs/integrations/README.md): runtime, host, collaboration, and
656
+ external-system adapters, including worker bridge and Lark.
657
+ - [Extensions and Capabilities](docs/reference/extensions.md)
658
+
659
+ ### Build and Review LoopX
660
+
661
+ - [Developer Guide](docs/development/README.md): contributor workflows,
662
+ benchmark development, documentation layout, and quality gates.
663
+ - [Reference and Protocols](docs/reference/README.md): stable contracts and
664
+ versioned implementation protocols, including host command and reward memory
665
+ architecture.
666
+ - [Control-Plane Developer Course](docs/development/control-plane-course/README.md):
667
+ nine Chinese, code-led lectures.
668
+ - [Testing and Quality](docs/development/testing-and-quality.md): validation
669
+ layers and risk-based checks.
670
+ - [Public/Private Boundary](docs/public-private-boundary.md): safe fixtures,
671
+ examples, evidence, and publication.
672
+
673
+ ### Inspect Outcomes
674
+
675
+ - [Showcase Catalog](docs/showcases/README.md): public-safe cases and evidence
676
+ labels.
677
+ - [Research and Evidence](docs/research/README.md): benchmark investigations
678
+ and source-backed findings.
679
+ - [Update Notes](docs/update-notes/README.md): public-safe progress notes.
680
+
681
+ ### Project and Community
682
+
683
+ - [Current Technical Directions](docs/project/technical-directions.md)
684
+ - [Project Governance](.github/GOVERNANCE.md)
685
+ - [Contributing](CONTRIBUTING.md) and [Contributor Tasks](docs/development/contributor-tasks.md)
686
+ - [Authors and Contributors](docs/project/authors.md)
687
+ - [Project History](docs/project/history.md)
688
+ - [Name and Marks](docs/project/trademarks.md)
689
+ - [Brand Guide for External Use](docs/project/brand-guide.md): how projects and companies may reference LoopX, its integrations, and its artwork
690
+ - [ADOPTERS](ADOPTERS.md): voluntary self-attested adoption directory
691
+ - [Ecosystem Adoption](docs/community/ecosystem-adoption.md) - integrations,
692
+ sampling, and derivatives we observe and track
693
+
694
+ ## Partner Projects
695
+
696
+ LoopX welcomes collaboration with other open-source projects to build the
697
+ long-running agent ecosystem. Our confirmed partners include:
698
+
699
+ - [OpenViking](https://github.com/volcengine/OpenViking) - Self-evolving
700
+ context database for AI agents
701
+ - [NoKV](https://github.com/NoKV-Lab/NoKV) - AI native distributed file system
702
+
703
+ <a id="community--feedback"></a>
704
+
705
+ ## Community and Feedback
706
+
707
+ LoopX is already running real long-running agent goals and is under active
708
+ development. The most useful feedback comes from real long-running agent
709
+ projects: where the control plane helped, where it felt heavy, and which gates
710
+ or handoffs disappeared from view.
711
+
712
+ - Use [GitHub Issues](https://github.com/huangruiteng/loopx/issues) for
713
+ reproducible bugs, install problems, and feature requests.
714
+ - Open PRs for docs fixes, showcase writeups, and small public-safe examples.
715
+ - Join the [Discord community](https://discord.gg/XmGgQyCFZd), or use Lark or
716
+ WeChat below.
717
+
718
+ See [Support](.github/SUPPORT.md) for channel routing, service boundaries, and
719
+ official publication sources.
720
+
721
+ <p align="center">
722
+ <a href="docs/assets/loopx-lark-developer-group.png"><img src="docs/assets/loopx-lark-developer-group.png" alt="LoopX Lark developer group QR code" width="280"></a>
723
+ <a href="docs/assets/loopx-wechat-contact.png"><img src="docs/assets/loopx-wechat-contact.png" alt="LoopX WeChat contact QR code" width="220"></a>
724
+ </p>
725
+ <p align="center">
726
+ <sub><strong>Lark:</strong> scan to join directly<br><strong>WeChat: <code>huangrt00</code></strong> · mention LoopX in the friend request</sub>
727
+ </p>
728
+
729
+ ## Contributing
730
+
731
+ External contributors should start with
732
+ [Contributor Tasks](docs/development/contributor-tasks.md) for public, claimable work and
733
+ [Contributing](CONTRIBUTING.md) for setup, validation, and boundary rules.
734
+ Project roles and public history are recorded in
735
+ [Governance](.github/GOVERNANCE.md),
736
+ [Authors and Contributors](docs/project/authors.md), and
737
+ [Project History](docs/project/history.md).
738
+
739
+ LoopX keeps local active state separate from the public repository. Do not
740
+ commit `.loopx/`, `.codex/goals/`, live `ACTIVE_GOAL_STATE.md`, raw benchmark
741
+ traces, credentials, private logs, or operator artifacts.
742
+
743
+ ## Current Status
744
+
745
+ The v0.4.x line is a usable local control plane for long-running agent work and
746
+ is entering broader adoption. It is not a full agent platform, an agent runtime,
747
+ or an autonomous production controller.
748
+
749
+ Today LoopX ships a durable state kernel for goals, typed todos and decision
750
+ scopes, peer claims and leases, evidence and writeback, quota-aware scheduling,
751
+ and cross-turn continuation. Guided start, recurring heartbeat, isolated Codex
752
+ CLI turns, evidence-backed Issue-Fix admission, optional Explore and auto
753
+ research paths, public validation canaries, and a read-first multi-project
754
+ dashboard build on that shared control state.
755
+
756
+ Support levels remain explicit. The state and CLI contracts are the stable
757
+ center; several host integrations and advanced paths are optional, default-off,
758
+ or experimental. LoopX does not grant credentials, approve destructive or
759
+ production actions, publish on a user's behalf without authorization, or turn
760
+ an unverified run into evidence of success.
761
+
762
+ Current investment is organized through the
763
+ [Technical Directions map](docs/project/technical-directions.md): long-horizon
764
+ benchmark evidence, operator surface and IM integration, shared-goal cross-host
765
+ coordination, and an explicitly staged architecture and research incubator.
766
+
767
+ ## Star History
768
+
769
+ <p align="center">
770
+ <a href="https://github.com/huangruiteng/loopx/stargazers"><img src="https://huangruiteng.github.io/loopx/site-assets/star-history.svg" alt="LoopX GitHub star history from verified snapshots" width="800"></a><br>
771
+ <sub>Generated every six hours from GitHub's official stargazer timestamps using a repository-authorized workflow. A snapshot is published only when the fetched rows match GitHub's current star count; GitHub's image cache may delay refreshes.</sub>
772
+ </p>
773
+
774
+ ## License
775
+
776
+ Apache License 2.0 beginning with `v0.4.8`. See [LICENSE](LICENSE) and
777
+ [NOTICE](NOTICE). Releases through `v0.4.7` remain under their original MIT
778
+ terms; the historical text and notice are preserved in
779
+ [LICENSE-MIT](LICENSE-MIT). The [licensing policy](docs/project/licensing.md)
780
+ explains the version, contribution, patent-grant, and open-core boundaries.
781
+
782
+ [osai-verify: eb42dd9cf910399988f0]: #