loopx 1.2.0__tar.gz → 1.2.1__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 (2033) hide show
  1. loopx-1.2.1/PKG-INFO +872 -0
  2. loopx-1.2.1/README.md +841 -0
  3. loopx-1.2.1/loopx/__init__.py +5 -0
  4. loopx-1.2.1/loopx/bootstrap.py +682 -0
  5. loopx-1.2.1/loopx/canary/maintainability_ratchet.py +900 -0
  6. loopx-1.2.1/loopx/canary/planner.py +1936 -0
  7. loopx-1.2.1/loopx/canary/qualification_profiles.py +308 -0
  8. loopx-1.2.1/loopx/capabilities/README.md +184 -0
  9. loopx-1.2.1/loopx/capabilities/agent_turn_recall/cli.py +308 -0
  10. loopx-1.2.1/loopx/capabilities/agent_turn_recall/runtime.py +394 -0
  11. loopx-1.2.1/loopx/capabilities/benchmark_toolkit/experiment_board.py +1045 -0
  12. loopx-1.2.1/loopx/capabilities/benchmark_toolkit/study_projection.py +1382 -0
  13. loopx-1.2.1/loopx/capabilities/configuration_inspection.py +123 -0
  14. loopx-1.2.1/loopx/capabilities/configuration_ui.py +626 -0
  15. loopx-1.2.1/loopx/capabilities/decision_context/README.md +496 -0
  16. loopx-1.2.1/loopx/capabilities/decision_context/README.zh-CN.md +414 -0
  17. loopx-1.2.1/loopx/capabilities/decision_context/assembler.py +910 -0
  18. loopx-1.2.1/loopx/capabilities/decision_context/capture.py +565 -0
  19. loopx-1.2.1/loopx/capabilities/decision_context/cli.py +465 -0
  20. loopx-1.2.1/loopx/capabilities/decision_context/freshness.py +318 -0
  21. loopx-1.2.1/loopx/capabilities/decision_context/packets.py +663 -0
  22. loopx-1.2.1/loopx/capabilities/decision_context/runtime.py +509 -0
  23. loopx-1.2.1/loopx/capabilities/explore/result_log.py +974 -0
  24. loopx-1.2.1/loopx/capabilities/goal_inspection.py +124 -0
  25. loopx-1.2.1/loopx/capabilities/integration_branch/core.py +919 -0
  26. loopx-1.2.1/loopx/capabilities/issue_fix/cli_input.py +87 -0
  27. loopx-1.2.1/loopx/capabilities/issue_fix/discovered_issue_promotion.py +947 -0
  28. loopx-1.2.1/loopx/capabilities/issue_fix/outcome_projection.py +1235 -0
  29. loopx-1.2.1/loopx/capabilities/issue_fix/pr_monitor_materialization.py +227 -0
  30. loopx-1.2.1/loopx/capabilities/issue_fix/reviewer_recommendation.py +1068 -0
  31. loopx-1.2.1/loopx/capabilities/manager_context/README.md +460 -0
  32. loopx-1.2.1/loopx/capabilities/manager_context/__init__.py +393 -0
  33. loopx-1.2.1/loopx/capabilities/manager_context/answer_contract.py +45 -0
  34. loopx-1.2.1/loopx/capabilities/manager_context/discovery.py +111 -0
  35. loopx-1.2.1/loopx/capabilities/manager_context/evidence_export.py +55 -0
  36. loopx-1.2.1/loopx/capabilities/manager_context/inspection.py +395 -0
  37. loopx-1.2.1/loopx/capabilities/manager_context/skills/loopx-manager/SKILL.md +211 -0
  38. loopx-1.2.1/loopx/capabilities/manager_context/ssh_evidence.py +764 -0
  39. loopx-1.2.1/loopx/capabilities/manager_context/tracking.py +210 -0
  40. loopx-1.2.1/loopx/capabilities/material_lifecycle/_validation.py +187 -0
  41. loopx-1.2.1/loopx/capabilities/multi_subagent/cli.py +82 -0
  42. loopx-1.2.1/loopx/capabilities/multi_subagent/native_child_receipts.py +299 -0
  43. loopx-1.2.1/loopx/capabilities/periodic_report/adapters.py +951 -0
  44. loopx-1.2.1/loopx/capabilities/periodic_report/bindings.py +828 -0
  45. loopx-1.2.1/loopx/capabilities/periodic_report/core.py +756 -0
  46. loopx-1.2.1/loopx/capabilities/pr_review_queue/README.md +1023 -0
  47. loopx-1.2.1/loopx/capabilities/pr_review_queue/result_check.py +425 -0
  48. loopx-1.2.1/loopx/capabilities/pr_review_queue/review_contract.py +1334 -0
  49. loopx-1.2.1/loopx/capabilities/progress_review/README.md +252 -0
  50. loopx-1.2.1/loopx/capabilities/progress_review/README.zh-CN.md +137 -0
  51. loopx-1.2.1/loopx/capabilities/repository_change_window/ledger.py +854 -0
  52. loopx-1.2.1/loopx/capabilities/reward_memory/README.md +832 -0
  53. loopx-1.2.1/loopx/capabilities/reward_memory/__init__.py +117 -0
  54. loopx-1.2.1/loopx/capabilities/reward_memory/application.py +1055 -0
  55. loopx-1.2.1/loopx/capabilities/reward_memory/decision.py +203 -0
  56. loopx-1.2.1/loopx/capabilities/reward_memory/read_authority.py +28 -0
  57. loopx-1.2.1/loopx/capabilities/reward_memory/runtime_hooks.py +319 -0
  58. loopx-1.2.1/loopx/chat_agent.py +1082 -0
  59. loopx-1.2.1/loopx/chat_configuration_api.py +52 -0
  60. loopx-1.2.1/loopx/chat_coordination.py +139 -0
  61. loopx-1.2.1/loopx/chat_goal_configuration_api.py +685 -0
  62. loopx-1.2.1/loopx/chat_goal_lifecycle_actions.py +317 -0
  63. loopx-1.2.1/loopx/chat_ingress.py +97 -0
  64. loopx-1.2.1/loopx/chat_manager.py +977 -0
  65. loopx-1.2.1/loopx/chat_manager_details.py +84 -0
  66. loopx-1.2.1/loopx/chat_providers.py +439 -0
  67. loopx-1.2.1/loopx/chat_runtime.py +1651 -0
  68. loopx-1.2.1/loopx/chat_server.py +1569 -0
  69. loopx-1.2.1/loopx/chat_status_api.py +189 -0
  70. loopx-1.2.1/loopx/chat_store.py +1445 -0
  71. loopx-1.2.1/loopx/chat_todo_actions.py +230 -0
  72. loopx-1.2.1/loopx/chat_usage_statistics_api.py +40 -0
  73. loopx-1.2.1/loopx/cli.py +1035 -0
  74. loopx-1.2.1/loopx/cli_commands/__init__.py +300 -0
  75. loopx-1.2.1/loopx/cli_commands/agent_context.py +179 -0
  76. loopx-1.2.1/loopx/cli_commands/authority_archive.py +120 -0
  77. loopx-1.2.1/loopx/cli_commands/canary.py +707 -0
  78. loopx-1.2.1/loopx/cli_commands/capability.py +332 -0
  79. loopx-1.2.1/loopx/cli_commands/handoff_restore.py +127 -0
  80. loopx-1.2.1/loopx/cli_commands/lark_inbox.py +788 -0
  81. loopx-1.2.1/loopx/cli_commands/manager_inbox.py +170 -0
  82. loopx-1.2.1/loopx/cli_commands/quota.py +796 -0
  83. loopx-1.2.1/loopx/cli_commands/quota_action_selection.py +327 -0
  84. loopx-1.2.1/loopx/cli_commands/quota_context.py +376 -0
  85. loopx-1.2.1/loopx/cli_commands/quota_failure_report.py +292 -0
  86. loopx-1.2.1/loopx/cli_commands/registry_admin_configure.py +477 -0
  87. loopx-1.2.1/loopx/cli_commands/slash_commands.py +181 -0
  88. loopx-1.2.1/loopx/cli_commands/status.py +918 -0
  89. loopx-1.2.1/loopx/cli_commands/status_registration.py +237 -0
  90. loopx-1.2.1/loopx/cli_commands/summary_all.py +266 -0
  91. loopx-1.2.1/loopx/cli_commands/task_lease.py +253 -0
  92. loopx-1.2.1/loopx/cli_commands/todo.py +715 -0
  93. loopx-1.2.1/loopx/cli_commands/todo_argument_validation.py +665 -0
  94. loopx-1.2.1/loopx/cli_commands/todo_continuation.py +197 -0
  95. loopx-1.2.1/loopx/cli_commands/todo_registration.py +479 -0
  96. loopx-1.2.1/loopx/cli_commands/turn.py +1113 -0
  97. loopx-1.2.1/loopx/cli_commands/turn_rendering.py +323 -0
  98. loopx-1.2.1/loopx/cli_commands/turn_selection.py +128 -0
  99. loopx-1.2.1/loopx/cli_commands/usage_ping.py +52 -0
  100. loopx-1.2.1/loopx/cli_runtime.py +405 -0
  101. loopx-1.2.1/loopx/codex_app_thread_activity.py +259 -0
  102. loopx-1.2.1/loopx/configuration_catalog.py +934 -0
  103. loopx-1.2.1/loopx/contract.py +1185 -0
  104. loopx-1.2.1/loopx/control_plane/agents/directory.py +317 -0
  105. loopx-1.2.1/loopx/control_plane/agents/host_thread_activity.py +140 -0
  106. loopx-1.2.1/loopx/control_plane/agents/management_projection.py +761 -0
  107. loopx-1.2.1/loopx/control_plane/agents/profile.py +217 -0
  108. loopx-1.2.1/loopx/control_plane/agents/supervisor_event_append.ts +37 -0
  109. loopx-1.2.1/loopx/control_plane/agents/supervisor_event_log.py +126 -0
  110. loopx-1.2.1/loopx/control_plane/agents/supervisor_events.py +427 -0
  111. loopx-1.2.1/loopx/control_plane/agents/supervisor_inject.py +204 -0
  112. loopx-1.2.1/loopx/control_plane/capabilities/reward_memory_decision.ts +167 -0
  113. loopx-1.2.1/loopx/control_plane/collaboration/delegation.ts +282 -0
  114. loopx-1.2.1/loopx/control_plane/collaboration/delegation_context.py +181 -0
  115. loopx-1.2.1/loopx/control_plane/coordination/authority_archive.ts +139 -0
  116. loopx-1.2.1/loopx/control_plane/coordination/authority_archive_audit.ts +136 -0
  117. loopx-1.2.1/loopx/control_plane/coordination/authority_archive_read.ts +176 -0
  118. loopx-1.2.1/loopx/control_plane/coordination/authority_format_inspection.ts +105 -0
  119. loopx-1.2.1/loopx/control_plane/coordination/authority_format_upgrade.ts +106 -0
  120. loopx-1.2.1/loopx/control_plane/coordination/authority_store.ts +205 -0
  121. loopx-1.2.1/loopx/control_plane/coordination/authority_store_codec.ts +140 -0
  122. loopx-1.2.1/loopx/control_plane/coordination/file_authority_journal.ts +180 -0
  123. loopx-1.2.1/loopx/control_plane/coordination/file_authority_migration.ts +90 -0
  124. loopx-1.2.1/loopx/control_plane/coordination/file_authority_store.ts +567 -0
  125. loopx-1.2.1/loopx/control_plane/coordination/lease_acquisition_proof.ts +70 -0
  126. loopx-1.2.1/loopx/control_plane/coordination/legacy_writer_fence.py +328 -0
  127. loopx-1.2.1/loopx/control_plane/coordination/local_authority.py +386 -0
  128. loopx-1.2.1/loopx/control_plane/coordination/local_authority_archive.ts +102 -0
  129. loopx-1.2.1/loopx/control_plane/coordination/local_authority_runtime.ts +1526 -0
  130. loopx-1.2.1/loopx/control_plane/coordination/local_authority_shadow.ts +1129 -0
  131. loopx-1.2.1/loopx/control_plane/coordination/local_authority_shadow_adapter.py +995 -0
  132. loopx-1.2.1/loopx/control_plane/coordination/local_authority_shadow_outbox.py +1004 -0
  133. loopx-1.2.1/loopx/control_plane/coordination/runtime_shadow.py +779 -0
  134. loopx-1.2.1/loopx/control_plane/coordination/runtime_shadow.ts +360 -0
  135. loopx-1.2.1/loopx/control_plane/coordination/runtime_shadow_writer_adapter.py +217 -0
  136. loopx-1.2.1/loopx/control_plane/coordination/shadow_registry_source.ts +69 -0
  137. loopx-1.2.1/loopx/control_plane/coordination/sqlite_authority_migration.ts +370 -0
  138. loopx-1.2.1/loopx/control_plane/coordination/sqlite_authority_store.ts +715 -0
  139. loopx-1.2.1/loopx/control_plane/coordination/task_lease_lifecycle.ts +170 -0
  140. loopx-1.2.1/loopx/control_plane/coordination/task_lease_proof.ts +161 -0
  141. loopx-1.2.1/loopx/control_plane/coordination/task_lease_state.ts +66 -0
  142. loopx-1.2.1/loopx/control_plane/coordination/todo_acceptance_restoration.ts +50 -0
  143. loopx-1.2.1/loopx/control_plane/coordination/todo_blocked_lifecycle.ts +71 -0
  144. loopx-1.2.1/loopx/control_plane/coordination/todo_deferred_reopen.ts +65 -0
  145. loopx-1.2.1/loopx/control_plane/coordination/todo_lifecycle_decision.ts +609 -0
  146. loopx-1.2.1/loopx/control_plane/coordination/todo_terminal_lifecycle.ts +1527 -0
  147. loopx-1.2.1/loopx/control_plane/coordination/todo_update.ts +284 -0
  148. loopx-1.2.1/loopx/control_plane/coordination/todo_update_admission.ts +167 -0
  149. loopx-1.2.1/loopx/control_plane/coordination/todo_update_intent.ts +217 -0
  150. loopx-1.2.1/loopx/control_plane/effect_runtime.py +1129 -0
  151. loopx-1.2.1/loopx/control_plane/effect_runtime_handlers.ts +857 -0
  152. loopx-1.2.1/loopx/control_plane/effect_runtime_io.ts +524 -0
  153. loopx-1.2.1/loopx/control_plane/effect_runtime_server.ts +276 -0
  154. loopx-1.2.1/loopx/control_plane/effect_runtime_snapshot.ts +82 -0
  155. loopx-1.2.1/loopx/control_plane/goals/activation_service.py +523 -0
  156. loopx-1.2.1/loopx/control_plane/goals/artifact_lifecycle.py +411 -0
  157. loopx-1.2.1/loopx/control_plane/goals/checkpoint_context_io.py +207 -0
  158. loopx-1.2.1/loopx/control_plane/goals/configure_goal_service.py +1002 -0
  159. loopx-1.2.1/loopx/control_plane/goals/deletion_service.py +1317 -0
  160. loopx-1.2.1/loopx/control_plane/goals/first_party_host_admission.py +212 -0
  161. loopx-1.2.1/loopx/control_plane/goals/first_party_host_runtime.ts +171 -0
  162. loopx-1.2.1/loopx/control_plane/goals/global_registry_health.py +219 -0
  163. loopx-1.2.1/loopx/control_plane/goals/goal_amendment_proposal.py +512 -0
  164. loopx-1.2.1/loopx/control_plane/goals/goal_frontier/acceptance.py +87 -0
  165. loopx-1.2.1/loopx/control_plane/goals/legacy_event_source.py +43 -0
  166. loopx-1.2.1/loopx/control_plane/goals/shared_goal_alignment.py +219 -0
  167. loopx-1.2.1/loopx/control_plane/goals/shared_goal_work_source.py +73 -0
  168. loopx-1.2.1/loopx/control_plane/goals/vision_checkpoint.py +183 -0
  169. loopx-1.2.1/loopx/control_plane/goals/vision_checkpoint.ts +853 -0
  170. loopx-1.2.1/loopx/control_plane/handoff/handoff_fragments.py +701 -0
  171. loopx-1.2.1/loopx/control_plane/handoff/project_agent_context.py +592 -0
  172. loopx-1.2.1/loopx/control_plane/heartbeat/agent.py +179 -0
  173. loopx-1.2.1/loopx/control_plane/heartbeat/budget.py +78 -0
  174. loopx-1.2.1/loopx/control_plane/heartbeat/builder.py +658 -0
  175. loopx-1.2.1/loopx/control_plane/heartbeat/rules.py +108 -0
  176. loopx-1.2.1/loopx/control_plane/heartbeat/task_body.py +772 -0
  177. loopx-1.2.1/loopx/control_plane/projection_envelope.ts +328 -0
  178. loopx-1.2.1/loopx/control_plane/projection_envelope_facts.py +115 -0
  179. loopx-1.2.1/loopx/control_plane/quota/blocked_retry.py +296 -0
  180. loopx-1.2.1/loopx/control_plane/quota/cli_projection.py +792 -0
  181. loopx-1.2.1/loopx/control_plane/quota/codex_session_usage.py +379 -0
  182. loopx-1.2.1/loopx/control_plane/quota/error_codes.py +229 -0
  183. loopx-1.2.1/loopx/control_plane/quota/heartbeat_receipt.py +600 -0
  184. loopx-1.2.1/loopx/control_plane/quota/live_decision.py +699 -0
  185. loopx-1.2.1/loopx/control_plane/quota/monitor_poll.py +939 -0
  186. loopx-1.2.1/loopx/control_plane/quota/monitor_poll_commit.ts +2375 -0
  187. loopx-1.2.1/loopx/control_plane/quota/projection_repair.py +296 -0
  188. loopx-1.2.1/loopx/control_plane/quota/settlement.py +394 -0
  189. loopx-1.2.1/loopx/control_plane/quota/settlement_phase.ts +109 -0
  190. loopx-1.2.1/loopx/control_plane/quota/settlement_readback.ts +1076 -0
  191. loopx-1.2.1/loopx/control_plane/quota/slot_accounting.py +1046 -0
  192. loopx-1.2.1/loopx/control_plane/quota/turn_envelope.ts +881 -0
  193. loopx-1.2.1/loopx/control_plane/quota/unsettled_host_turn.py +330 -0
  194. loopx-1.2.1/loopx/control_plane/quota/unsettled_host_turn_recovery.ts +563 -0
  195. loopx-1.2.1/loopx/control_plane/rollout_receipt_log.ts +142 -0
  196. loopx-1.2.1/loopx/control_plane/runtime/public_safety.py +228 -0
  197. loopx-1.2.1/loopx/control_plane/runtime/receipt_log_snapshot.ts +144 -0
  198. loopx-1.2.1/loopx/control_plane/runtime/run_compaction.py +376 -0
  199. loopx-1.2.1/loopx/control_plane/runtime/run_context_retention.py +330 -0
  200. loopx-1.2.1/loopx/control_plane/runtime/run_index_rebuild.py +273 -0
  201. loopx-1.2.1/loopx/control_plane/runtime/status_projection_cache.py +297 -0
  202. loopx-1.2.1/loopx/control_plane/runtime/stride_observation.py +165 -0
  203. loopx-1.2.1/loopx/control_plane/runtime/usage_statistics.ts +208 -0
  204. loopx-1.2.1/loopx/control_plane/runtime/usage_statistics_cli.ts +42 -0
  205. loopx-1.2.1/loopx/control_plane/runtime/usage_statistics_codex.ts +111 -0
  206. loopx-1.2.1/loopx/control_plane/runtime/usage_statistics_contract.ts +52 -0
  207. loopx-1.2.1/loopx/control_plane/runtime/usage_statistics_cycles.ts +68 -0
  208. loopx-1.2.1/loopx/control_plane/runtime/usage_statistics_goal_contract.ts +45 -0
  209. loopx-1.2.1/loopx/control_plane/runtime/usage_statistics_goals.ts +100 -0
  210. loopx-1.2.1/loopx/control_plane/scheduler/provider_monitor_poll.py +68 -0
  211. loopx-1.2.1/loopx/control_plane/status/active_state_projection.py +67 -0
  212. loopx-1.2.1/loopx/control_plane/status/adapter_status_vocabulary.py +23 -0
  213. loopx-1.2.1/loopx/control_plane/status/collection.py +366 -0
  214. loopx-1.2.1/loopx/control_plane/status/goal_attention_projection.py +153 -0
  215. loopx-1.2.1/loopx/control_plane/status/lifecycle_projection.py +105 -0
  216. loopx-1.2.1/loopx/control_plane/subagent_context.ts +226 -0
  217. loopx-1.2.1/loopx/control_plane/testing/authority_e2e_fixtures.py +551 -0
  218. loopx-1.2.1/loopx/control_plane/testing/authority_e2e_ladder.py +1116 -0
  219. loopx-1.2.1/loopx/control_plane/testing/authority_e2e_row_support.py +122 -0
  220. loopx-1.2.1/loopx/control_plane/testing/authority_e2e_rows_stage2c.py +31 -0
  221. loopx-1.2.1/loopx/control_plane/testing/authority_e2e_rows_stage2c2.py +1218 -0
  222. loopx-1.2.1/loopx/control_plane/testing/cli_output_budget.py +931 -0
  223. loopx-1.2.1/loopx/control_plane/testing/cli_output_differential.py +911 -0
  224. loopx-1.2.1/loopx/control_plane/testing/cli_output_semantics.py +212 -0
  225. loopx-1.2.1/loopx/control_plane/testing/replan_vision_closeout_behavior.py +196 -0
  226. loopx-1.2.1/loopx/control_plane/todos/active_state_todos.py +150 -0
  227. loopx-1.2.1/loopx/control_plane/todos/completion_fence.ts +311 -0
  228. loopx-1.2.1/loopx/control_plane/todos/completion_policy.py +181 -0
  229. loopx-1.2.1/loopx/control_plane/todos/completion_transaction.ts +530 -0
  230. loopx-1.2.1/loopx/control_plane/todos/completion_validation.py +761 -0
  231. loopx-1.2.1/loopx/control_plane/todos/completion_validation_plan.ts +157 -0
  232. loopx-1.2.1/loopx/control_plane/todos/completion_validation_store.py +187 -0
  233. loopx-1.2.1/loopx/control_plane/todos/durable_completion.py +331 -0
  234. loopx-1.2.1/loopx/control_plane/todos/goal_todo_projection.py +269 -0
  235. loopx-1.2.1/loopx/control_plane/todos/handoff_mode.py +418 -0
  236. loopx-1.2.1/loopx/control_plane/todos/handoff_mode_source.py +46 -0
  237. loopx-1.2.1/loopx/control_plane/todos/list_projection.py +510 -0
  238. loopx-1.2.1/loopx/control_plane/todos/markdown.py +286 -0
  239. loopx-1.2.1/loopx/control_plane/todos/provider_create.py +200 -0
  240. loopx-1.2.1/loopx/control_plane/todos/provider_handoff_mode.py +49 -0
  241. loopx-1.2.1/loopx/control_plane/todos/provider_terminal_lifecycle.py +634 -0
  242. loopx-1.2.1/loopx/control_plane/todos/provider_update.py +302 -0
  243. loopx-1.2.1/loopx/control_plane/todos/todo_index.py +255 -0
  244. loopx-1.2.1/loopx/control_plane/turn_driver/codex_cli.py +995 -0
  245. loopx-1.2.1/loopx/control_plane/turn_driver/driver.py +565 -0
  246. loopx-1.2.1/loopx/control_plane/turn_driver/executor.py +1511 -0
  247. loopx-1.2.1/loopx/control_plane/turn_driver/host_process.ts +132 -0
  248. loopx-1.2.1/loopx/control_plane/turn_driver/host_process_bridge.ts +27 -0
  249. loopx-1.2.1/loopx/control_plane/turn_driver/host_process_transport.py +129 -0
  250. loopx-1.2.1/loopx/control_plane/turn_driver/transaction.py +369 -0
  251. loopx-1.2.1/loopx/control_plane/turn_driver/turn_journal.ts +735 -0
  252. loopx-1.2.1/loopx/control_plane/turn_driver/turn_journal_attempt_contract.ts +57 -0
  253. loopx-1.2.1/loopx/control_plane/turn_driver/turn_journal_effect_readback.ts +55 -0
  254. loopx-1.2.1/loopx/control_plane/turn_driver/turn_journal_effects.ts +275 -0
  255. loopx-1.2.1/loopx/control_plane/turn_driver/turn_journal_runtime.py +189 -0
  256. loopx-1.2.1/loopx/control_plane/work_items/attention_queue.py +363 -0
  257. loopx-1.2.1/loopx/control_plane/work_items/external_progress_review.py +486 -0
  258. loopx-1.2.1/loopx/control_plane/work_items/progress_observation.py +636 -0
  259. loopx-1.2.1/loopx/control_plane/work_items/replan_semantics.ts +166 -0
  260. loopx-1.2.1/loopx/control_plane/work_items/task_lease_acquire.ts +1080 -0
  261. loopx-1.2.1/loopx/control_plane/work_items/task_lease_acquire_adapter.py +844 -0
  262. loopx-1.2.1/loopx/control_plane/work_items/task_lease_acquire_decision.ts +421 -0
  263. loopx-1.2.1/loopx/control_plane/work_items/task_lease_inspection.ts +116 -0
  264. loopx-1.2.1/loopx/control_plane/work_items/task_lease_lifecycle_decision.ts +332 -0
  265. loopx-1.2.1/loopx/control_plane/work_items/task_lease_repository.ts +28 -0
  266. loopx-1.2.1/loopx/control_plane/work_items/team_plan_adapter.py +153 -0
  267. loopx-1.2.1/loopx/doctor.py +1366 -0
  268. loopx-1.2.1/loopx/domain_packs/issue_fix.py +560 -0
  269. loopx-1.2.1/loopx/domain_state.py +128 -0
  270. loopx-1.2.1/loopx/dsh_goal_mode/turn_host_adapter.py +701 -0
  271. loopx-1.2.1/loopx/experiments/planner_worker/traex.py +461 -0
  272. loopx-1.2.1/loopx/extensions/lark/goal_channel_lifecycle.py +222 -0
  273. loopx-1.2.1/loopx/extensions/lark/manager_context.py +439 -0
  274. loopx-1.2.1/loopx/extensions/presentation.py +1148 -0
  275. loopx-1.2.1/loopx/file_lock.py +1048 -0
  276. loopx-1.2.1/loopx/global_registry.py +942 -0
  277. loopx-1.2.1/loopx/help_surface.py +616 -0
  278. loopx-1.2.1/loopx/history.py +981 -0
  279. loopx-1.2.1/loopx/kunluncode_goal_mode/runtime.py +709 -0
  280. loopx-1.2.1/loopx/lexical_retrieval.py +52 -0
  281. loopx-1.2.1/loopx/pi_goal_mode/README.md +157 -0
  282. loopx-1.2.1/loopx/pi_goal_mode/installation.py +113 -0
  283. loopx-1.2.1/loopx/presentation/renderers/status_markdown.py +1576 -0
  284. loopx-1.2.1/loopx/quota.py +1550 -0
  285. loopx-1.2.1/loopx/review_packet.py +331 -0
  286. loopx-1.2.1/loopx/rollout_event_log.py +598 -0
  287. loopx-1.2.1/loopx/self_update.py +1516 -0
  288. loopx-1.2.1/loopx/semantics/goal_instance_binding_inventory_v1.json +233 -0
  289. loopx-1.2.1/loopx/semantics/production.py +331 -0
  290. loopx-1.2.1/loopx/semantics/project_registry_io_manifest_v1.json +2009 -0
  291. loopx-1.2.1/loopx/semantics/vocabulary_v0.json +1168 -0
  292. loopx-1.2.1/loopx/slash_command_install.py +1521 -0
  293. loopx-1.2.1/loopx/state_migration.py +473 -0
  294. loopx-1.2.1/loopx/state_refresh.py +1615 -0
  295. loopx-1.2.1/loopx/status.py +1330 -0
  296. loopx-1.2.1/loopx/summary_all.py +842 -0
  297. loopx-1.2.1/loopx/thread_agent_binding.py +725 -0
  298. loopx-1.2.1/loopx/todos.py +2079 -0
  299. loopx-1.2.1/loopx/usage_goal.py +184 -0
  300. loopx-1.2.1/loopx/usage_ping.py +125 -0
  301. loopx-1.2.1/loopx/visible_governance.py +611 -0
  302. loopx-1.2.1/loopx/web/chat/asset-retention.json +35 -0
  303. loopx-1.2.1/loopx/web/chat/assets/index-BTr_8aHS.css +1 -0
  304. loopx-1.2.1/loopx/web/chat/assets/index-Bf4CE7pl.js +102 -0
  305. loopx-1.2.1/loopx/web/chat/bundle-manifest.json +399 -0
  306. loopx-1.2.1/loopx/web/chat/index.html +39 -0
  307. loopx-1.2.1/loopx/windows_install.py +459 -0
  308. loopx-1.2.1/loopx/workflow_skill_install.py +478 -0
  309. loopx-1.2.1/loopx.egg-info/PKG-INFO +872 -0
  310. loopx-1.2.1/loopx.egg-info/SOURCES.txt +1733 -0
  311. loopx-1.2.1/pyproject.toml +171 -0
  312. loopx-1.2.1/skills/loopx-pr-review/SKILL.md +180 -0
  313. loopx-1.2.1/skills/loopx-project/SKILL.md +1114 -0
  314. loopx-1.2.1/skills/loopx-self-repair/SKILL.md +157 -0
  315. loopx-1.2.1/skills/loopx-self-repair/references/pattern-lookup.md +45 -0
  316. loopx-1.2.1/skills/loopx-self-repair/references/repair-patterns.md +304 -0
  317. loopx-1.2.1/skills/loopx-self-repair/references/targeted-diagnostics.md +90 -0
  318. loopx-1.2.1/skills/loopx-self-repair/scripts/find_pattern.py +125 -0
  319. loopx-1.2.1/tests/test_capability_code_maps.py +52 -0
  320. loopx-1.2.1/tests/test_chat_agent.py +531 -0
  321. loopx-1.2.1/tests/test_chat_manager_inspection.py +419 -0
  322. loopx-1.2.1/tests/test_chat_queue_preparation.py +159 -0
  323. loopx-1.2.1/tests/test_chat_session_active_turn.py +1397 -0
  324. loopx-1.2.1/tests/test_chat_turn_steering.py +139 -0
  325. loopx-1.2.1/tests/test_contract_public_boundary_prefilter.py +112 -0
  326. loopx-1.2.1/tests/test_contributing_guide.py +75 -0
  327. loopx-1.2.1/tests/test_dco_workflow.py +272 -0
  328. loopx-1.2.1/tests/test_delegation_preflight.py +552 -0
  329. loopx-1.2.1/tests/test_dsh_goal_mode.py +1065 -0
  330. loopx-1.2.1/tests/test_file_lock.py +415 -0
  331. loopx-1.2.1/tests/test_global_registry_write_serialization.py +565 -0
  332. loopx-1.2.1/tests/test_handoff_fragments.py +522 -0
  333. loopx-1.2.1/tests/test_handoff_receiver.py +308 -0
  334. loopx-1.2.1/tests/test_history_index_write_serialization.py +249 -0
  335. loopx-1.2.1/tests/test_host_loop_activation.py +1247 -0
  336. loopx-1.2.1/tests/test_host_thread_activity.py +308 -0
  337. loopx-1.2.1/tests/test_kunluncode_goal_mode.py +1752 -0
  338. loopx-1.2.1/tests/test_lexical_retrieval.py +28 -0
  339. loopx-1.2.1/tests/test_loopx_text_io_utf8.py +159 -0
  340. loopx-1.2.1/tests/test_loopx_turn_codex_cli.py +1136 -0
  341. loopx-1.2.1/tests/test_loopx_turn_driver.py +3508 -0
  342. loopx-1.2.1/tests/test_loopx_turn_error_readback.py +55 -0
  343. loopx-1.2.1/tests/test_loopx_turn_executor.py +3222 -0
  344. loopx-1.2.1/tests/test_loopx_turn_journal_inspection.py +645 -0
  345. loopx-1.2.1/tests/test_manager_agent_discovery.py +118 -0
  346. loopx-1.2.1/tests/test_manager_context_handoff.py +632 -0
  347. loopx-1.2.1/tests/test_manager_ssh_evidence.py +802 -0
  348. loopx-1.2.1/tests/test_projection_envelope.py +316 -0
  349. loopx-1.2.1/tests/test_python_ci_workflow.py +393 -0
  350. loopx-1.2.1/tests/test_repair_pattern_lookup.py +143 -0
  351. loopx-1.2.1/tests/test_review_sla_report.py +230 -0
  352. loopx-1.2.1/tests/test_self_update_runtime_activation.py +800 -0
  353. loopx-1.2.1/tests/test_slash_command_install.py +1226 -0
  354. loopx-1.2.1/tests/test_thread_agent_binding.py +879 -0
  355. loopx-1.2.1/tests/test_turn_envelope.py +1163 -0
  356. loopx-1.2.1/tests/test_usage_collector.py +34 -0
  357. loopx-1.2.1/tests/test_usage_goal.py +189 -0
  358. loopx-1.2.1/tests/test_usage_ping.py +204 -0
  359. loopx-1.2.1/tests/test_windows_install.py +490 -0
  360. loopx-1.2.1/tests/test_workflow_skill_install.py +495 -0
  361. loopx-1.2.0/PKG-INFO +0 -866
  362. loopx-1.2.0/README.md +0 -835
  363. loopx-1.2.0/loopx/__init__.py +0 -5
  364. loopx-1.2.0/loopx/bootstrap.py +0 -683
  365. loopx-1.2.0/loopx/canary/maintainability_ratchet.py +0 -897
  366. loopx-1.2.0/loopx/canary/planner.py +0 -1987
  367. loopx-1.2.0/loopx/canary/qualification_profiles.py +0 -309
  368. loopx-1.2.0/loopx/capabilities/README.md +0 -142
  369. loopx-1.2.0/loopx/capabilities/agent_turn_recall/cli.py +0 -290
  370. loopx-1.2.0/loopx/capabilities/agent_turn_recall/runtime.py +0 -411
  371. loopx-1.2.0/loopx/capabilities/benchmark_toolkit/experiment_board.py +0 -1045
  372. loopx-1.2.0/loopx/capabilities/benchmark_toolkit/study_projection.py +0 -1382
  373. loopx-1.2.0/loopx/capabilities/configuration_ui.py +0 -626
  374. loopx-1.2.0/loopx/capabilities/decision_context/README.md +0 -431
  375. loopx-1.2.0/loopx/capabilities/decision_context/README.zh-CN.md +0 -356
  376. loopx-1.2.0/loopx/capabilities/decision_context/assembler.py +0 -852
  377. loopx-1.2.0/loopx/capabilities/decision_context/capture.py +0 -425
  378. loopx-1.2.0/loopx/capabilities/decision_context/cli.py +0 -453
  379. loopx-1.2.0/loopx/capabilities/decision_context/packets.py +0 -659
  380. loopx-1.2.0/loopx/capabilities/decision_context/runtime.py +0 -508
  381. loopx-1.2.0/loopx/capabilities/explore/result_log.py +0 -974
  382. loopx-1.2.0/loopx/capabilities/integration_branch/core.py +0 -916
  383. loopx-1.2.0/loopx/capabilities/issue_fix/cli_input.py +0 -87
  384. loopx-1.2.0/loopx/capabilities/issue_fix/discovered_issue_promotion.py +0 -947
  385. loopx-1.2.0/loopx/capabilities/issue_fix/outcome_projection.py +0 -1235
  386. loopx-1.2.0/loopx/capabilities/issue_fix/pr_monitor_materialization.py +0 -227
  387. loopx-1.2.0/loopx/capabilities/issue_fix/reviewer_recommendation.py +0 -1057
  388. loopx-1.2.0/loopx/capabilities/manager_context/README.md +0 -410
  389. loopx-1.2.0/loopx/capabilities/manager_context/__init__.py +0 -293
  390. loopx-1.2.0/loopx/capabilities/manager_context/answer_contract.py +0 -137
  391. loopx-1.2.0/loopx/capabilities/manager_context/evidence_export.py +0 -48
  392. loopx-1.2.0/loopx/capabilities/manager_context/inspection.py +0 -361
  393. loopx-1.2.0/loopx/capabilities/manager_context/skills/loopx-manager/SKILL.md +0 -211
  394. loopx-1.2.0/loopx/capabilities/manager_context/ssh_evidence.py +0 -762
  395. loopx-1.2.0/loopx/capabilities/manager_context/tracking.py +0 -210
  396. loopx-1.2.0/loopx/capabilities/material_lifecycle/_validation.py +0 -183
  397. loopx-1.2.0/loopx/capabilities/periodic_report/adapters.py +0 -948
  398. loopx-1.2.0/loopx/capabilities/periodic_report/bindings.py +0 -826
  399. loopx-1.2.0/loopx/capabilities/periodic_report/core.py +0 -759
  400. loopx-1.2.0/loopx/capabilities/pr_review_queue/README.md +0 -1017
  401. loopx-1.2.0/loopx/capabilities/pr_review_queue/result_check.py +0 -365
  402. loopx-1.2.0/loopx/capabilities/pr_review_queue/review_contract.py +0 -1295
  403. loopx-1.2.0/loopx/capabilities/progress_review/README.md +0 -240
  404. loopx-1.2.0/loopx/capabilities/progress_review/README.zh-CN.md +0 -133
  405. loopx-1.2.0/loopx/capabilities/repository_change_window/ledger.py +0 -854
  406. loopx-1.2.0/loopx/capabilities/reward_memory/README.md +0 -827
  407. loopx-1.2.0/loopx/capabilities/reward_memory/__init__.py +0 -107
  408. loopx-1.2.0/loopx/capabilities/reward_memory/application.py +0 -1018
  409. loopx-1.2.0/loopx/capabilities/reward_memory/runtime_hooks.py +0 -310
  410. loopx-1.2.0/loopx/chat_agent.py +0 -1081
  411. loopx-1.2.0/loopx/chat_configuration_api.py +0 -48
  412. loopx-1.2.0/loopx/chat_coordination.py +0 -129
  413. loopx-1.2.0/loopx/chat_goal_configuration_api.py +0 -795
  414. loopx-1.2.0/loopx/chat_goal_lifecycle_actions.py +0 -238
  415. loopx-1.2.0/loopx/chat_ingress.py +0 -91
  416. loopx-1.2.0/loopx/chat_manager.py +0 -972
  417. loopx-1.2.0/loopx/chat_manager_details.py +0 -84
  418. loopx-1.2.0/loopx/chat_providers.py +0 -428
  419. loopx-1.2.0/loopx/chat_runtime.py +0 -1566
  420. loopx-1.2.0/loopx/chat_server.py +0 -1524
  421. loopx-1.2.0/loopx/chat_status_api.py +0 -183
  422. loopx-1.2.0/loopx/chat_store.py +0 -1445
  423. loopx-1.2.0/loopx/chat_todo_actions.py +0 -225
  424. loopx-1.2.0/loopx/cli.py +0 -1018
  425. loopx-1.2.0/loopx/cli_commands/__init__.py +0 -297
  426. loopx-1.2.0/loopx/cli_commands/agent_context.py +0 -147
  427. loopx-1.2.0/loopx/cli_commands/authority_archive.py +0 -63
  428. loopx-1.2.0/loopx/cli_commands/canary.py +0 -707
  429. loopx-1.2.0/loopx/cli_commands/capability.py +0 -288
  430. loopx-1.2.0/loopx/cli_commands/lark_inbox.py +0 -788
  431. loopx-1.2.0/loopx/cli_commands/manager_inbox.py +0 -155
  432. loopx-1.2.0/loopx/cli_commands/quota.py +0 -779
  433. loopx-1.2.0/loopx/cli_commands/quota_action_selection.py +0 -346
  434. loopx-1.2.0/loopx/cli_commands/quota_context.py +0 -364
  435. loopx-1.2.0/loopx/cli_commands/quota_failure_report.py +0 -279
  436. loopx-1.2.0/loopx/cli_commands/registry_admin_configure.py +0 -477
  437. loopx-1.2.0/loopx/cli_commands/slash_commands.py +0 -163
  438. loopx-1.2.0/loopx/cli_commands/status.py +0 -897
  439. loopx-1.2.0/loopx/cli_commands/status_registration.py +0 -236
  440. loopx-1.2.0/loopx/cli_commands/summary_all.py +0 -265
  441. loopx-1.2.0/loopx/cli_commands/task_lease.py +0 -251
  442. loopx-1.2.0/loopx/cli_commands/todo.py +0 -714
  443. loopx-1.2.0/loopx/cli_commands/todo_argument_validation.py +0 -665
  444. loopx-1.2.0/loopx/cli_commands/todo_continuation.py +0 -179
  445. loopx-1.2.0/loopx/cli_commands/todo_registration.py +0 -479
  446. loopx-1.2.0/loopx/cli_commands/turn.py +0 -1100
  447. loopx-1.2.0/loopx/cli_commands/turn_rendering.py +0 -297
  448. loopx-1.2.0/loopx/cli_commands/turn_selection.py +0 -81
  449. loopx-1.2.0/loopx/cli_runtime.py +0 -386
  450. loopx-1.2.0/loopx/configuration_catalog.py +0 -957
  451. loopx-1.2.0/loopx/contract.py +0 -1112
  452. loopx-1.2.0/loopx/control_plane/agents/directory.py +0 -277
  453. loopx-1.2.0/loopx/control_plane/agents/management_projection.py +0 -739
  454. loopx-1.2.0/loopx/control_plane/agents/profile.py +0 -216
  455. loopx-1.2.0/loopx/control_plane/agents/supervisor_events.py +0 -474
  456. loopx-1.2.0/loopx/control_plane/agents/supervisor_inject.py +0 -204
  457. loopx-1.2.0/loopx/control_plane/collaboration/delegation.ts +0 -253
  458. loopx-1.2.0/loopx/control_plane/collaboration/delegation_context.py +0 -176
  459. loopx-1.2.0/loopx/control_plane/coordination/authority_archive.ts +0 -271
  460. loopx-1.2.0/loopx/control_plane/coordination/authority_store.ts +0 -187
  461. loopx-1.2.0/loopx/control_plane/coordination/authority_store_codec.ts +0 -136
  462. loopx-1.2.0/loopx/control_plane/coordination/executor.py +0 -1207
  463. loopx-1.2.0/loopx/control_plane/coordination/file_authority_store.ts +0 -539
  464. loopx-1.2.0/loopx/control_plane/coordination/file_provider.py +0 -309
  465. loopx-1.2.0/loopx/control_plane/coordination/goal_state_shadow.py +0 -99
  466. loopx-1.2.0/loopx/control_plane/coordination/head.py +0 -831
  467. loopx-1.2.0/loopx/control_plane/coordination/lease_acquisition_proof.ts +0 -65
  468. loopx-1.2.0/loopx/control_plane/coordination/legacy_writer_fence.py +0 -323
  469. loopx-1.2.0/loopx/control_plane/coordination/local_authority.py +0 -382
  470. loopx-1.2.0/loopx/control_plane/coordination/local_authority_archive.ts +0 -65
  471. loopx-1.2.0/loopx/control_plane/coordination/local_authority_runtime.ts +0 -1532
  472. loopx-1.2.0/loopx/control_plane/coordination/local_authority_shadow.ts +0 -1430
  473. loopx-1.2.0/loopx/control_plane/coordination/local_authority_shadow_adapter.py +0 -994
  474. loopx-1.2.0/loopx/control_plane/coordination/local_authority_shadow_observation.py +0 -479
  475. loopx-1.2.0/loopx/control_plane/coordination/local_authority_shadow_outbox.py +0 -1013
  476. loopx-1.2.0/loopx/control_plane/coordination/runtime_shadow.py +0 -724
  477. loopx-1.2.0/loopx/control_plane/coordination/runtime_shadow.ts +0 -358
  478. loopx-1.2.0/loopx/control_plane/coordination/runtime_shadow_writer_adapter.py +0 -228
  479. loopx-1.2.0/loopx/control_plane/coordination/sqlite_authority_migration.ts +0 -362
  480. loopx-1.2.0/loopx/control_plane/coordination/sqlite_authority_store.ts +0 -683
  481. loopx-1.2.0/loopx/control_plane/coordination/task_lease_lifecycle.ts +0 -169
  482. loopx-1.2.0/loopx/control_plane/coordination/task_lease_proof.ts +0 -60
  483. loopx-1.2.0/loopx/control_plane/coordination/task_lease_state.ts +0 -58
  484. loopx-1.2.0/loopx/control_plane/coordination/todo_deferred_reopen.ts +0 -65
  485. loopx-1.2.0/loopx/control_plane/coordination/todo_lifecycle_decision.ts +0 -599
  486. loopx-1.2.0/loopx/control_plane/coordination/todo_terminal_lifecycle.ts +0 -1525
  487. loopx-1.2.0/loopx/control_plane/coordination/todo_update.ts +0 -272
  488. loopx-1.2.0/loopx/control_plane/coordination/todo_update_admission.ts +0 -155
  489. loopx-1.2.0/loopx/control_plane/coordination/todo_update_intent.ts +0 -208
  490. loopx-1.2.0/loopx/control_plane/effect_runtime.py +0 -1040
  491. loopx-1.2.0/loopx/control_plane/effect_runtime_handlers.ts +0 -843
  492. loopx-1.2.0/loopx/control_plane/effect_runtime_io.ts +0 -495
  493. loopx-1.2.0/loopx/control_plane/effect_runtime_server.ts +0 -226
  494. loopx-1.2.0/loopx/control_plane/goals/activation_service.py +0 -523
  495. loopx-1.2.0/loopx/control_plane/goals/active_state_event_projection.py +0 -106
  496. loopx-1.2.0/loopx/control_plane/goals/artifact_lifecycle.py +0 -414
  497. loopx-1.2.0/loopx/control_plane/goals/checkpoint_context_io.py +0 -204
  498. loopx-1.2.0/loopx/control_plane/goals/configure_goal_service.py +0 -814
  499. loopx-1.2.0/loopx/control_plane/goals/deletion_service.py +0 -396
  500. loopx-1.2.0/loopx/control_plane/goals/global_registry_health.py +0 -199
  501. loopx-1.2.0/loopx/control_plane/goals/goal_amendment_proposal.py +0 -512
  502. loopx-1.2.0/loopx/control_plane/goals/goal_frontier/acceptance.py +0 -85
  503. loopx-1.2.0/loopx/control_plane/goals/shared_goal_alignment.py +0 -344
  504. loopx-1.2.0/loopx/control_plane/goals/shared_goal_work_source.py +0 -71
  505. loopx-1.2.0/loopx/control_plane/goals/vision_checkpoint.py +0 -181
  506. loopx-1.2.0/loopx/control_plane/goals/vision_checkpoint.ts +0 -840
  507. loopx-1.2.0/loopx/control_plane/heartbeat/agent.py +0 -173
  508. loopx-1.2.0/loopx/control_plane/heartbeat/budget.py +0 -78
  509. loopx-1.2.0/loopx/control_plane/heartbeat/builder.py +0 -655
  510. loopx-1.2.0/loopx/control_plane/heartbeat/rules.py +0 -99
  511. loopx-1.2.0/loopx/control_plane/heartbeat/task_body.py +0 -763
  512. loopx-1.2.0/loopx/control_plane/quota/cli_projection.py +0 -791
  513. loopx-1.2.0/loopx/control_plane/quota/codex_session_usage.py +0 -379
  514. loopx-1.2.0/loopx/control_plane/quota/error_codes.py +0 -220
  515. loopx-1.2.0/loopx/control_plane/quota/heartbeat_receipt.py +0 -582
  516. loopx-1.2.0/loopx/control_plane/quota/live_decision.py +0 -691
  517. loopx-1.2.0/loopx/control_plane/quota/monitor_poll.py +0 -927
  518. loopx-1.2.0/loopx/control_plane/quota/monitor_poll_commit.ts +0 -2295
  519. loopx-1.2.0/loopx/control_plane/quota/projection_repair.py +0 -265
  520. loopx-1.2.0/loopx/control_plane/quota/settlement.py +0 -392
  521. loopx-1.2.0/loopx/control_plane/quota/settlement_phase.ts +0 -91
  522. loopx-1.2.0/loopx/control_plane/quota/settlement_readback.ts +0 -1066
  523. loopx-1.2.0/loopx/control_plane/quota/slot_accounting.py +0 -1031
  524. loopx-1.2.0/loopx/control_plane/quota/turn_envelope.ts +0 -878
  525. loopx-1.2.0/loopx/control_plane/quota/unsettled_host_turn.py +0 -351
  526. loopx-1.2.0/loopx/control_plane/quota/unsettled_host_turn_recovery.ts +0 -545
  527. loopx-1.2.0/loopx/control_plane/rollout_receipt_log.ts +0 -160
  528. loopx-1.2.0/loopx/control_plane/runtime/event_store_migration_bridge.py +0 -196
  529. loopx-1.2.0/loopx/control_plane/runtime/public_safety.py +0 -213
  530. loopx-1.2.0/loopx/control_plane/runtime/run_compaction.py +0 -375
  531. loopx-1.2.0/loopx/control_plane/runtime/run_context_retention.py +0 -307
  532. loopx-1.2.0/loopx/control_plane/runtime/run_index_rebuild.py +0 -263
  533. loopx-1.2.0/loopx/control_plane/runtime/status_projection_cache.py +0 -244
  534. loopx-1.2.0/loopx/control_plane/runtime/stride_observation.py +0 -165
  535. loopx-1.2.0/loopx/control_plane/scheduler/provider_monitor_poll.py +0 -66
  536. loopx-1.2.0/loopx/control_plane/status/active_state_projection.py +0 -105
  537. loopx-1.2.0/loopx/control_plane/status/collection.py +0 -266
  538. loopx-1.2.0/loopx/control_plane/status/goal_attention_projection.py +0 -157
  539. loopx-1.2.0/loopx/control_plane/status/lifecycle_projection.py +0 -110
  540. loopx-1.2.0/loopx/control_plane/subagent_context.ts +0 -189
  541. loopx-1.2.0/loopx/control_plane/testing/authority_e2e_fixtures.py +0 -635
  542. loopx-1.2.0/loopx/control_plane/testing/authority_e2e_ladder.py +0 -1265
  543. loopx-1.2.0/loopx/control_plane/testing/authority_e2e_row_support.py +0 -192
  544. loopx-1.2.0/loopx/control_plane/testing/authority_e2e_rows_stage2c.py +0 -492
  545. loopx-1.2.0/loopx/control_plane/testing/authority_e2e_rows_stage2c2.py +0 -1242
  546. loopx-1.2.0/loopx/control_plane/testing/cli_output_budget.py +0 -925
  547. loopx-1.2.0/loopx/control_plane/testing/cli_output_differential.py +0 -837
  548. loopx-1.2.0/loopx/control_plane/testing/cli_output_semantics.py +0 -191
  549. loopx-1.2.0/loopx/control_plane/testing/replan_vision_closeout_behavior.py +0 -196
  550. loopx-1.2.0/loopx/control_plane/todos/active_state_todos.py +0 -211
  551. loopx-1.2.0/loopx/control_plane/todos/completion_fence.ts +0 -312
  552. loopx-1.2.0/loopx/control_plane/todos/completion_policy.py +0 -198
  553. loopx-1.2.0/loopx/control_plane/todos/completion_transaction.ts +0 -530
  554. loopx-1.2.0/loopx/control_plane/todos/completion_validation.py +0 -806
  555. loopx-1.2.0/loopx/control_plane/todos/completion_validation_plan.ts +0 -157
  556. loopx-1.2.0/loopx/control_plane/todos/completion_validation_store.py +0 -129
  557. loopx-1.2.0/loopx/control_plane/todos/durable_completion.py +0 -352
  558. loopx-1.2.0/loopx/control_plane/todos/event_writeback.py +0 -720
  559. loopx-1.2.0/loopx/control_plane/todos/goal_todo_projection.py +0 -409
  560. loopx-1.2.0/loopx/control_plane/todos/handoff_mode.py +0 -429
  561. loopx-1.2.0/loopx/control_plane/todos/handoff_mode_source.py +0 -61
  562. loopx-1.2.0/loopx/control_plane/todos/list_projection.py +0 -549
  563. loopx-1.2.0/loopx/control_plane/todos/markdown.py +0 -283
  564. loopx-1.2.0/loopx/control_plane/todos/provider_create.py +0 -169
  565. loopx-1.2.0/loopx/control_plane/todos/provider_handoff_mode.py +0 -46
  566. loopx-1.2.0/loopx/control_plane/todos/provider_terminal_lifecycle.py +0 -633
  567. loopx-1.2.0/loopx/control_plane/todos/provider_update.py +0 -287
  568. loopx-1.2.0/loopx/control_plane/todos/todo_index.py +0 -243
  569. loopx-1.2.0/loopx/control_plane/turn_driver/codex_cli.py +0 -951
  570. loopx-1.2.0/loopx/control_plane/turn_driver/driver.py +0 -561
  571. loopx-1.2.0/loopx/control_plane/turn_driver/executor.py +0 -1477
  572. loopx-1.2.0/loopx/control_plane/turn_driver/transaction.py +0 -364
  573. loopx-1.2.0/loopx/control_plane/turn_driver/turn_journal.ts +0 -720
  574. loopx-1.2.0/loopx/control_plane/turn_driver/turn_journal_effects.ts +0 -308
  575. loopx-1.2.0/loopx/control_plane/turn_driver/turn_journal_runtime.py +0 -182
  576. loopx-1.2.0/loopx/control_plane/work_items/attention_queue.py +0 -345
  577. loopx-1.2.0/loopx/control_plane/work_items/external_progress_review.py +0 -374
  578. loopx-1.2.0/loopx/control_plane/work_items/progress_observation.py +0 -634
  579. loopx-1.2.0/loopx/control_plane/work_items/replan_semantics.ts +0 -157
  580. loopx-1.2.0/loopx/control_plane/work_items/task_lease_acquire.ts +0 -1078
  581. loopx-1.2.0/loopx/control_plane/work_items/task_lease_acquire_adapter.py +0 -889
  582. loopx-1.2.0/loopx/control_plane/work_items/task_lease_acquire_decision.ts +0 -407
  583. loopx-1.2.0/loopx/control_plane/work_items/task_lease_inspection.ts +0 -113
  584. loopx-1.2.0/loopx/control_plane/work_items/task_lease_lifecycle_decision.ts +0 -324
  585. loopx-1.2.0/loopx/control_plane/work_items/team_plan_adapter.py +0 -153
  586. loopx-1.2.0/loopx/doctor.py +0 -1351
  587. loopx-1.2.0/loopx/domain_packs/issue_fix.py +0 -560
  588. loopx-1.2.0/loopx/domain_state.py +0 -128
  589. loopx-1.2.0/loopx/dsh_goal_mode/turn_host_adapter.py +0 -695
  590. loopx-1.2.0/loopx/event_sourced_state.py +0 -1049
  591. loopx-1.2.0/loopx/experiments/planner_worker/traex.py +0 -461
  592. loopx-1.2.0/loopx/extensions/lark/goal_channel_lifecycle.py +0 -218
  593. loopx-1.2.0/loopx/extensions/lark/manager_context.py +0 -437
  594. loopx-1.2.0/loopx/extensions/presentation.py +0 -1144
  595. loopx-1.2.0/loopx/file_lock.py +0 -1020
  596. loopx-1.2.0/loopx/global_registry.py +0 -864
  597. loopx-1.2.0/loopx/help_surface.py +0 -611
  598. loopx-1.2.0/loopx/history.py +0 -979
  599. loopx-1.2.0/loopx/kunluncode_goal_mode/runtime.py +0 -644
  600. loopx-1.2.0/loopx/pi_goal_mode/README.md +0 -145
  601. loopx-1.2.0/loopx/presentation/renderers/status_markdown.py +0 -1556
  602. loopx-1.2.0/loopx/quota.py +0 -1528
  603. loopx-1.2.0/loopx/review_packet.py +0 -788
  604. loopx-1.2.0/loopx/rollout_event_log.py +0 -592
  605. loopx-1.2.0/loopx/self_update.py +0 -1510
  606. loopx-1.2.0/loopx/semantics/goal_instance_binding_inventory_v1.json +0 -231
  607. loopx-1.2.0/loopx/semantics/production.py +0 -318
  608. loopx-1.2.0/loopx/semantics/project_registry_io_manifest_v1.json +0 -1889
  609. loopx-1.2.0/loopx/semantics/vocabulary_v0.json +0 -1167
  610. loopx-1.2.0/loopx/slash_command_install.py +0 -1505
  611. loopx-1.2.0/loopx/state_migration.py +0 -564
  612. loopx-1.2.0/loopx/state_refresh.py +0 -1580
  613. loopx-1.2.0/loopx/status.py +0 -1326
  614. loopx-1.2.0/loopx/summary_all.py +0 -722
  615. loopx-1.2.0/loopx/thread_agent_binding.py +0 -642
  616. loopx-1.2.0/loopx/todos.py +0 -2161
  617. loopx-1.2.0/loopx/visible_governance.py +0 -684
  618. loopx-1.2.0/loopx/web/chat/asset-retention.json +0 -36
  619. loopx-1.2.0/loopx/web/chat/assets/index-C6Jsf2dJ.js +0 -137
  620. loopx-1.2.0/loopx/web/chat/assets/index-DqTQqqop.css +0 -1
  621. loopx-1.2.0/loopx/web/chat/assets/index-Dw5XdTH0.js +0 -137
  622. loopx-1.2.0/loopx/web/chat/bundle-manifest.json +0 -362
  623. loopx-1.2.0/loopx/web/chat/index.html +0 -39
  624. loopx-1.2.0/loopx/windows_install.py +0 -415
  625. loopx-1.2.0/loopx/workflow_skill_install.py +0 -467
  626. loopx-1.2.0/loopx.egg-info/PKG-INFO +0 -866
  627. loopx-1.2.0/loopx.egg-info/SOURCES.txt +0 -1671
  628. loopx-1.2.0/pyproject.toml +0 -166
  629. loopx-1.2.0/skills/loopx-pr-review/SKILL.md +0 -180
  630. loopx-1.2.0/skills/loopx-project/SKILL.md +0 -1087
  631. loopx-1.2.0/skills/loopx-self-repair/SKILL.md +0 -158
  632. loopx-1.2.0/skills/loopx-self-repair/references/repair-patterns.md +0 -300
  633. loopx-1.2.0/tests/test_chat_agent.py +0 -444
  634. loopx-1.2.0/tests/test_chat_manager_inspection.py +0 -410
  635. loopx-1.2.0/tests/test_chat_session_active_turn.py +0 -1327
  636. loopx-1.2.0/tests/test_dco_workflow.py +0 -163
  637. loopx-1.2.0/tests/test_delegation_preflight.py +0 -522
  638. loopx-1.2.0/tests/test_dsh_goal_mode.py +0 -1040
  639. loopx-1.2.0/tests/test_event_sourced_state_store.py +0 -226
  640. loopx-1.2.0/tests/test_file_lock.py +0 -364
  641. loopx-1.2.0/tests/test_global_registry_write_serialization.py +0 -448
  642. loopx-1.2.0/tests/test_history_index_write_serialization.py +0 -129
  643. loopx-1.2.0/tests/test_host_loop_activation.py +0 -1244
  644. loopx-1.2.0/tests/test_kunluncode_goal_mode.py +0 -1618
  645. loopx-1.2.0/tests/test_loopx_turn_codex_cli.py +0 -969
  646. loopx-1.2.0/tests/test_loopx_turn_driver.py +0 -3463
  647. loopx-1.2.0/tests/test_loopx_turn_executor.py +0 -2966
  648. loopx-1.2.0/tests/test_loopx_turn_journal_inspection.py +0 -618
  649. loopx-1.2.0/tests/test_manager_context_handoff.py +0 -505
  650. loopx-1.2.0/tests/test_manager_ssh_evidence.py +0 -790
  651. loopx-1.2.0/tests/test_nokv_shadow_provider_probes.py +0 -121
  652. loopx-1.2.0/tests/test_python_ci_workflow.py +0 -333
  653. loopx-1.2.0/tests/test_self_update_runtime_activation.py +0 -781
  654. loopx-1.2.0/tests/test_slash_command_install.py +0 -1028
  655. loopx-1.2.0/tests/test_thread_agent_binding.py +0 -690
  656. loopx-1.2.0/tests/test_turn_envelope.py +0 -1162
  657. loopx-1.2.0/tests/test_windows_install.py +0 -427
  658. loopx-1.2.0/tests/test_workflow_skill_install.py +0 -477
  659. {loopx-1.2.0 → loopx-1.2.1}/LICENSE +0 -0
  660. {loopx-1.2.0 → loopx-1.2.1}/LICENSE-MIT +0 -0
  661. {loopx-1.2.0 → loopx-1.2.1}/MANIFEST.in +0 -0
  662. {loopx-1.2.0 → loopx-1.2.1}/NOTICE +0 -0
  663. {loopx-1.2.0 → loopx-1.2.1}/loopx/activation_qualification.py +0 -0
  664. {loopx-1.2.0 → loopx-1.2.1}/loopx/agent_onboarding.py +0 -0
  665. {loopx-1.2.0 → loopx-1.2.1}/loopx/agent_registry.py +0 -0
  666. {loopx-1.2.0 → loopx-1.2.1}/loopx/agy_goal_mode/README.md +0 -0
  667. {loopx-1.2.0 → loopx-1.2.1}/loopx/agy_goal_mode/__init__.py +0 -0
  668. {loopx-1.2.0 → loopx-1.2.1}/loopx/ark_managed_agent_host.py +0 -0
  669. {loopx-1.2.0 → loopx-1.2.1}/loopx/attached_session.py +0 -0
  670. {loopx-1.2.0 → loopx-1.2.1}/loopx/attached_session_api.py +0 -0
  671. {loopx-1.2.0 → loopx-1.2.1}/loopx/authority.py +0 -0
  672. {loopx-1.2.0 → loopx-1.2.1}/loopx/bootstrap_command_pack.py +0 -0
  673. {loopx-1.2.0 → loopx-1.2.1}/loopx/boundary_authority.py +0 -0
  674. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/__init__.py +0 -0
  675. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/package_profiles.py +0 -0
  676. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/premerge.py +0 -0
  677. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/quality_surface_catalog.py +0 -0
  678. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/release_profiles.py +0 -0
  679. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/runner.py +0 -0
  680. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/smoke_health.py +0 -0
  681. {loopx-1.2.0 → loopx-1.2.1}/loopx/canary/smoke_profiles.py +0 -0
  682. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/__init__.py +0 -0
  683. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/agent_turn_recall/README.md +0 -0
  684. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/agent_turn_recall/__init__.py +0 -0
  685. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/agent_turn_recall/catalog_entry.py +0 -0
  686. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/agent_turn_recall/core.py +0 -0
  687. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/README.md +0 -0
  688. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/__init__.py +0 -0
  689. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/adaptive_concurrency.py +0 -0
  690. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/artifacts.py +0 -0
  691. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/behavior_finding.py +0 -0
  692. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/catalog_entry.py +0 -0
  693. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/concurrency_envelope.py +0 -0
  694. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/container_binding.py +0 -0
  695. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/continuation.py +0 -0
  696. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/environment_access.py +0 -0
  697. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/factorial_contrast.py +0 -0
  698. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/four_arm_contract.py +0 -0
  699. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/integrity.py +0 -0
  700. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/native_codex_goal.py +0 -0
  701. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/native_codex_isolation.py +0 -0
  702. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/native_codex_profile.py +0 -0
  703. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/provider_gateway.py +0 -0
  704. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/public_trajectory.py +0 -0
  705. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/reward_contract.py +0 -0
  706. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/run_permissions.py +0 -0
  707. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/runtime_continuity.py +0 -0
  708. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/runtime_observation.py +0 -0
  709. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/source_revision_fence.py +0 -0
  710. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/traex_evidence.py +0 -0
  711. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/benchmark_toolkit/treatment_continuation.py +0 -0
  712. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/catalog.py +0 -0
  713. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/README.md +0 -0
  714. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/__init__.py +0 -0
  715. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/catalog_entry.py +0 -0
  716. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/cli.py +0 -0
  717. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/context.py +0 -0
  718. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/goal_configuration.py +0 -0
  719. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/machine_defaults.py +0 -0
  720. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/oracles.py +0 -0
  721. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/policy.py +0 -0
  722. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/receipt.py +0 -0
  723. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/result.py +0 -0
  724. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/scope.py +0 -0
  725. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/change_quality/shadow.py +0 -0
  726. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/connector_registry/README.md +0 -0
  727. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/connector_registry/__init__.py +0 -0
  728. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/connector_registry/catalog_entry.py +0 -0
  729. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/connector_registry/cli.py +0 -0
  730. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/connector_registry/core.py +0 -0
  731. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/connector_registry/tests/test_connector_registry.py +0 -0
  732. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/README.md +0 -0
  733. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/__init__.py +0 -0
  734. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/catalog_entry.py +0 -0
  735. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/cli.py +0 -0
  736. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/connector_packets.py +0 -0
  737. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/experiences/x-composer-preflight-v1.json +0 -0
  738. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/item_lifecycle.py +0 -0
  739. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/layout.py +0 -0
  740. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/markdown.py +0 -0
  741. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/schemas.py +0 -0
  742. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/social_browser_x.py +0 -0
  743. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/surface.py +0 -0
  744. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/content_ops/templates/layout-catalog-v0.json +0 -0
  745. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/context_providers/__init__.py +0 -0
  746. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/context_providers/base.py +0 -0
  747. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/context_providers/factory.py +0 -0
  748. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/context_providers/openviking.py +0 -0
  749. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/context_providers/service_ownership.py +0 -0
  750. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/__init__.py +0 -0
  751. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/architecture.py +0 -0
  752. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/capture_recovery.py +0 -0
  753. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/catalog_entry.py +0 -0
  754. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/cursor_commit.py +0 -0
  755. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/extension_provider.py +0 -0
  756. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/outcome_feedback.py +0 -0
  757. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/private_state.py +0 -0
  758. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/profile.py +0 -0
  759. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/providers.py +0 -0
  760. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/review_settlement.py +0 -0
  761. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/decision_context/sources.py +0 -0
  762. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/deep_research/README.md +0 -0
  763. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/deep_research/__init__.py +0 -0
  764. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/deep_research/catalog_entry.py +0 -0
  765. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/deep_research/runtime.py +0 -0
  766. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/documentation.py +0 -0
  767. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/README.md +0 -0
  768. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/README.zh-CN.md +0 -0
  769. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/__init__.py +0 -0
  770. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/activation.py +0 -0
  771. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/adaptive_replay_planner.py +0 -0
  772. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/catalog_entry.py +0 -0
  773. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/child_replay_runtime.py +0 -0
  774. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/composition_frontier.py +0 -0
  775. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/counterfactual_runtime.py +0 -0
  776. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/episode_runtime.py +0 -0
  777. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/harness_checkpoint.py +0 -0
  778. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/harness_gate.py +0 -0
  779. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/harness_runtime.py +0 -0
  780. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/replay_metrics.py +0 -0
  781. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/replay_runtime.py +0 -0
  782. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/resource_portfolio.py +0 -0
  783. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/router_state.py +0 -0
  784. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/source_history_reconcile.py +0 -0
  785. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/speculative_scheduler.py +0 -0
  786. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/todo_branch_plan.py +0 -0
  787. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/todo_evidence.py +0 -0
  788. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/trace_runtime.py +0 -0
  789. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/explore/worker_branch_plan.py +0 -0
  790. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/external_research/README.md +0 -0
  791. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/external_research/__init__.py +0 -0
  792. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/external_research/catalog_entry.py +0 -0
  793. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/external_research/cli.py +0 -0
  794. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/integration_branch/README.md +0 -0
  795. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/integration_branch/__init__.py +0 -0
  796. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/integration_branch/catalog_entry.py +0 -0
  797. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/integration_branch/cli.py +0 -0
  798. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/README.md +0 -0
  799. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/README.zh-CN.md +0 -0
  800. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/__init__.py +0 -0
  801. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/acceptance_loop.py +0 -0
  802. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/candidate_evidence.py +0 -0
  803. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/candidate_preflight.py +0 -0
  804. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/catalog_entry.py +0 -0
  805. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/cli.py +0 -0
  806. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/content_ops_cli.py +0 -0
  807. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/openviking-pilot-handoff.md +0 -0
  808. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-acceptance-loop-v0.md +0 -0
  809. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-discovered-issue-promotion-v0.md +0 -0
  810. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-metrics-projection-v0.md +0 -0
  811. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-notification-sinks-v0.md +0 -0
  812. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-recommendation-v0.md +0 -0
  813. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-request-v0.md +0 -0
  814. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-workflow-contract-v0.md +0 -0
  815. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/docs/state-kernel-domain-state-case-study.zh-CN.md +0 -0
  816. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/explore_projection.py +0 -0
  817. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/feasibility.py +0 -0
  818. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/github_public.py +0 -0
  819. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/intake_surface.py +0 -0
  820. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/metadata_preview.py +0 -0
  821. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/metrics_projection.py +0 -0
  822. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/metrics_supplement.py +0 -0
  823. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/metrics_supplement_cli.py +0 -0
  824. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/periodic_report.py +0 -0
  825. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/pr_description.py +0 -0
  826. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/pr_gate_reconcile.py +0 -0
  827. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/pr_gate_reconcile_cli.py +0 -0
  828. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/pr_lifecycle.py +0 -0
  829. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/pr_lifecycle_rollout.py +0 -0
  830. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/pr_review_ack.py +0 -0
  831. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/provider_hooks.py +0 -0
  832. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/repository_commit_evidence.py +0 -0
  833. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/repository_context.py +0 -0
  834. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/repository_memory.py +0 -0
  835. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/repository_memory_provider.py +0 -0
  836. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/repository_snapshot.py +0 -0
  837. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/reviewer_cli.py +0 -0
  838. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/reviewer_notification.py +0 -0
  839. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/reviewer_notification_drain.py +0 -0
  840. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/reviewer_request.py +0 -0
  841. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/reward_memory.py +0 -0
  842. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/issue_fix/workflow_plan.py +0 -0
  843. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/machine_configuration/__init__.py +0 -0
  844. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/machine_configuration/builtins.py +0 -0
  845. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/machine_configuration/cli.py +0 -0
  846. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/machine_configuration/contract.py +0 -0
  847. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/machine_configuration/store.py +0 -0
  848. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/manager_context/presentation.py +0 -0
  849. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/manager_context/roundtrip.py +0 -0
  850. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/manager_context/team_plan.py +0 -0
  851. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/manager_runtime/__init__.py +0 -0
  852. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/manager_runtime/machine_profile.py +0 -0
  853. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/README.md +0 -0
  854. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/README.zh-CN.md +0 -0
  855. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/__init__.py +0 -0
  856. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/apply.py +0 -0
  857. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/architecture.py +0 -0
  858. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/catalog_entry.py +0 -0
  859. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/cli.py +0 -0
  860. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/decision_planning.py +0 -0
  861. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/explore_execution.py +0 -0
  862. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/intake.py +0 -0
  863. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/inventory.py +0 -0
  864. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/lifecycle.py +0 -0
  865. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/preparation.py +0 -0
  866. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/project_skill.py +0 -0
  867. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/ranking.py +0 -0
  868. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/readable_projection.py +0 -0
  869. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/rebuild.py +0 -0
  870. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/material_lifecycle/settlement.py +0 -0
  871. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/multi_subagent/__init__.py +0 -0
  872. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/multi_subagent/codex_host_capacity.py +0 -0
  873. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/README.md +0 -0
  874. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/__init__.py +0 -0
  875. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/archive.py +0 -0
  876. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/audience.py +0 -0
  877. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/cadence.py +0 -0
  878. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/cadence_journal.py +0 -0
  879. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/cadence_runtime.py +0 -0
  880. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/catalog_entry.py +0 -0
  881. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/cli.py +0 -0
  882. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/extension_envelope.py +0 -0
  883. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/goal_configuration.py +0 -0
  884. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/incremental.py +0 -0
  885. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/machine_defaults.py +0 -0
  886. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/machine_store.py +0 -0
  887. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/pending_intent.py +0 -0
  888. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/post_writeback_hook.py +0 -0
  889. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/presets.py +0 -0
  890. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/profile.py +0 -0
  891. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/project_progress.py +0 -0
  892. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/project_progress_snapshot.py +0 -0
  893. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/request_action.py +0 -0
  894. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/runtime_producer.py +0 -0
  895. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/stage_completion.py +0 -0
  896. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/todo_source.py +0 -0
  897. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/triggers.py +0 -0
  898. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/periodic_report/workspace.py +0 -0
  899. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/__init__.py +0 -0
  900. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/catalog_entry.py +0 -0
  901. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/check_attempts.py +0 -0
  902. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/core.py +0 -0
  903. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/github_source.py +0 -0
  904. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/goal_configuration.py +0 -0
  905. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/machine_defaults.py +0 -0
  906. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/merge_readiness.py +0 -0
  907. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/readiness_observation.py +0 -0
  908. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/review_body.py +0 -0
  909. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/scheduling.py +0 -0
  910. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/pr_review_queue/selection_execution.py +0 -0
  911. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/progress_review/__init__.py +0 -0
  912. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/progress_review/catalog_entry.py +0 -0
  913. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/progress_review/context.py +0 -0
  914. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/progress_review/goal_configuration.py +0 -0
  915. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/progress_review/policy.py +0 -0
  916. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/progress_review/receipt.py +0 -0
  917. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/project_skill_delivery/README.md +0 -0
  918. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/project_skill_delivery/__init__.py +0 -0
  919. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/project_skill_delivery/catalog_entry.py +0 -0
  920. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/project_skill_delivery/cli.py +0 -0
  921. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/project_skill_delivery/core.py +0 -0
  922. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/public_safe_outbound/README.md +0 -0
  923. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/public_safe_outbound/__init__.py +0 -0
  924. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/public_safe_outbound/catalog_entry.py +0 -0
  925. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/public_safe_outbound/scan_cli.py +0 -0
  926. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/public_safe_outbound/scanner.py +0 -0
  927. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/public_safe_outbound/tests/test_scanner.py +0 -0
  928. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/registry.py +0 -0
  929. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/README.md +0 -0
  930. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/README.zh-CN.md +0 -0
  931. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/__init__.py +0 -0
  932. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/catalog_entry.py +0 -0
  933. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/envelope.py +0 -0
  934. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/fixture.py +0 -0
  935. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/intake.py +0 -0
  936. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/ledger.py +0 -0
  937. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/projection.py +0 -0
  938. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reliability_diagnostics/receipt.py +0 -0
  939. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/README.md +0 -0
  940. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/__init__.py +0 -0
  941. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/catalog_entry.py +0 -0
  942. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/cli.py +0 -0
  943. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/git_hook.py +0 -0
  944. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/interaction_hook.py +0 -0
  945. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/policy.py +0 -0
  946. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/repository_change_window/repository.py +0 -0
  947. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/README.zh-CN.md +0 -0
  948. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/architecture.py +0 -0
  949. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/candidate_review.py +0 -0
  950. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/catalog_entry.py +0 -0
  951. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/cli.py +0 -0
  952. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/codex_app_outcome.py +0 -0
  953. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/configuration.py +0 -0
  954. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/dogfood.py +0 -0
  955. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/evaluation.py +0 -0
  956. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/evaluation_fixtures.py +0 -0
  957. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/experience_quality.py +0 -0
  958. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/experiment.py +0 -0
  959. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/feedback_hint.py +0 -0
  960. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/health.py +0 -0
  961. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/ingestion.py +0 -0
  962. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/memory_utility.py +0 -0
  963. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/outbound.py +0 -0
  964. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/outcome_lifecycle.py +0 -0
  965. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/registry.py +0 -0
  966. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/reward_memory/scoped_feedback.py +0 -0
  967. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/semantic_preference/README.md +0 -0
  968. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/semantic_preference/__init__.py +0 -0
  969. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/semantic_preference/catalog_entry.py +0 -0
  970. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/semantic_preference/cli.py +0 -0
  971. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/semantic_preference/contract.py +0 -0
  972. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/semantic_preference/docs/openviking-project-peer.md +0 -0
  973. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/semantic_preference/reward_memory.py +0 -0
  974. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/steward_executor/__init__.py +0 -0
  975. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/steward_executor/allocation.py +0 -0
  976. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/steward_executor/machine_defaults.py +0 -0
  977. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/todo_replan_cadence/__init__.py +0 -0
  978. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/todo_replan_cadence/goal_configuration.py +0 -0
  979. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/todo_replan_cadence/machine_defaults.py +0 -0
  980. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/README.md +0 -0
  981. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/__init__.py +0 -0
  982. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/catalog_entry.py +0 -0
  983. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/cli.py +0 -0
  984. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/docs/agent-reach-ops-source-map.md +0 -0
  985. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/docs/finance-market-snapshot-probe.md +0 -0
  986. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/finance_extension_migration.py +0 -0
  987. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/install_check.py +0 -0
  988. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/planner.py +0 -0
  989. {loopx-1.2.0 → loopx-1.2.1}/loopx/capabilities/value_connectors/source_map.py +0 -0
  990. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat.py +0 -0
  991. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_acp.py +0 -0
  992. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_action_normalization.py +0 -0
  993. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_action_store.py +0 -0
  994. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_actions.py +0 -0
  995. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_attachments.py +0 -0
  996. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_automation_cadence_api.py +0 -0
  997. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_codex_goal.py +0 -0
  998. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_completed_todos.py +0 -0
  999. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_dsh.py +0 -0
  1000. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_endpoint_catalog.py +0 -0
  1001. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_endpoints.py +0 -0
  1002. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_event_cache.py +0 -0
  1003. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_goal_subagent_api.py +0 -0
  1004. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_lark_api.py +0 -0
  1005. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_loopx_mode.py +0 -0
  1006. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_machine_configuration_api.py +0 -0
  1007. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_manager_context.py +0 -0
  1008. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_manager_history.py +0 -0
  1009. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_monitor_actions.py +0 -0
  1010. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_operator_provider_api.py +0 -0
  1011. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_session_open.py +0 -0
  1012. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_ssh_source_api.py +0 -0
  1013. {loopx-1.2.0 → loopx-1.2.1}/loopx/chat_workspace_directory.py +0 -0
  1014. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/README.md +0 -0
  1015. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/__init__.py +0 -0
  1016. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/hooks/goal_policy.py +0 -0
  1017. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/hooks/goal_state.py +0 -0
  1018. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/mcp/loopx_mcp.py +0 -0
  1019. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/scripts/connect.py +0 -0
  1020. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/scripts/goalmode_cmd.py +0 -0
  1021. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/scripts/install.py +0 -0
  1022. {loopx-1.2.0 → loopx-1.2.1}/loopx/claude_goal_mode/statusline/goal_status.py +0 -0
  1023. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/_host_thread.py +0 -0
  1024. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/agent_capabilities.py +0 -0
  1025. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/agent_directory.py +0 -0
  1026. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/authority_shadow.py +0 -0
  1027. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/automation_cadence.py +0 -0
  1028. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/automation_prompts.py +0 -0
  1029. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/benchmark_boundary.py +0 -0
  1030. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/benchmark_concurrency.py +0 -0
  1031. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/benchmark_continuation.py +0 -0
  1032. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/benchmark_dispatch.py +0 -0
  1033. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/benchmark_experiment_board.py +0 -0
  1034. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/benchmark_study.py +0 -0
  1035. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/bootstrap_connect.py +0 -0
  1036. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/canary_release_qualification.py +0 -0
  1037. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/coordination_shadow.py +0 -0
  1038. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/dash.py +0 -0
  1039. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/deepresearch.py +0 -0
  1040. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/delegation.py +0 -0
  1041. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/doctor.py +0 -0
  1042. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/dreaming.py +0 -0
  1043. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/evidence_log.py +0 -0
  1044. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/explore.py +0 -0
  1045. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/explore_feishu_commands.py +0 -0
  1046. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/explore_planning_commands.py +0 -0
  1047. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/extension.py +0 -0
  1048. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/first_run_report.py +0 -0
  1049. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/goal_acceptance.py +0 -0
  1050. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/goal_actions.py +0 -0
  1051. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/goal_amendment_proposal.py +0 -0
  1052. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/goal_channel.py +0 -0
  1053. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/goal_channel_operation.py +0 -0
  1054. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/goal_channel_runtime.py +0 -0
  1055. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/goal_lifecycle.py +0 -0
  1056. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/handoff_mode.py +0 -0
  1057. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/history.py +0 -0
  1058. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/host_mode_plan.py +0 -0
  1059. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/lark_kanban.py +0 -0
  1060. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/ml_experiment.py +0 -0
  1061. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/opencode2_goal_worker.py +0 -0
  1062. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/post_writeback.py +0 -0
  1063. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/pr_review.py +0 -0
  1064. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/presentation.py +0 -0
  1065. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/preset.py +0 -0
  1066. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/project.py +0 -0
  1067. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/project_lifecycle.py +0 -0
  1068. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/project_lifecycle_inputs.py +0 -0
  1069. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/project_lifecycle_refresh_state.py +0 -0
  1070. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/project_lifecycle_sinks.py +0 -0
  1071. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/quota_host_poll.py +0 -0
  1072. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/quota_monitor_poll.py +0 -0
  1073. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/quota_registration.py +0 -0
  1074. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/quota_request.py +0 -0
  1075. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/quota_reward_memory.py +0 -0
  1076. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/quota_scheduler_followup.py +0 -0
  1077. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/ready_score.py +0 -0
  1078. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/registry_admin.py +0 -0
  1079. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/registry_admin_lifecycle.py +0 -0
  1080. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/registry_admin_peer.py +0 -0
  1081. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/registry_admin_thread_resolution.py +0 -0
  1082. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/registry_authority.py +0 -0
  1083. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/reliability_diagnostics.py +0 -0
  1084. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/review_batch.py +0 -0
  1085. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/shared_goal_alignment.py +0 -0
  1086. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/start_goal.py +0 -0
  1087. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter.py +0 -0
  1088. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_bootstrap.py +0 -0
  1089. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_bootstrap_registration.py +0 -0
  1090. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_runtime_idle.py +0 -0
  1091. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_scheduler.py +0 -0
  1092. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_session_runtime.py +0 -0
  1093. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_visible_common.py +0 -0
  1094. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_visible_driver.py +0 -0
  1095. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/starter_visible_pilot.py +0 -0
  1096. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control.py +0 -0
  1097. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_agent_runtime.py +0 -0
  1098. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_backup.py +0 -0
  1099. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_chat.py +0 -0
  1100. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_chat_endpoint.py +0 -0
  1101. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_heartbeat_registration.py +0 -0
  1102. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_promotion.py +0 -0
  1103. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_registry.py +0 -0
  1104. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_supervisor.py +0 -0
  1105. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/support_control_update.py +0 -0
  1106. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/todo_event.py +0 -0
  1107. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/turn_cadence.py +0 -0
  1108. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/turn_decision.py +0 -0
  1109. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/turn_dsh_host.py +0 -0
  1110. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/turn_inspection.py +0 -0
  1111. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/turn_managed_step.py +0 -0
  1112. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/turn_registration.py +0 -0
  1113. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/turn_todo_writeback.py +0 -0
  1114. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/version.py +0 -0
  1115. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/worker_bridge.py +0 -0
  1116. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_commands/workflow_skills.py +0 -0
  1117. {loopx-1.2.0 → loopx-1.2.1}/loopx/cli_rollout.py +0 -0
  1118. {loopx-1.2.0 → loopx-1.2.1}/loopx/codex_cli_probe.py +0 -0
  1119. {loopx-1.2.0 → loopx-1.2.1}/loopx/codex_cli_probe_markdown.py +0 -0
  1120. {loopx-1.2.0 → loopx-1.2.1}/loopx/codex_cli_runtime_probe.py +0 -0
  1121. {loopx-1.2.0 → loopx-1.2.1}/loopx/codex_cli_scheduler.py +0 -0
  1122. {loopx-1.2.0 → loopx-1.2.1}/loopx/collaboration_mcp.py +0 -0
  1123. {loopx-1.2.0 → loopx-1.2.1}/loopx/command_invocation.py +0 -0
  1124. {loopx-1.2.0 → loopx-1.2.1}/loopx/configuration_transaction.py +0 -0
  1125. {loopx-1.2.0 → loopx-1.2.1}/loopx/configure_goal.py +0 -0
  1126. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/__init__.py +0 -0
  1127. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/actor_identity.py +0 -0
  1128. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agent_context.py +0 -0
  1129. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agent_context.ts +0 -0
  1130. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/__init__.py +0 -0
  1131. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/agent_lane_recommendation.py +0 -0
  1132. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/agent_scope.py +0 -0
  1133. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/agent_scope_frontier.generated.ts +0 -0
  1134. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/agent_scope_frontier.py +0 -0
  1135. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/capability_gate.py +0 -0
  1136. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/capability_gate.ts +0 -0
  1137. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/capability_memory.py +0 -0
  1138. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/capability_memory.ts +0 -0
  1139. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/delivery_workspace.py +0 -0
  1140. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/delivery_workspace.ts +0 -0
  1141. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/identity.py +0 -0
  1142. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/legacy_migration.py +0 -0
  1143. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/material_frontier.py +0 -0
  1144. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/material_handoff.py +0 -0
  1145. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/runtime_model.py +0 -0
  1146. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/subagent_activity.py +0 -0
  1147. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/supervisor.py +0 -0
  1148. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/work_mode.py +0 -0
  1149. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/agents/workspace_guard.py +0 -0
  1150. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/capabilities/__init__.py +0 -0
  1151. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/capabilities/external_evidence.ts +0 -0
  1152. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/capabilities/issue_fix_monitor_reconciliation.ts +0 -0
  1153. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/capabilities/periodic_report_progress.ts +0 -0
  1154. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/capability_hooks.py +0 -0
  1155. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/capability_hooks.ts +0 -0
  1156. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/README.md +0 -0
  1157. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/__init__.py +0 -0
  1158. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/chat_mode.ts +0 -0
  1159. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/conversation_scope.ts +0 -0
  1160. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/delegation_inventory.py +0 -0
  1161. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/delegation_results.py +0 -0
  1162. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/inbox.py +0 -0
  1163. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/peers.py +0 -0
  1164. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/return_delivery.ts +0 -0
  1165. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/collaboration/semantic_request.ts +0 -0
  1166. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/__init__.py +0 -0
  1167. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/authority_core.py +0 -0
  1168. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/authority_journal_scan.ts +0 -0
  1169. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/authority_source.ts +0 -0
  1170. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/authority_source_capture.py +0 -0
  1171. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/authority_state_log.ts +0 -0
  1172. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/authority_store_transactions.ts +0 -0
  1173. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/canonical_snapshot.py +0 -0
  1174. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/canonical_snapshot_page.ts +0 -0
  1175. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/command_receipt.ts +0 -0
  1176. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/configuration.py +0 -0
  1177. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/continuation_adoption.ts +0 -0
  1178. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/continuation_note.ts +0 -0
  1179. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/coordination_projection.ts +0 -0
  1180. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/coordination_state_contract.generated.ts +0 -0
  1181. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/coordination_state_contract.py +0 -0
  1182. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/coordination_state_contract.ts +0 -0
  1183. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/coordination_state_contract_generated.py +0 -0
  1184. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/coordination_state_contract_v0.json +0 -0
  1185. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/handoff_mode_facts.ts +0 -0
  1186. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/handoff_mode_legacy_plan.ts +0 -0
  1187. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/handoff_mode_policy.ts +0 -0
  1188. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/handoff_mode_runtime.ts +0 -0
  1189. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/handoff_mode_transaction.ts +0 -0
  1190. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/lease_claim_transfer.ts +0 -0
  1191. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/legacy_writer_fence.ts +0 -0
  1192. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/legacy_writer_lock_paths.ts +0 -0
  1193. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_archive_attempt.ts +0 -0
  1194. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_authority_provider.ts +0 -0
  1195. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_authority_read.ts +0 -0
  1196. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_authority_shadow_identity.ts +0 -0
  1197. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_authority_shadow_outbox.ts +0 -0
  1198. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_authority_shadow_projection.py +0 -0
  1199. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_authority_write.ts +0 -0
  1200. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/local_snapshot.py +0 -0
  1201. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/nokv_authority_store.ts +0 -0
  1202. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/nokv_jsonl_helper.py +0 -0
  1203. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/nokv_jsonl_transport.ts +0 -0
  1204. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/ownership_observation.ts +0 -0
  1205. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/postgresql_authority_service.ts +0 -0
  1206. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/postgresql_authority_store.ts +0 -0
  1207. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/promotion_handoff_migration.ts +0 -0
  1208. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/promotion_receipt.ts +0 -0
  1209. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/promotion_review.py +0 -0
  1210. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/reviewed_promotion_plan.ts +0 -0
  1211. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/shadow_drain_plan.ts +0 -0
  1212. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/shadow_entry_delivery.ts +0 -0
  1213. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/shadow_entry_evidence.ts +0 -0
  1214. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/shadow_management.py +0 -0
  1215. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/shadow_management.ts +0 -0
  1216. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/source_projection.ts +0 -0
  1217. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/source_transfer.ts +0 -0
  1218. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/sqlite_runtime.ts +0 -0
  1219. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/task_lease_acquire.ts +0 -0
  1220. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_agents.ts +0 -0
  1221. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_archive.ts +0 -0
  1222. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_archive_selection.ts +0 -0
  1223. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_claim.ts +0 -0
  1224. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_continuation.ts +0 -0
  1225. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_create.ts +0 -0
  1226. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_monitor_cycle.ts +0 -0
  1227. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_monitor_poll.ts +0 -0
  1228. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_presentation.ts +0 -0
  1229. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_successor_derivation.ts +0 -0
  1230. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/coordination/todo_write_scopes.ts +0 -0
  1231. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/effect_program.py +0 -0
  1232. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/effect_program.ts +0 -0
  1233. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/effect_runtime_errors.ts +0 -0
  1234. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/__init__.py +0 -0
  1235. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/acceptance.py +0 -0
  1236. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/acceptance_authority.ts +0 -0
  1237. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/acceptance_contract.ts +0 -0
  1238. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/acceptance_observation.py +0 -0
  1239. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/activation.py +0 -0
  1240. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/active_state_metadata.py +0 -0
  1241. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/active_state_sections.py +0 -0
  1242. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/botmux_runtime.py +0 -0
  1243. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/checkpoint_authority.ts +0 -0
  1244. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/checkpoint_commit.ts +0 -0
  1245. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/checkpoint_read_context.ts +0 -0
  1246. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/contract_health.py +0 -0
  1247. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/coordination_observation.py +0 -0
  1248. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/dreaming.py +0 -0
  1249. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/global_registry_shadow.py +0 -0
  1250. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_amendment_proposal.ts +0 -0
  1251. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_channel.py +0 -0
  1252. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_channel_projection.py +0 -0
  1253. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/__init__.py +0 -0
  1254. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/ack_policy.py +0 -0
  1255. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/fallback_disposition.py +0 -0
  1256. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/long_todo_chain.py +0 -0
  1257. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/outcome_continuity.py +0 -0
  1258. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/replan_rules.py +0 -0
  1259. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/semantic_history.py +0 -0
  1260. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_frontier/terminal.py +0 -0
  1261. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_instance_identity.ts +0 -0
  1262. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_vision.py +0 -0
  1263. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_vision_policy.py +0 -0
  1264. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_vision_read_model.py +0 -0
  1265. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_vision_state.py +0 -0
  1266. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_vision_wait.py +0 -0
  1267. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/goal_vision_wait_projection.py +0 -0
  1268. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/operator_actions.py +0 -0
  1269. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/operator_actions.ts +0 -0
  1270. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/orphaned_goal_state.py +0 -0
  1271. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/path_resolution.py +0 -0
  1272. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/shared_goal_alignment.ts +0 -0
  1273. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/shared_goal_work.ts +0 -0
  1274. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/source_session_binding.py +0 -0
  1275. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/source_session_lifetime.ts +0 -0
  1276. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/source_session_recreation.py +0 -0
  1277. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/source_session_registration.py +0 -0
  1278. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/source_session_registry_state.py +0 -0
  1279. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/source_session_services.py +0 -0
  1280. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/ssh_lifecycle_transport.py +0 -0
  1281. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/start_contract.py +0 -0
  1282. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/start_goal_todo_delta.py +0 -0
  1283. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/task_planning.py +0 -0
  1284. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/goals/vision_wait_coverage.ts +0 -0
  1285. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/governed_capability.ts +0 -0
  1286. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/handoff/__init__.py +0 -0
  1287. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/handoff/cross_runtime_impl_review.py +0 -0
  1288. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/handoff/delivery_contract.py +0 -0
  1289. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/handoff/handoff_runs.py +0 -0
  1290. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/handoff/project_handoff.py +0 -0
  1291. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/handoff/review_batch.py +0 -0
  1292. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/handoff/review_packet_context.py +0 -0
  1293. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/heartbeat/agent_input.py +0 -0
  1294. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/heartbeat/automation_upgrade.py +0 -0
  1295. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/heartbeat/bootstrap_prompt.py +0 -0
  1296. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/heartbeat/host.py +0 -0
  1297. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/heartbeat/installed_prompt_update.py +0 -0
  1298. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/heartbeat/prompt_upgrade_hook.py +0 -0
  1299. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/heartbeat/visible_goal.py +0 -0
  1300. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/host_adapter_settlement.py +0 -0
  1301. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/operator_credential.py +0 -0
  1302. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/operator_inbox_binding.py +0 -0
  1303. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/operator_provider.py +0 -0
  1304. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/post_writeback_composition_retry.py +0 -0
  1305. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/post_writeback_hook_transaction.ts +0 -0
  1306. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/presentation/action_review_plan.ts +0 -0
  1307. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/projects/__init__.py +0 -0
  1308. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/projects/contract.py +0 -0
  1309. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/projects/registration_state.py +0 -0
  1310. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/projects/registry.py +0 -0
  1311. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/projects/registry_codec.py +0 -0
  1312. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/__init__.py +0 -0
  1313. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/_supporting_projections.py +0 -0
  1314. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/accounting_artifact_transaction.ts +0 -0
  1315. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/automation_cadence.ts +0 -0
  1316. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/blocked_transition_notice.py +0 -0
  1317. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/decision_summary.py +0 -0
  1318. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/effect_program.py +0 -0
  1319. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/effective_action.generated.ts +0 -0
  1320. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/effective_action.py +0 -0
  1321. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/goal_boundary.py +0 -0
  1322. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/heartbeat_receipt_identity.ts +0 -0
  1323. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/heartbeat_recommendation.py +0 -0
  1324. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/host_poll_receipts.py +0 -0
  1325. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/monitor_poll_lease_transport.py +0 -0
  1326. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/peer_orchestration.ts +0 -0
  1327. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/policy_constants.py +0 -0
  1328. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/recent_runs.py +0 -0
  1329. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/refresh_external_delivery.py +0 -0
  1330. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/refresh_external_delivery.ts +0 -0
  1331. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/refresh_recovery.ts +0 -0
  1332. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/scheduler_ack.py +0 -0
  1333. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/selected_todo_projection.py +0 -0
  1334. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/settlement_cli.py +0 -0
  1335. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/settlement_precedence.py +0 -0
  1336. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/settlement_validation.py +0 -0
  1337. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/settlement_workspace_causality.py +0 -0
  1338. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/settlement_workspace_causality.ts +0 -0
  1339. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/should_run.py +0 -0
  1340. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/should_run_packet.py +0 -0
  1341. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/should_run_prepare.py +0 -0
  1342. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/spend_commit.py +0 -0
  1343. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/spend_commit.ts +0 -0
  1344. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/spend_sources.py +0 -0
  1345. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/stall_repair.py +0 -0
  1346. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/states.py +0 -0
  1347. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/task_orchestration.py +0 -0
  1348. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/task_orchestration_admission.py +0 -0
  1349. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/turn_envelope.py +0 -0
  1350. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/turn_envelope_budget.ts +0 -0
  1351. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/usage_collector.py +0 -0
  1352. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/usage_summary.py +0 -0
  1353. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/void_commit.py +0 -0
  1354. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/quota/void_commit.ts +0 -0
  1355. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/reward_memory.py +0 -0
  1356. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/__init__.py +0 -0
  1357. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/agent_scoped_evidence_log.py +0 -0
  1358. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/decision_freshness.py +0 -0
  1359. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/event_ledger.py +0 -0
  1360. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/goal_project_route.py +0 -0
  1361. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/local_state_write_correctness.py +0 -0
  1362. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/promotion_readiness.py +0 -0
  1363. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/run_artifacts.py +0 -0
  1364. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/run_history.py +0 -0
  1365. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/run_index_duplicates.py +0 -0
  1366. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/runtime_projection_route.py +0 -0
  1367. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/runtime_projection_writer.py +0 -0
  1368. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/session_runtime.py +0 -0
  1369. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/shared_runtime_material_projection.py +0 -0
  1370. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/shared_runtime_refresh_projection.py +0 -0
  1371. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/stale_latest_run.py +0 -0
  1372. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/status_classifications.py +0 -0
  1373. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/time.py +0 -0
  1374. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/trajectory_hygiene.py +0 -0
  1375. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime/validation_command.py +0 -0
  1376. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime_decode.ts +0 -0
  1377. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/runtime_timestamp.ts +0 -0
  1378. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/__init__.py +0 -0
  1379. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/app_automation_compat.py +0 -0
  1380. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/arbitration.py +0 -0
  1381. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/automation_liveness.py +0 -0
  1382. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/execution_context.py +0 -0
  1383. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/external_evidence_observation.py +0 -0
  1384. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/heartbeat_commit.ts +0 -0
  1385. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/heartbeat_commit_cli.ts +0 -0
  1386. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/heartbeat_followup.ts +0 -0
  1387. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/heartbeat_followup_cli.ts +0 -0
  1388. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/monitor_display.py +0 -0
  1389. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/monitor_poll_writeback.py +0 -0
  1390. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/monitor_successor.ts +0 -0
  1391. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/monitor_todo.py +0 -0
  1392. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/monitor_wait.py +0 -0
  1393. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/scheduler_hint.py +0 -0
  1394. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/state.py +0 -0
  1395. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/state_store.ts +0 -0
  1396. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/state_transition_rules.py +0 -0
  1397. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/state_transition_rules.ts +0 -0
  1398. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/scheduler/time.py +0 -0
  1399. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/settlement_driver.py +0 -0
  1400. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/__init__.py +0 -0
  1401. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/agent_lane_projection.py +0 -0
  1402. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/attention_projection.py +0 -0
  1403. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/autonomous_replan_projection.py +0 -0
  1404. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/contract_projection.py +0 -0
  1405. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/dreaming_projection.py +0 -0
  1406. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/monitor_display_projection.py +0 -0
  1407. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/registry_health_projection.py +0 -0
  1408. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/run_projection.py +0 -0
  1409. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/runtime_summaries.py +0 -0
  1410. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/ssh_host_catalog.py +0 -0
  1411. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/status/ssh_tunnel.py +0 -0
  1412. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/__init__.py +0 -0
  1413. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/action_portfolio_scenarios.py +0 -0
  1414. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/actual_default_model_behavior_portfolio.py +0 -0
  1415. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/canary_harness.py +0 -0
  1416. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/capability_monitor_repair_tool_behavior.py +0 -0
  1417. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/continuation_verb_guard.py +0 -0
  1418. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/control_plane_composition_scenarios.py +0 -0
  1419. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/decision_replay.py +0 -0
  1420. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/doubao_model_behavior_actor.py +0 -0
  1421. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/host_prompt_behavior.py +0 -0
  1422. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/model_behavior_action_oracles.py +0 -0
  1423. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/model_behavior_corpus.py +0 -0
  1424. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/model_behavior_packet_safety.py +0 -0
  1425. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/model_behavior_qualification.py +0 -0
  1426. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/model_behavior_retained_cases.py +0 -0
  1427. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/model_tool_behavior.py +0 -0
  1428. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/onboarding_model_behavior_qualification.py +0 -0
  1429. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/quota_fixtures.py +0 -0
  1430. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/quota_should_run_parity.py +0 -0
  1431. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/release_commit_qualification.py +0 -0
  1432. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/replan_semantic_action_behavior.py +0 -0
  1433. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/scoped_gate_successor_tool_behavior.py +0 -0
  1434. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/selected_todo_tool_behavior.py +0 -0
  1435. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/terminal_settlement_tool_behavior.py +0 -0
  1436. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/turn_journal_characterization.py +0 -0
  1437. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/testing/vision_shell_host.py +0 -0
  1438. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/__init__.py +0 -0
  1439. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/active_state_editing.py +0 -0
  1440. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/active_state_todo_parser.py +0 -0
  1441. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/addition.py +0 -0
  1442. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/agent_scope.ts +0 -0
  1443. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/archive_capture.ts +0 -0
  1444. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/authoring_scope.py +0 -0
  1445. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/authoring_scope.ts +0 -0
  1446. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/compact_projection.py +0 -0
  1447. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completed_archive.py +0 -0
  1448. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_fence.py +0 -0
  1449. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_policy.ts +0 -0
  1450. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_result.py +0 -0
  1451. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_state.py +0 -0
  1452. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_state.ts +0 -0
  1453. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_transaction.py +0 -0
  1454. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_validation_accountability.py +0 -0
  1455. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_validation_declaration.ts +0 -0
  1456. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_validation_projection.py +0 -0
  1457. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/completion_validation_revision.ts +0 -0
  1458. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/contract.py +0 -0
  1459. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/decision_metadata.ts +0 -0
  1460. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/decision_scope.py +0 -0
  1461. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/decision_scope.ts +0 -0
  1462. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/external_wait_contract.py +0 -0
  1463. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/field_update.ts +0 -0
  1464. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/frontier_deadline.py +0 -0
  1465. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/frontier_revision.py +0 -0
  1466. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/frontier_revision.ts +0 -0
  1467. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/handoff_gate.py +0 -0
  1468. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/handoff_note.py +0 -0
  1469. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/legacy_continuation_policy_migration.ts +0 -0
  1470. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/line_update.py +0 -0
  1471. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/machine_region.py +0 -0
  1472. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/machine_section_projection.py +0 -0
  1473. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/monitor_metadata.py +0 -0
  1474. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/monitor_metadata.ts +0 -0
  1475. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/mutation_authority.py +0 -0
  1476. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/native_update_plan.ts +0 -0
  1477. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/next_action.ts +0 -0
  1478. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/next_action_runtime.py +0 -0
  1479. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/path_resolution.py +0 -0
  1480. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/priority.ts +0 -0
  1481. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/projection.py +0 -0
  1482. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/projection_delivery.ts +0 -0
  1483. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/projection_document.py +0 -0
  1484. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/provider_projection.py +0 -0
  1485. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/public_update.ts +0 -0
  1486. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/quota_selection.py +0 -0
  1487. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/quota_selection.ts +0 -0
  1488. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/quota_summary.py +0 -0
  1489. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/resume_condition.py +0 -0
  1490. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/resume_condition.ts +0 -0
  1491. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/resume_planning.py +0 -0
  1492. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/resume_planning.ts +0 -0
  1493. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/route_continuation.py +0 -0
  1494. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/standing_decision.py +0 -0
  1495. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/standing_decision.ts +0 -0
  1496. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/succession.ts +0 -0
  1497. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/succession_warning.py +0 -0
  1498. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/successor_derivation.py +0 -0
  1499. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/summary_item.py +0 -0
  1500. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/summary_lanes.ts +0 -0
  1501. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/summary_projection.ts +0 -0
  1502. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/text.py +0 -0
  1503. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/todo_block_codec.py +0 -0
  1504. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/todo_semantics.py +0 -0
  1505. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/todo_summary.py +0 -0
  1506. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/unblock_resume.py +0 -0
  1507. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/update_intent.py +0 -0
  1508. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/update_source.py +0 -0
  1509. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/user_completion.ts +0 -0
  1510. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/user_gate.py +0 -0
  1511. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/work_requirements.ts +0 -0
  1512. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/write_correctness.py +0 -0
  1513. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/todos/write_hint.py +0 -0
  1514. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/__init__.py +0 -0
  1515. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/command_validation.py +0 -0
  1516. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/delivery_continuity.py +0 -0
  1517. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/delivery_continuity.ts +0 -0
  1518. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/execution_profile.py +0 -0
  1519. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/execution_readback.py +0 -0
  1520. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/host_binding.py +0 -0
  1521. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/host_candidate.py +0 -0
  1522. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/host_failure.py +0 -0
  1523. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/host_interaction.ts +0 -0
  1524. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/host_todo_completion.ts +0 -0
  1525. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/journal_store.py +0 -0
  1526. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/lane_fence.py +0 -0
  1527. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/loop_controller.py +0 -0
  1528. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/managed_step.py +0 -0
  1529. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/post_settlement.py +0 -0
  1530. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/recovery.py +0 -0
  1531. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/session_recovery.py +0 -0
  1532. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/settlement.py +0 -0
  1533. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/settlement.ts +0 -0
  1534. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/subagent_execution_topology.py +0 -0
  1535. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/subagent_host_adapter.py +0 -0
  1536. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/turn_contract_generated.py +0 -0
  1537. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_driver/turn_contract_generated.ts +0 -0
  1538. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_loop_controller_contract_v0.json +0 -0
  1539. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/turn_transaction_contract.json +0 -0
  1540. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/__init__.py +0 -0
  1541. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/accountable_settlement.py +0 -0
  1542. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/action_portfolio.py +0 -0
  1543. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/action_portfolio.ts +0 -0
  1544. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/action_selection_contract.py +0 -0
  1545. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/attention_fields.py +0 -0
  1546. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/attention_item.py +0 -0
  1547. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/attention_routing.py +0 -0
  1548. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/autonomous_candidates.py +0 -0
  1549. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/autonomous_replan_ack.py +0 -0
  1550. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/autonomous_replan_obligation.py +0 -0
  1551. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/backlog_hygiene.py +0 -0
  1552. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/canonical_task_lease_lifecycle.ts +0 -0
  1553. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/capability_monitor_fallback.py +0 -0
  1554. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/delivery_batch_scale.py +0 -0
  1555. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/delivery_history.py +0 -0
  1556. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/delivery_history.ts +0 -0
  1557. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/delivery_outcome.py +0 -0
  1558. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/delivery_outcome.ts +0 -0
  1559. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/execution_obligation.py +0 -0
  1560. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/goal_route_hint.py +0 -0
  1561. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/governed_transition_proposal.py +0 -0
  1562. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/interaction_contract.py +0 -0
  1563. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/interaction_contract.ts +0 -0
  1564. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/issue_meta_surface.py +0 -0
  1565. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/lifecycle.py +0 -0
  1566. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/local_lease_record.py +0 -0
  1567. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/operator_inbox.py +0 -0
  1568. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/pending_capability_intent.ts +0 -0
  1569. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/planning_horizon.ts +0 -0
  1570. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/planning_inventory.py +0 -0
  1571. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/planning_inventory.ts +0 -0
  1572. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/planning_relations.ts +0 -0
  1573. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/primary_action.py +0 -0
  1574. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/progress_result.py +0 -0
  1575. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/progress_review_policy.py +0 -0
  1576. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/project_asset.py +0 -0
  1577. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/refresh_recommendation.py +0 -0
  1578. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/refresh_recommendation.ts +0 -0
  1579. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/repair_delta.py +0 -0
  1580. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/replan_history.ts +0 -0
  1581. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/replan_history_codec.py +0 -0
  1582. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/replan_history_snapshot.ts +0 -0
  1583. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/replan_settlement.py +0 -0
  1584. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/replan_settlement.ts +0 -0
  1585. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/repository_delivery.ts +0 -0
  1586. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/runtime_capability_reentry.py +0 -0
  1587. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/semantic_replan_writeback.py +0 -0
  1588. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/status_contract.py +0 -0
  1589. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_graph.py +0 -0
  1590. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_graph.ts +0 -0
  1591. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_lease.py +0 -0
  1592. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_lease_acquire_cli.ts +0 -0
  1593. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_lease_eligibility.ts +0 -0
  1594. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_lease_lifecycle.ts +0 -0
  1595. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_lease_lifecycle_request.ts +0 -0
  1596. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/task_lease_operation_identity.ts +0 -0
  1597. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/team_plan.ts +0 -0
  1598. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/team_plan_authority.ts +0 -0
  1599. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/unsettled_host_turn_contract.py +0 -0
  1600. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/user_action_frontier.py +0 -0
  1601. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/work_lane.py +0 -0
  1602. {loopx-1.2.0 → loopx-1.2.1}/loopx/control_plane/work_items/work_lane_context.py +0 -0
  1603. {loopx-1.2.0 → loopx-1.2.1}/loopx/dash_server.py +0 -0
  1604. {loopx-1.2.0 → loopx-1.2.1}/loopx/dashboard_launcher.py +0 -0
  1605. {loopx-1.2.0 → loopx-1.2.1}/loopx/demo.py +0 -0
  1606. {loopx-1.2.0 → loopx-1.2.1}/loopx/desktop_installation.py +0 -0
  1607. {loopx-1.2.0 → loopx-1.2.1}/loopx/diagnose.py +0 -0
  1608. {loopx-1.2.0 → loopx-1.2.1}/loopx/doctor_git.py +0 -0
  1609. {loopx-1.2.0 → loopx-1.2.1}/loopx/domain_packs/__init__.py +0 -0
  1610. {loopx-1.2.0 → loopx-1.2.1}/loopx/domain_packs/ml_experiment.py +0 -0
  1611. {loopx-1.2.0 → loopx-1.2.1}/loopx/dreaming.py +0 -0
  1612. {loopx-1.2.0 → loopx-1.2.1}/loopx/dsh_goal_mode/README.md +0 -0
  1613. {loopx-1.2.0 → loopx-1.2.1}/loopx/dsh_goal_mode/__init__.py +0 -0
  1614. {loopx-1.2.0 → loopx-1.2.1}/loopx/dsh_goal_mode/__main__.py +0 -0
  1615. {loopx-1.2.0 → loopx-1.2.1}/loopx/dsh_goal_mode/host_failure_map.py +0 -0
  1616. {loopx-1.2.0 → loopx-1.2.1}/loopx/entrypoint.py +0 -0
  1617. {loopx-1.2.0 → loopx-1.2.1}/loopx/execution_profile.py +0 -0
  1618. {loopx-1.2.0 → loopx-1.2.1}/loopx/experiments/README.md +0 -0
  1619. {loopx-1.2.0 → loopx-1.2.1}/loopx/experiments/__init__.py +0 -0
  1620. {loopx-1.2.0 → loopx-1.2.1}/loopx/experiments/planner_worker/__init__.py +0 -0
  1621. {loopx-1.2.0 → loopx-1.2.1}/loopx/experiments/planner_worker/contract.py +0 -0
  1622. {loopx-1.2.0 → loopx-1.2.1}/loopx/experiments/planner_worker/runtime.py +0 -0
  1623. {loopx-1.2.0 → loopx-1.2.1}/loopx/explore_graph.py +0 -0
  1624. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/__init__.py +0 -0
  1625. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/bundled.py +0 -0
  1626. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/capability_admission.py +0 -0
  1627. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/entrypoint_surface.py +0 -0
  1628. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/execution_envelope.py +0 -0
  1629. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/external_connector_provider.py +0 -0
  1630. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/external_connector_runtime.py +0 -0
  1631. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/governed_capability_execution.py +0 -0
  1632. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/hook_adapters.py +0 -0
  1633. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/README.md +0 -0
  1634. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/__init__.py +0 -0
  1635. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/app_setup.py +0 -0
  1636. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/bot_scopes.py +0 -0
  1637. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/card_callback.py +0 -0
  1638. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/cli_resolution.py +0 -0
  1639. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/docs/lark-event-inbox.md +0 -0
  1640. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/document_comment_provider.py +0 -0
  1641. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/event_collector.py +0 -0
  1642. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/event_collector_routes.py +0 -0
  1643. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/event_collector_runtime.py +0 -0
  1644. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/event_inbox.py +0 -0
  1645. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/extension.toml +0 -0
  1646. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel.py +0 -0
  1647. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_contracts.py +0 -0
  1648. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_delivery_contract.py +0 -0
  1649. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_message_delivery.py +0 -0
  1650. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_notification.py +0 -0
  1651. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_operation.py +0 -0
  1652. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_runtime.py +0 -0
  1653. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_setup.py +0 -0
  1654. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_targets.py +0 -0
  1655. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_channel_transport.py +0 -0
  1656. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_topic_batch.py +0 -0
  1657. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_topic_connections.py +0 -0
  1658. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_topic_edit.py +0 -0
  1659. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_topic_inbox.py +0 -0
  1660. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_topic_routing.py +0 -0
  1661. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_topic_runtime.py +0 -0
  1662. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/goal_topic_runtime_service.py +0 -0
  1663. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/group_history.py +0 -0
  1664. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/group_history_cursor.py +0 -0
  1665. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/inbox_reactions.py +0 -0
  1666. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/inbox_reply.py +0 -0
  1667. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/manager_reply_delivery.py +0 -0
  1668. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/manager_reply_format.py +0 -0
  1669. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/manager_reply_parts.py +0 -0
  1670. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/manager_returns.py +0 -0
  1671. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/manager_routing.py +0 -0
  1672. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/miaoda_report.py +0 -0
  1673. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/outbound.py +0 -0
  1674. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/periodic_report_cli.py +0 -0
  1675. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/periodic_report_delivery.py +0 -0
  1676. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/periodic_report_request.py +0 -0
  1677. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/__init__.py +0 -0
  1678. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/explore_results.py +0 -0
  1679. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/explore_singleflight.py +0 -0
  1680. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/explore_source_guard.py +0 -0
  1681. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/explore_stage_document.py +0 -0
  1682. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/explore_visual_integrity.py +0 -0
  1683. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/explore_visual_readback.py +0 -0
  1684. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/explore_visual_styles.py +0 -0
  1685. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/issue_fix_surface.py +0 -0
  1686. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/kanban.py +0 -0
  1687. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/message_card.py +0 -0
  1688. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/periodic_report.py +0 -0
  1689. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/projection_rows.py +0 -0
  1690. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/record_io.py +0 -0
  1691. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/sync_receipt.py +0 -0
  1692. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/presentation/team_plan.py +0 -0
  1693. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/private_json.py +0 -0
  1694. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/provider.py +0 -0
  1695. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/reviewer_notification.py +0 -0
  1696. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/routed_inbox.py +0 -0
  1697. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/team_plan_confirmation.py +0 -0
  1698. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/lark/turn_start_sync.py +0 -0
  1699. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/manifest.py +0 -0
  1700. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_periodic_report/__init__.py +0 -0
  1701. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_periodic_report/activation.py +0 -0
  1702. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_periodic_report/extension.toml +0 -0
  1703. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_periodic_report/provider.py +0 -0
  1704. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_periodic_report/sink.py +0 -0
  1705. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_semantic_preference/__init__.py +0 -0
  1706. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_semantic_preference/extension.toml +0 -0
  1707. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_semantic_preference/history_export.py +0 -0
  1708. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_semantic_preference/project_peer.py +0 -0
  1709. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/openviking_semantic_preference/provider.py +0 -0
  1710. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/process_runtime.py +0 -0
  1711. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/readiness.py +0 -0
  1712. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/runtime.py +0 -0
  1713. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/runtime_location.py +0 -0
  1714. {loopx-1.2.0 → loopx-1.2.1}/loopx/extensions/scaffold.py +0 -0
  1715. {loopx-1.2.0 → loopx-1.2.1}/loopx/feedback.py +0 -0
  1716. {loopx-1.2.0 → loopx-1.2.1}/loopx/global_risks.py +0 -0
  1717. {loopx-1.2.0 → loopx-1.2.1}/loopx/global_todos.py +0 -0
  1718. {loopx-1.2.0 → loopx-1.2.1}/loopx/goal_mode_context.py +0 -0
  1719. {loopx-1.2.0 → loopx-1.2.1}/loopx/goal_mode_mcp.py +0 -0
  1720. {loopx-1.2.0 → loopx-1.2.1}/loopx/goal_portfolio.py +0 -0
  1721. {loopx-1.2.0 → loopx-1.2.1}/loopx/handoff_budget.py +0 -0
  1722. {loopx-1.2.0 → loopx-1.2.1}/loopx/heartbeat_prequota.py +0 -0
  1723. {loopx-1.2.0 → loopx-1.2.1}/loopx/heartbeat_prompt.py +0 -0
  1724. {loopx-1.2.0 → loopx-1.2.1}/loopx/host_loop_activation.py +0 -0
  1725. {loopx-1.2.0 → loopx-1.2.1}/loopx/host_loop_activation_skill_facade.py +0 -0
  1726. {loopx-1.2.0 → loopx-1.2.1}/loopx/host_mode_planner.py +0 -0
  1727. {loopx-1.2.0 → loopx-1.2.1}/loopx/install_contract.py +0 -0
  1728. {loopx-1.2.0 → loopx-1.2.1}/loopx/interface_budget.py +0 -0
  1729. {loopx-1.2.0 → loopx-1.2.1}/loopx/kiro_cli_goal_mode/README.md +0 -0
  1730. {loopx-1.2.0 → loopx-1.2.1}/loopx/kiro_cli_goal_mode/__init__.py +0 -0
  1731. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/README.md +0 -0
  1732. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/__init__.py +0 -0
  1733. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/app_server.py +0 -0
  1734. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/cli.py +0 -0
  1735. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/context.py +0 -0
  1736. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/control_plane.py +0 -0
  1737. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/guards.py +0 -0
  1738. {loopx-1.2.0 → loopx-1.2.1}/loopx/kunluncode_goal_mode/server.py +0 -0
  1739. {loopx-1.2.0 → loopx-1.2.1}/loopx/long_task_cadence.py +0 -0
  1740. {loopx-1.2.0 → loopx-1.2.1}/loopx/materials.py +0 -0
  1741. {loopx-1.2.0 → loopx-1.2.1}/loopx/ml_experiment.py +0 -0
  1742. {loopx-1.2.0 → loopx-1.2.1}/loopx/opencode2_goal_mode/README.md +0 -0
  1743. {loopx-1.2.0 → loopx-1.2.1}/loopx/opencode2_goal_mode/__init__.py +0 -0
  1744. {loopx-1.2.0 → loopx-1.2.1}/loopx/opencode2_goal_mode/opencode2-goal-worker.mjs +0 -0
  1745. {loopx-1.2.0 → loopx-1.2.1}/loopx/opencode_goal_mode/README.md +0 -0
  1746. {loopx-1.2.0 → loopx-1.2.1}/loopx/opencode_goal_mode/__init__.py +0 -0
  1747. {loopx-1.2.0 → loopx-1.2.1}/loopx/opencode_goal_mode/goal-bridge-runtime.mjs +0 -0
  1748. {loopx-1.2.0 → loopx-1.2.1}/loopx/opencode_goal_mode/loopx-goal.js +0 -0
  1749. {loopx-1.2.0 → loopx-1.2.1}/loopx/operator_gate.py +0 -0
  1750. {loopx-1.2.0 → loopx-1.2.1}/loopx/orchestration.py +0 -0
  1751. {loopx-1.2.0 → loopx-1.2.1}/loopx/paths.py +0 -0
  1752. {loopx-1.2.0 → loopx-1.2.1}/loopx/pi_goal_mode/__init__.py +0 -0
  1753. {loopx-1.2.0 → loopx-1.2.1}/loopx/pi_goal_mode/loopx-goal.ts +0 -0
  1754. {loopx-1.2.0 → loopx-1.2.1}/loopx/pi_goal_mode/pi-goal-loop-runtime.mjs +0 -0
  1755. {loopx-1.2.0 → loopx-1.2.1}/loopx/pr_review.py +0 -0
  1756. {loopx-1.2.0 → loopx-1.2.1}/loopx/pr_review_merge_readiness.py +0 -0
  1757. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/README.md +0 -0
  1758. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/__init__.py +0 -0
  1759. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/chat_bundle.py +0 -0
  1760. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/explore_views.py +0 -0
  1761. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/markdown.py +0 -0
  1762. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/projection_source_reconcile.py +0 -0
  1763. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/projections/__init__.py +0 -0
  1764. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/projections/session_dash.py +0 -0
  1765. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/public_safety.py +0 -0
  1766. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/__init__.py +0 -0
  1767. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/goal_acceptance_observation_markdown.py +0 -0
  1768. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/goal_artifact_lifecycle_markdown.py +0 -0
  1769. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/goal_channel_html.py +0 -0
  1770. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/periodic_report_html.py +0 -0
  1771. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/periodic_report_markdown.py +0 -0
  1772. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/quota_event_markdown.py +0 -0
  1773. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/quota_markdown.py +0 -0
  1774. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/reward_memory_markdown.py +0 -0
  1775. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/session_dash_html.py +0 -0
  1776. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/trajectory_hygiene_markdown.py +0 -0
  1777. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/renderers/turn_envelope_markdown.py +0 -0
  1778. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/sinks/__init__.py +0 -0
  1779. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/sinks/openviking_periodic_report.py +0 -0
  1780. {loopx-1.2.0 → loopx-1.2.1}/loopx/presentation/static_site.py +0 -0
  1781. {loopx-1.2.0 → loopx-1.2.1}/loopx/presets.py +0 -0
  1782. {loopx-1.2.0 → loopx-1.2.1}/loopx/project_alias.py +0 -0
  1783. {loopx-1.2.0 → loopx-1.2.1}/loopx/project_map.py +0 -0
  1784. {loopx-1.2.0 → loopx-1.2.1}/loopx/project_prompt.py +0 -0
  1785. {loopx-1.2.0 → loopx-1.2.1}/loopx/project_uninstall.py +0 -0
  1786. {loopx-1.2.0 → loopx-1.2.1}/loopx/promotion_gate.py +0 -0
  1787. {loopx-1.2.0 → loopx-1.2.1}/loopx/public_safe_text.py +0 -0
  1788. {loopx-1.2.0 → loopx-1.2.1}/loopx/python_install_owner.py +0 -0
  1789. {loopx-1.2.0 → loopx-1.2.1}/loopx/ready_score.py +0 -0
  1790. {loopx-1.2.0 → loopx-1.2.1}/loopx/reasoning_effort.py +0 -0
  1791. {loopx-1.2.0 → loopx-1.2.1}/loopx/registry.py +0 -0
  1792. {loopx-1.2.0 → loopx-1.2.1}/loopx/registry_writability.py +0 -0
  1793. {loopx-1.2.0 → loopx-1.2.1}/loopx/release_candidate.py +0 -0
  1794. {loopx-1.2.0 → loopx-1.2.1}/loopx/release_manifest.py +0 -0
  1795. {loopx-1.2.0 → loopx-1.2.1}/loopx/repository_identity.py +0 -0
  1796. {loopx-1.2.0 → loopx-1.2.1}/loopx/runtime.py +0 -0
  1797. {loopx-1.2.0 → loopx-1.2.1}/loopx/runtime_activation.py +0 -0
  1798. {loopx-1.2.0 → loopx-1.2.1}/loopx/self_update_download.py +0 -0
  1799. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/__init__.py +0 -0
  1800. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/consumer_report.py +0 -0
  1801. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/field_use.py +0 -0
  1802. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/incident_v0.json +0 -0
  1803. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/inventory.py +0 -0
  1804. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/project_registry_io.py +0 -0
  1805. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/python_production.py +0 -0
  1806. {loopx-1.2.0 → loopx-1.2.1}/loopx/semantics/turn_contract_witness.py +0 -0
  1807. {loopx-1.2.0 → loopx-1.2.1}/loopx/session_runtime.py +0 -0
  1808. {loopx-1.2.0 → loopx-1.2.1}/loopx/skill_install_readback.py +0 -0
  1809. {loopx-1.2.0 → loopx-1.2.1}/loopx/slash_command_files.py +0 -0
  1810. {loopx-1.2.0 → loopx-1.2.1}/loopx/slash_commands.py +0 -0
  1811. {loopx-1.2.0 → loopx-1.2.1}/loopx/state_backup.py +0 -0
  1812. {loopx-1.2.0 → loopx-1.2.1}/loopx/state_projection.py +0 -0
  1813. {loopx-1.2.0 → loopx-1.2.1}/loopx/status_server.py +0 -0
  1814. {loopx-1.2.0 → loopx-1.2.1}/loopx/turn_identity.py +0 -0
  1815. {loopx-1.2.0 → loopx-1.2.1}/loopx/upgrade.py +0 -0
  1816. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  1817. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  1818. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  1819. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  1820. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
  1821. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
  1822. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
  1823. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
  1824. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
  1825. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
  1826. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  1827. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/index-BFvBNXhe.js +0 -0
  1828. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/assets/index-C-jkBQuO.css +0 -0
  1829. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/manifest.webmanifest +0 -0
  1830. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/pwa/icon-192.png +0 -0
  1831. {loopx-1.2.0 → loopx-1.2.1}/loopx/web/chat/pwa/icon-512.png +0 -0
  1832. {loopx-1.2.0 → loopx-1.2.1}/loopx/worker_bridge.py +0 -0
  1833. {loopx-1.2.0 → loopx-1.2.1}/loopx/zcode_goal_mode/README.md +0 -0
  1834. {loopx-1.2.0 → loopx-1.2.1}/loopx/zcode_goal_mode/__init__.py +0 -0
  1835. {loopx-1.2.0 → loopx-1.2.1}/loopx.egg-info/dependency_links.txt +0 -0
  1836. {loopx-1.2.0 → loopx-1.2.1}/loopx.egg-info/entry_points.txt +0 -0
  1837. {loopx-1.2.0 → loopx-1.2.1}/loopx.egg-info/requires.txt +0 -0
  1838. {loopx-1.2.0 → loopx-1.2.1}/loopx.egg-info/top_level.txt +0 -0
  1839. {loopx-1.2.0 → loopx-1.2.1}/setup.cfg +0 -0
  1840. {loopx-1.2.0 → loopx-1.2.1}/setup.py +0 -0
  1841. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-benchmark/.loopx-skill-scope +0 -0
  1842. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-benchmark/SKILL.md +0 -0
  1843. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-benchmark/agents/openai.yaml +0 -0
  1844. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-doc-registry/.loopx-skill-scope +0 -0
  1845. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-doc-registry/SKILL.md +0 -0
  1846. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-doc-registry/agents/openai.yaml +0 -0
  1847. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-pr-program/.loopx-skill-scope +0 -0
  1848. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-pr-program/SKILL.md +0 -0
  1849. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-pr-program/agents/openai.yaml +0 -0
  1850. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-pr-program/references/snapshot-contract.md +0 -0
  1851. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-pr-program/scripts/diff_snapshot.py +0 -0
  1852. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-pr-review/.loopx-skill-scope +0 -0
  1853. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-pr-review/agents/openai.yaml +0 -0
  1854. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-project/.loopx-skill-scope +0 -0
  1855. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-project/agents/openai.yaml +0 -0
  1856. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-self-repair/.loopx-skill-scope +0 -0
  1857. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-self-repair/agents/openai.yaml +0 -0
  1858. {loopx-1.2.0 → loopx-1.2.1}/skills/loopx-self-repair/references/upstream-issue-escalation.md +0 -0
  1859. {loopx-1.2.0 → loopx-1.2.1}/tests/test_agent_onboarding_pi_host.py +0 -0
  1860. {loopx-1.2.0 → loopx-1.2.1}/tests/test_agent_onboarding_unconnected_project.py +0 -0
  1861. {loopx-1.2.0 → loopx-1.2.1}/tests/test_agy_host_surface.py +0 -0
  1862. {loopx-1.2.0 → loopx-1.2.1}/tests/test_archive_installer_commit_response.py +0 -0
  1863. {loopx-1.2.0 → loopx-1.2.1}/tests/test_ark_managed_agent_host.py +0 -0
  1864. {loopx-1.2.0 → loopx-1.2.1}/tests/test_ark_managed_agent_issue_fix_matrix.py +0 -0
  1865. {loopx-1.2.0 → loopx-1.2.1}/tests/test_attached_session_broker.py +0 -0
  1866. {loopx-1.2.0 → loopx-1.2.1}/tests/test_attached_session_cli.py +0 -0
  1867. {loopx-1.2.0 → loopx-1.2.1}/tests/test_auto_research_artifact_receipt.py +0 -0
  1868. {loopx-1.2.0 → loopx-1.2.1}/tests/test_auto_research_control.py +0 -0
  1869. {loopx-1.2.0 → loopx-1.2.1}/tests/test_automation_cadence.py +0 -0
  1870. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_automation_cadence_api.py +0 -0
  1871. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_codex_goal.py +0 -0
  1872. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_codex_home.py +0 -0
  1873. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_completed_todos.py +0 -0
  1874. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_dsh_adapter.py +0 -0
  1875. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_event_buffer.py +0 -0
  1876. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_event_cursor.py +0 -0
  1877. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_event_retention.py +0 -0
  1878. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_executor_profile.py +0 -0
  1879. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_goal_configuration_api.py +0 -0
  1880. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_image_attachments.py +0 -0
  1881. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_lark_api_contract.py +0 -0
  1882. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_loopx_mode.py +0 -0
  1883. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_machine_configuration_api.py +0 -0
  1884. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_manager_context.py +0 -0
  1885. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_manager_details.py +0 -0
  1886. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_manager_report.py +0 -0
  1887. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_operation_actions.py +0 -0
  1888. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_project_coordination.py +0 -0
  1889. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_response_parsing.py +0 -0
  1890. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_server_cors.py +0 -0
  1891. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_startup_isolation.py +0 -0
  1892. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_store_input_validation.py +0 -0
  1893. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_team_evidence.py +0 -0
  1894. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_team_plan_action.py +0 -0
  1895. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_todo_priority.py +0 -0
  1896. {loopx-1.2.0 → loopx-1.2.1}/tests/test_chat_turn_wait.py +0 -0
  1897. {loopx-1.2.0 → loopx-1.2.1}/tests/test_claude_goal_release_qualification.py +0 -0
  1898. {loopx-1.2.0 → loopx-1.2.1}/tests/test_cli_argument_diagnostics.py +0 -0
  1899. {loopx-1.2.0 → loopx-1.2.1}/tests/test_cli_entrypoint.py +0 -0
  1900. {loopx-1.2.0 → loopx-1.2.1}/tests/test_codex_app_apply_rrule.py +0 -0
  1901. {loopx-1.2.0 → loopx-1.2.1}/tests/test_collaboration_demo.py +0 -0
  1902. {loopx-1.2.0 → loopx-1.2.1}/tests/test_collaboration_mcp.py +0 -0
  1903. {loopx-1.2.0 → loopx-1.2.1}/tests/test_command_invocation.py +0 -0
  1904. {loopx-1.2.0 → loopx-1.2.1}/tests/test_content_ops_item_lifecycle.py +0 -0
  1905. {loopx-1.2.0 → loopx-1.2.1}/tests/test_content_ops_lifecycle.py +0 -0
  1906. {loopx-1.2.0 → loopx-1.2.1}/tests/test_content_ops_queue_status.py +0 -0
  1907. {loopx-1.2.0 → loopx-1.2.1}/tests/test_contract_credential_pattern_precision.py +0 -0
  1908. {loopx-1.2.0 → loopx-1.2.1}/tests/test_contract_scan_unreadable_files.py +0 -0
  1909. {loopx-1.2.0 → loopx-1.2.1}/tests/test_dashboard_command.py +0 -0
  1910. {loopx-1.2.0 → loopx-1.2.1}/tests/test_decision_context_material.py +0 -0
  1911. {loopx-1.2.0 → loopx-1.2.1}/tests/test_deepresearch_command.py +0 -0
  1912. {loopx-1.2.0 → loopx-1.2.1}/tests/test_default_public_scan_root.py +0 -0
  1913. {loopx-1.2.0 → loopx-1.2.1}/tests/test_delegation_cli.py +0 -0
  1914. {loopx-1.2.0 → loopx-1.2.1}/tests/test_delegation_inventory.py +0 -0
  1915. {loopx-1.2.0 → loopx-1.2.1}/tests/test_delegation_result_use.py +0 -0
  1916. {loopx-1.2.0 → loopx-1.2.1}/tests/test_delivery_review.py +0 -0
  1917. {loopx-1.2.0 → loopx-1.2.1}/tests/test_dependency_security_boundaries.py +0 -0
  1918. {loopx-1.2.0 → loopx-1.2.1}/tests/test_desktop_installation.py +0 -0
  1919. {loopx-1.2.0 → loopx-1.2.1}/tests/test_doctor_git_encoding.py +0 -0
  1920. {loopx-1.2.0 → loopx-1.2.1}/tests/test_doctor_install_freshness.py +0 -0
  1921. {loopx-1.2.0 → loopx-1.2.1}/tests/test_doctor_installation_scope.py +0 -0
  1922. {loopx-1.2.0 → loopx-1.2.1}/tests/test_doctor_promotion_readiness.py +0 -0
  1923. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_counterfactual_runtime.py +0 -0
  1924. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_episode_runtime.py +0 -0
  1925. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_monitor_lane_budget.py +0 -0
  1926. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_owner_board_views.py +0 -0
  1927. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_presentation_views.py +0 -0
  1928. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_replay_compatibility.py +0 -0
  1929. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_replay_runtime.py +0 -0
  1930. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_resource_portfolio.py +0 -0
  1931. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_router_acceptance.py +0 -0
  1932. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_source_history_reconcile.py +0 -0
  1933. {loopx-1.2.0 → loopx-1.2.1}/tests/test_explore_worker_topic_affinity.py +0 -0
  1934. {loopx-1.2.0 → loopx-1.2.1}/tests/test_external_scheduler_worker.py +0 -0
  1935. {loopx-1.2.0 → loopx-1.2.1}/tests/test_feedback_goal_id_validation.py +0 -0
  1936. {loopx-1.2.0 → loopx-1.2.1}/tests/test_feedback_run_selection.py +0 -0
  1937. {loopx-1.2.0 → loopx-1.2.1}/tests/test_file_lock_cross_process.py +0 -0
  1938. {loopx-1.2.0 → loopx-1.2.1}/tests/test_gemini_cursor_host_surfaces.py +0 -0
  1939. {loopx-1.2.0 → loopx-1.2.1}/tests/test_global_risks.py +0 -0
  1940. {loopx-1.2.0 → loopx-1.2.1}/tests/test_global_todos.py +0 -0
  1941. {loopx-1.2.0 → loopx-1.2.1}/tests/test_goal_acceptance_contract_rendering.py +0 -0
  1942. {loopx-1.2.0 → loopx-1.2.1}/tests/test_goal_mode_mcp_completion_validation.py +0 -0
  1943. {loopx-1.2.0 → loopx-1.2.1}/tests/test_goal_mode_mcp_settlement.py +0 -0
  1944. {loopx-1.2.0 → loopx-1.2.1}/tests/test_goal_portfolio.py +0 -0
  1945. {loopx-1.2.0 → loopx-1.2.1}/tests/test_history_chronology.py +0 -0
  1946. {loopx-1.2.0 → loopx-1.2.1}/tests/test_host_loop_runtime_parity.py +0 -0
  1947. {loopx-1.2.0 → loopx-1.2.1}/tests/test_host_mode_planner.py +0 -0
  1948. {loopx-1.2.0 → loopx-1.2.1}/tests/test_host_parity_smoke.py +0 -0
  1949. {loopx-1.2.0 → loopx-1.2.1}/tests/test_host_poll_receipts.py +0 -0
  1950. {loopx-1.2.0 → loopx-1.2.1}/tests/test_host_vision_recovery.py +0 -0
  1951. {loopx-1.2.0 → loopx-1.2.1}/tests/test_inbox_pagination.py +0 -0
  1952. {loopx-1.2.0 → loopx-1.2.1}/tests/test_install_copy_fallback.py +0 -0
  1953. {loopx-1.2.0 → loopx-1.2.1}/tests/test_kiro_cli_host_surface.py +0 -0
  1954. {loopx-1.2.0 → loopx-1.2.1}/tests/test_license_metadata.py +0 -0
  1955. {loopx-1.2.0 → loopx-1.2.1}/tests/test_local_delegation.py +0 -0
  1956. {loopx-1.2.0 → loopx-1.2.1}/tests/test_loop_turn_controller_contract.py +0 -0
  1957. {loopx-1.2.0 → loopx-1.2.1}/tests/test_loop_turn_loop_controller.py +0 -0
  1958. {loopx-1.2.0 → loopx-1.2.1}/tests/test_loopx_launcher_python_selection.py +0 -0
  1959. {loopx-1.2.0 → loopx-1.2.1}/tests/test_loopx_turn_host_failure.py +0 -0
  1960. {loopx-1.2.0 → loopx-1.2.1}/tests/test_loopx_turn_managed_step.py +0 -0
  1961. {loopx-1.2.0 → loopx-1.2.1}/tests/test_loopx_turn_settlement_parity.py +0 -0
  1962. {loopx-1.2.0 → loopx-1.2.1}/tests/test_loopx_turn_transaction.py +0 -0
  1963. {loopx-1.2.0 → loopx-1.2.1}/tests/test_managed_research_scenario.py +0 -0
  1964. {loopx-1.2.0 → loopx-1.2.1}/tests/test_managed_research_team.py +0 -0
  1965. {loopx-1.2.0 → loopx-1.2.1}/tests/test_manager_channel_binding.py +0 -0
  1966. {loopx-1.2.0 → loopx-1.2.1}/tests/test_manager_context_roundtrip.py +0 -0
  1967. {loopx-1.2.0 → loopx-1.2.1}/tests/test_manager_context_tracking.py +0 -0
  1968. {loopx-1.2.0 → loopx-1.2.1}/tests/test_manager_team_plan_guidance.py +0 -0
  1969. {loopx-1.2.0 → loopx-1.2.1}/tests/test_ml_experiment_volc_packet.py +0 -0
  1970. {loopx-1.2.0 → loopx-1.2.1}/tests/test_native_goal_release_qualification.py +0 -0
  1971. {loopx-1.2.0 → loopx-1.2.1}/tests/test_nokv_jsonl_helper.py +0 -0
  1972. {loopx-1.2.0 → loopx-1.2.1}/tests/test_opencode2_goal_worker.py +0 -0
  1973. {loopx-1.2.0 → loopx-1.2.1}/tests/test_opencode2_goal_worker_cli.py +0 -0
  1974. {loopx-1.2.0 → loopx-1.2.1}/tests/test_opencode_goal_bridge.py +0 -0
  1975. {loopx-1.2.0 → loopx-1.2.1}/tests/test_operator_markdown_renderers.py +0 -0
  1976. {loopx-1.2.0 → loopx-1.2.1}/tests/test_operator_provider.py +0 -0
  1977. {loopx-1.2.0 → loopx-1.2.1}/tests/test_packaged_skill_metadata.py +0 -0
  1978. {loopx-1.2.0 → loopx-1.2.1}/tests/test_peer_collaboration.py +0 -0
  1979. {loopx-1.2.0 → loopx-1.2.1}/tests/test_pi_goal_mode.py +0 -0
  1980. {loopx-1.2.0 → loopx-1.2.1}/tests/test_postgresql_integration_workflow.py +0 -0
  1981. {loopx-1.2.0 → loopx-1.2.1}/tests/test_pr_program_snapshot.py +0 -0
  1982. {loopx-1.2.0 → loopx-1.2.1}/tests/test_pr_program_snapshot_diff.py +0 -0
  1983. {loopx-1.2.0 → loopx-1.2.1}/tests/test_pr_review_github_scan.py +0 -0
  1984. {loopx-1.2.0 → loopx-1.2.1}/tests/test_project_lifecycle_refresh_state_ownership.py +0 -0
  1985. {loopx-1.2.0 → loopx-1.2.1}/tests/test_project_organization_identity.py +0 -0
  1986. {loopx-1.2.0 → loopx-1.2.1}/tests/test_project_skill_cli.py +0 -0
  1987. {loopx-1.2.0 → loopx-1.2.1}/tests/test_public_package_lock_boundary.py +0 -0
  1988. {loopx-1.2.0 → loopx-1.2.1}/tests/test_python_discovery.py +0 -0
  1989. {loopx-1.2.0 → loopx-1.2.1}/tests/test_register_agent_fresh_identity.py +0 -0
  1990. {loopx-1.2.0 → loopx-1.2.1}/tests/test_registry_git_probe.py +0 -0
  1991. {loopx-1.2.0 → loopx-1.2.1}/tests/test_release_candidate.py +0 -0
  1992. {loopx-1.2.0 → loopx-1.2.1}/tests/test_release_smoke_archive_helpers.py +0 -0
  1993. {loopx-1.2.0 → loopx-1.2.1}/tests/test_repository_identity.py +0 -0
  1994. {loopx-1.2.0 → loopx-1.2.1}/tests/test_reward_memory_pipeline.py +0 -0
  1995. {loopx-1.2.0 → loopx-1.2.1}/tests/test_rollout_event_log_loading.py +0 -0
  1996. {loopx-1.2.0 → loopx-1.2.1}/tests/test_runtime_subprocess_utf8.py +0 -0
  1997. {loopx-1.2.0 → loopx-1.2.1}/tests/test_scheduler_native_launcher.py +0 -0
  1998. {loopx-1.2.0 → loopx-1.2.1}/tests/test_self_update_download.py +0 -0
  1999. {loopx-1.2.0 → loopx-1.2.1}/tests/test_session_runtime_key_classification.py +0 -0
  2000. {loopx-1.2.0 → loopx-1.2.1}/tests/test_skill_delivery_parity.py +0 -0
  2001. {loopx-1.2.0 → loopx-1.2.1}/tests/test_skill_discovery_reconciliation.py +0 -0
  2002. {loopx-1.2.0 → loopx-1.2.1}/tests/test_smoke_suite.py +0 -0
  2003. {loopx-1.2.0 → loopx-1.2.1}/tests/test_sonarcloud_workflow.py +0 -0
  2004. {loopx-1.2.0 → loopx-1.2.1}/tests/test_ssh_tunnel_source.py +0 -0
  2005. {loopx-1.2.0 → loopx-1.2.1}/tests/test_state_file_containment.py +0 -0
  2006. {loopx-1.2.0 → loopx-1.2.1}/tests/test_state_migration.py +0 -0
  2007. {loopx-1.2.0 → loopx-1.2.1}/tests/test_state_refresh_agent_lane_action.py +0 -0
  2008. {loopx-1.2.0 → loopx-1.2.1}/tests/test_state_refresh_projections.py +0 -0
  2009. {loopx-1.2.0 → loopx-1.2.1}/tests/test_static_site_presentation.py +0 -0
  2010. {loopx-1.2.0 → loopx-1.2.1}/tests/test_status_server_cors.py +0 -0
  2011. {loopx-1.2.0 → loopx-1.2.1}/tests/test_status_server_extension_projection.py +0 -0
  2012. {loopx-1.2.0 → loopx-1.2.1}/tests/test_status_server_fast_path.py +0 -0
  2013. {loopx-1.2.0 → loopx-1.2.1}/tests/test_status_server_periodic_report_workspace.py +0 -0
  2014. {loopx-1.2.0 → loopx-1.2.1}/tests/test_status_server_ssh_hosts.py +0 -0
  2015. {loopx-1.2.0 → loopx-1.2.1}/tests/test_steward_team_plan_apply.py +0 -0
  2016. {loopx-1.2.0 → loopx-1.2.1}/tests/test_steward_team_plan_preview.py +0 -0
  2017. {loopx-1.2.0 → loopx-1.2.1}/tests/test_subagent_host_adapter.py +0 -0
  2018. {loopx-1.2.0 → loopx-1.2.1}/tests/test_summary_all.py +0 -0
  2019. {loopx-1.2.0 → loopx-1.2.1}/tests/test_support_control_promotion_ownership.py +0 -0
  2020. {loopx-1.2.0 → loopx-1.2.1}/tests/test_support_control_update_ownership.py +0 -0
  2021. {loopx-1.2.0 → loopx-1.2.1}/tests/test_todo_write_serialization.py +0 -0
  2022. {loopx-1.2.0 → loopx-1.2.1}/tests/test_trajectory_hygiene.py +0 -0
  2023. {loopx-1.2.0 → loopx-1.2.1}/tests/test_turn_default_host_binding.py +0 -0
  2024. {loopx-1.2.0 → loopx-1.2.1}/tests/test_turn_lane_fence.py +0 -0
  2025. {loopx-1.2.0 → loopx-1.2.1}/tests/test_turn_loop_disposition.py +0 -0
  2026. {loopx-1.2.0 → loopx-1.2.1}/tests/test_turn_machine_credential.py +0 -0
  2027. {loopx-1.2.0 → loopx-1.2.1}/tests/test_turn_managed_executor_binding.py +0 -0
  2028. {loopx-1.2.0 → loopx-1.2.1}/tests/test_turn_route_action_classification.py +0 -0
  2029. {loopx-1.2.0 → loopx-1.2.1}/tests/test_visible_goal_terminal_settlement.py +0 -0
  2030. {loopx-1.2.0 → loopx-1.2.1}/tests/test_windows_atomic_writes.py +0 -0
  2031. {loopx-1.2.0 → loopx-1.2.1}/tests/test_worker_command_validation.py +0 -0
  2032. {loopx-1.2.0 → loopx-1.2.1}/tests/test_workspace_story_demo.py +0 -0
  2033. {loopx-1.2.0 → loopx-1.2.1}/tests/test_zcode_host_surface.py +0 -0
loopx-1.2.1/PKG-INFO ADDED
@@ -0,0 +1,872 @@
1
+ Metadata-Version: 2.4
2
+ Name: loopx
3
+ Version: 1.2.1
4
+ Summary: A Loop Engineering control plane for long-running agent goals (requires Node.js 22.22.3+).
5
+ Author: LoopX contributors
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://loopx-project.github.io/loopx/
8
+ Project-URL: Documentation, https://loopx-project.github.io/loopx/docs/
9
+ Project-URL: Repository, https://github.com/loopx-project/loopx
10
+ Project-URL: Issues, https://github.com/loopx-project/loopx/issues
11
+ Project-URL: Changelog, https://github.com/loopx-project/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.5rc1; 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: pyyaml<7,>=6; extra == "test"
23
+ Requires-Dist: types-jsonschema<5,>=4.23; extra == "test"
24
+ Requires-Dist: pytest<10,>=9.0.3; extra == "test"
25
+ Requires-Dist: pytest-cov<7,>=5; extra == "test"
26
+ Requires-Dist: pytest-xdist<4,>=3; extra == "test"
27
+ Requires-Dist: pytest-split<0.12,>=0.11; extra == "test"
28
+ Requires-Dist: ruff<0.16,>=0.12; extra == "test"
29
+ Requires-Dist: mypy<2,>=1.18; extra == "test"
30
+ Dynamic: license-file
31
+
32
+ <div align="center">
33
+
34
+ <h1 align="center">LoopX</h1>
35
+
36
+ **Give your agents a goal. Keep the work moving.**
37
+
38
+ The open, local-first control plane for long-horizon agents and personal agent teams.<br>
39
+ <sub>Keep goals, decisions and evidence across sessions. Work with Codex, Claude Code, DeepSeek Harness and other supported runtimes.</sub>
40
+
41
+ [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Release](https://img.shields.io/github/v/release/loopx-project/loopx?filter=v*&display_name=tag)](https://github.com/loopx-project/loopx/releases/latest) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/XmGgQyCFZd)
42
+
43
+ <a href="https://trendshift.io/repositories/102379"><img src="https://trendshift.io/api/badge/repositories/102379" alt="loopx-project/loopx on Trendshift" width="220" height="48"></a>
44
+
45
+ [Get started](#try-loopx) · [Workspace](#meet-the-personal-agent-workspace) · [LHTB results](#lhtb-results) · [Docs](https://loopx-project.github.io/loopx/docs/) · [简体中文](README.zh-CN.md)
46
+
47
+ **[LHTB](https://zli12321.github.io/LHTB/index.html) · 46 tasks · GPT-5.6 Sol:** LoopX 1.0.3 Heartbeat reaches **0.4948 mean reward** — **+17.3% vs Plain Codex**, **+10.6% vs native Codex Goal**.<br>
48
+ <sub><a href="#lhtb-results">Results and pass rates ↓</a></sub>
49
+
50
+ </div>
51
+
52
+ ---
53
+
54
+ **More verified work. Less human attention.** LoopX gives agents durable goals,
55
+ bounded continuation, peer ownership and recoverable handoffs. Your runtime
56
+ provides the model and tools; LoopX keeps track of what to do next, what is
57
+ accepted, and when to ask you.
58
+
59
+ <a id="learn-loopx"></a>
60
+
61
+ | What you want to do | Start here |
62
+ | --- | --- |
63
+ | Keep a coding or research agent working across sessions | [Install and connect](#try-loopx) |
64
+ | Manage personal projects, schedules and decisions in one place | [Personal Agent Workspace](#meet-the-personal-agent-workspace) |
65
+ | Let agents collaborate and deliver verifiable results | [Agent collaboration guide](docs/product/use-cases/cross-runtime/README.md) |
66
+
67
+ ## Meet the Personal Agent Workspace
68
+
69
+ Keep long-horizon goals in one local-first workspace. Goals, attention,
70
+ conversations, tasks, files, schedules, and recovery stay durable across days,
71
+ restarts, and harnesses. Reopen a project, inspect the previous turn’s state
72
+ and evidence, and continue the next permitted action.
73
+
74
+ <a href="docs/assets/personal-workspace/loopx-dashboard-launch.mp4">
75
+ <img src="docs/assets/personal-workspace/workspace-1.0.webp" alt="LoopX Workspace: owner decisions, Agent tasks, scheduled watches and completed work" width="960">
76
+ </a>
77
+
78
+ LoopX 1.0 brings these long-horizon control states into the Personal Workspace. It gives you one place to:
79
+
80
+ - see what needs you, what is running, what is being watched, and what is
81
+ scheduled or stopped;
82
+ - configure Goal capabilities, distinguish machine defaults from Goal overrides,
83
+ and preview changes before applying them;
84
+ - steer a live turn, queue a message, or use the async inbox from a connected
85
+ Lark conversation with explicit Goal/Agent/session routing;
86
+ - inspect deliverable files, periodic reports, and their supporting evidence;
87
+ - continue across Codex, Claude Code, direct-model, and other registered Agent
88
+ sessions without losing Goal state or evidence;
89
+ - review protected changes through typed preview, explicit confirmation, and
90
+ receipts while LoopX state—not the browser—remains authoritative.
91
+
92
+ For Manager group conversations, LoopX keeps message visibility separate from
93
+ Turn authority; see the bilingual [Lark Manager context and authority
94
+ contract](docs/reference/protocols/lark-manager-context-authority-v0.md).
95
+
96
+ ```bash
97
+ loopx dashboard
98
+ ```
99
+
100
+ `loopx dashboard` is the supported browser/PWA launch path. You can also download
101
+ native desktop previews from the [1.0 release](https://github.com/loopx-project/loopx/releases/tag/v1.0.0);
102
+ they reuse the same loopback services and Goal state. Apple Silicon macOS supports
103
+ signed App updates that pair the shell with its bundled runtime, plus repair and
104
+ recovery. Python 3.11+ is required; the App is ad-hoc signed, not notarized.
105
+ Windows preview installers currently use manual updates and a separately installed CLI.
106
+ [Desktop installation, updates, and source development](apps/desktop/loopx-control-plane/README.md).
107
+
108
+ <details>
109
+ <summary>Capability settings and reproducible workspace scenarios</summary>
110
+
111
+ <img src="docs/assets/personal-workspace/capability-1.0.webp" alt="Real Workspace recording: configure child-task capacity and allowed responsibility domains" width="960">
112
+
113
+ From a source checkout, run `python -m demo.workspace serve` to explore a community
114
+ event, a home-energy comparison, and a neighborhood website release. Each has four
115
+ work roles, 18 tasks, two decisions, and two watches. The screenshot above comes
116
+ from this reproducible workspace. [Scenarios and replay instructions](demo/workspace/README.md).
117
+
118
+ </details>
119
+
120
+ [Watch the full 32-second walkthrough](docs/assets/personal-workspace/loopx-dashboard-launch.mp4)
121
+ · [Read the workspace guide](docs/guides/personal-workspace-user-guide.md)
122
+ · [Try the five-minute tour](docs/guides/personal-workspace-trial-guide.md)
123
+
124
+ <a id="how-it-works"></a>
125
+
126
+ ## Why LoopX
127
+
128
+ An agent can finish a task in one session. Long-running work is harder:
129
+ objectives change, owner decisions appear, evidence goes stale, agents hand work
130
+ to peers, and a scheduler can keep spending after no useful transition remains.
131
+ Chat memory and a timer are not enough to govern that.
132
+
133
+ LoopX keeps the durable control state in one compact layer:
134
+
135
+ ```text
136
+ objective / issue / project
137
+ │
138
+ ▼
139
+ LoopX state: objective + gates + todos + scope + evidence + quota
140
+ │
141
+ ├─ human judgment needed? ── yes ─▶ ask a concrete question and wait
142
+ │
143
+ ├─ safe fallback available? ──────▶ run one bounded agent slice
144
+ │
145
+ ▼
146
+ Codex / Claude Code / Cursor / shell agent executes one turn
147
+ │
148
+ ▼
149
+ write evidence + handoff + next todo ─▶ quota decides the next tick
150
+ ```
151
+
152
+ Agent runtimes execute the work. LoopX governs the state that lets engineering,
153
+ research, discovery, and operations loops continue across runs. It is not
154
+ another agent framework or a provider-specific orchestration runtime.
155
+
156
+ ![LoopX control-plane board](docs/assets/control-plane-board.svg)
157
+
158
+ A useful mental model is an
159
+ **[agent-native Kanban for long-running work](docs/development/control-plane-course/00-concept-primer.md)**.
160
+ Cards carry identity, authority, evidence, and continuation. Moves are validated
161
+ operators such as claim, gate, monitor, and writeback. The board is a
162
+ projection; LoopX state remains the source of truth.
163
+
164
+ Registered agents are peers. Claims, leases, task boundaries, capabilities, and
165
+ typed continuation decide who acts next; no durable leader identity is
166
+ required.
167
+
168
+ LoopX is useful when you run:
169
+
170
+ - multi-day engineering, research, benchmark, or experiment objectives;
171
+ - issue and PR loops that must preserve scope, evidence, and review state;
172
+ - recurring heartbeat or monitor work;
173
+ - projects with owner, safety, publication, or private-data gates;
174
+ - peer-agent teams where ownership, leases, and handoff matter;
175
+ - creator, research, or operations workflows whose progress must remain
176
+ legible to a non-engineering operator.
177
+
178
+ LoopX is not an autonomous production controller. Dangerous permissions,
179
+ publishing, production writes, and final ownership stay with the human.
180
+
181
+ ### Personal Agents, Teams, and Self-Improving Workflows
182
+
183
+ [Meta Muse](https://about.fb.com/news/2026/09/introducing-muse-personal-ai-agent/)
184
+ and [Grok Bot](https://x.ai/news/introducing-grok-bot) make persistent personal
185
+ agents and delegated work a familiar product idea. LoopX approaches that space
186
+ as an open, provider-neutral control plane for agents you already run—not as a
187
+ hosted replacement for either product.
188
+
189
+ - **Personal agent:** use the shipped Workspace and connected Lark surfaces to
190
+ inspect goals, steer work and resolve decisions. The
191
+ [persistent steward and semantic handoff RFC](docs/architecture/rfcs/capable-manager-semantic-handoff-v0.md)
192
+ extends this toward one capable front door for a team; the complete journey
193
+ remains under qualification.
194
+ - **Agent team:** share goals without erasing worker ownership. Claims, evidence
195
+ and explicit returns keep implementation and review connected. See the
196
+ [three-agent collaboration demo](examples/collaboration-delivery/README.md)
197
+ for a bounded example, including corrections and two review rounds.
198
+ - **Self-improving workflows:** connect feedback to the next attempt through
199
+ [Reward Memory](loopx/capabilities/reward_memory/README.md), and evaluate
200
+ candidate changes through [Explore](loopx/capabilities/explore/README.md).
201
+ Both are optional. The link to **recursive self-improvement (RSI)** is the
202
+ engineering loop—propose, test, review, retain—not a claim that LoopX has
203
+ demonstrated autonomous model improvement or compounding capability gains.
204
+
205
+ A personal steward is an interaction role, not a second source of authority.
206
+ Background execution still needs an available host and configured runtime.
207
+ The [overall roadmap](docs/architecture/rfcs/loopx-overall-roadmap-v0.md)
208
+ separates shipped foundations from the next end-to-end acceptance milestones.
209
+
210
+ <a id="see-it-in-action"></a>
211
+
212
+ ## Evidence
213
+
214
+ <a id="lhtb-results"></a>
215
+
216
+ ### LHTB: Higher Mean Reward With the Same Model
217
+
218
+ **LoopX 1.0.3 Heartbeat reaches 0.4948 mean reward across 46 matched tasks:**
219
+ **+17.3% over Plain Codex** and **+10.6% over native Codex Goal**.
220
+ All three use GPT-5.6 Sol, max reasoning effort, and disabled Web Search.
221
+ [Long-Horizon Terminal-Bench](https://zli12321.github.io/LHTB/index.html) goes beyond coding: these tasks span research
222
+ reproduction, scientific simulation, multimodal analysis, professional
223
+ workflows, games, and systems work.
224
+
225
+ | Execution mode | Mean reward ↑ | Strict pass rate (≥0.95) | Pass rate (≥0.80) |
226
+ | --- | ---: | ---: | ---: |
227
+ | Plain Codex | 0.4218 | 7/46 (15.2%) | 12/46 (26.1%) |
228
+ | Native Codex Goal | 0.4475 | 4/46 (8.7%) | 14/46 (30.4%) |
229
+ | **LoopX 1.0.3 Heartbeat** | **0.4948** | **7/46 (15.2%)** | **15/46 (32.6%)** |
230
+
231
+ The ≥0.80 threshold is a supplementary, post-hoc view; ≥0.95 remains the
232
+ benchmark's strict solved threshold. No score in this study equals 0.80, so
233
+ these counts also match the study brief's >0.80 view.
234
+
235
+ Against native Goal, task-level rewards improve on **23**, tie on **13**, and
236
+ regress on **10** tasks. Strict solves match Plain Codex, so the mean gain is
237
+ not a claim that every task improves or that more tasks are fully solved than
238
+ Plain. Mean reward also credits partial progress.
239
+
240
+ One effective trial per task and mode; designated replacement trials and
241
+ unequal runtime/budgets, including longer budgets for some Heartbeat replacements.
242
+ These are observed system results, not an equal-budget efficiency result or
243
+ an isolated causal estimate of LoopX's effect.
244
+
245
+ [Interactive results, task comparisons and methodology](https://loopx-project.github.io/loopx/benchmarks/lhtb/)
246
+ · [Five-arm study and limits](benchmark/LHTB/studies/five-arm-gpt56sol-max/README.md)
247
+ · [Public task-level scores](benchmark/LHTB/studies/five-arm-gpt56sol-max/data.json)
248
+
249
+ Beyond benchmarks, LoopX also has inspectable long-running project evidence.
250
+ The public OpenViking contribution sequence and the redacted, owner-run
251
+ Auto ML showcase each span **200+ hours of elapsed loop lifetime**, preserving
252
+ bounded turns, decisions, and evidence updates. This measures wall-clock project
253
+ time, not continuous model execution or unattended production autonomy. Open
254
+ each visual to inspect the public-safe task graph, evidence branches, and
255
+ cross-turn decisions; each case states its source and reproducibility boundary.
256
+
257
+ <details>
258
+ <summary>Earlier 200+ hour project trajectories: OpenViking and ML experiments</summary>
259
+
260
+ ### Open-Source Issue Fix
261
+
262
+ **200+ hour public contribution arc: PR delivery and reusable fix knowledge
263
+ evolve together.**
264
+
265
+ <a href="docs/assets/long-running-loop-openviking-trajectory.png">
266
+ <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="760">
267
+ </a>
268
+
269
+ LoopX's creator uses this path as an
270
+ [OpenViking contributor](https://github.com/volcengine/OpenViking/pulls?q=is%3Apr+author%3Ahuangruiteng).
271
+ The represented public contribution sequence spans more than 200 elapsed hours
272
+ from its first PR creation to the latest represented review or update. The
273
+ [Issue-Fix capability](loopx/capabilities/issue_fix/README.md) keeps rolling
274
+ repository context, revision-stamped fix knowledge, and reviewer-facing
275
+ preferences separate; linked PRs plus current checkout source and tests remain
276
+ authoritative.
277
+
278
+ ### Auto ML Experiment
279
+
280
+ **Redacted owner-run showcase: a 200+ hour experiment arc keeps hypotheses,
281
+ matched evidence, invalid lineages, running replicates, and promote/stop gates
282
+ visible in one graph.**
283
+
284
+ <a href="docs/assets/long-running-loop-ml-experiment-trajectory.png">
285
+ <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">
286
+ </a>
287
+
288
+ The redacted public-safe graph preserves decision lineage across that 200+ hour
289
+ elapsed window. It is an owner-run showcase, not a claim of continuous compute,
290
+ independent reproduction, or a production result.
291
+
292
+ </details>
293
+
294
+ ### Used In Real Projects
295
+
296
+ - **Independent user · `>13h` C++ accuracy run.** The user reported that a
297
+ multi-stage task stayed aligned, triggered public research, adopted a
298
+ [public code-memory tool](https://github.com/DeusData/codebase-memory-mcp),
299
+ and improved final precision. [Read the evidence boundary](docs/showcases/cases/independent-cpp-accuracy-long-run.md).
300
+ - **Independent user · `4d` unattended run.** The user reported four days
301
+ without human intervention, useful ongoing work, and a periodic report
302
+ surface. [Read the redacted case](docs/showcases/cases/independent-four-day-unattended-agent.md).
303
+ - **Independent user · `7` merged PRs.** A LoopX-attributed Engine refactor is
304
+ visible in a [public issue](https://github.com/zilliztech/mfs/issues/166) and
305
+ seven merged PRs; attribution and the reported `1B+` token scale remain user
306
+ reports. [Inspect the case](docs/showcases/cases/independent-public-engine-refactor.md).
307
+
308
+ These are the three strongest current cases, not the full inventory. Browse the
309
+ [complete Showcase catalog](docs/showcases/README.md) for contributor cases,
310
+ creator dogfooding, reproducible demos, and explicit evidence-strength labels.
311
+
312
+ ### Exploratory Benchmark Studies
313
+
314
+ - **[SWE-Marathon](https://loopx-project.github.io/loopx/benchmarks/swe-marathon/):**
315
+ Five execution modes on 15 matched tasks compare self-verification, scores,
316
+ and cost. More self-verification did not consistently yield higher scores.
317
+ - **[LHTB × LoopX](https://loopx-project.github.io/loopx/benchmarks/lhtb/):**
318
+ The [results above](#lhtb-results) lead into five execution mechanisms,
319
+ task-level comparisons, regressions, and exploratory task-type analysis.
320
+ - **[DeepSWE behavior analysis](https://loopx-project.github.io/loopx/benchmarks/deepswe/behavior-discovery/)** (Chinese):
321
+ Selected cases examine how domain hints relate to requirement retention and
322
+ verification choices, offering mechanism hypotheses for further testing.
323
+
324
+ SWE-Marathon and LHTB have one effective trial per task and mode; DeepSWE uses
325
+ selected cases and post-hoc analysis.
326
+
327
+ More inspectable surfaces:
328
+
329
+ - the [public homepage](https://loopx-project.github.io/loopx/) for the product
330
+ narrative, quick start, and long-running evidence;
331
+ - the [complete Showcase catalog](docs/showcases/README.md) and its
332
+ [bilingual hosted index](docs/showcases/index.html);
333
+ - the [Agent collaboration guide](docs/product/use-cases/cross-runtime/README.md) for dependent artifacts, independent review and returned results;
334
+ - the public [user manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg).
335
+
336
+ <a id="quick-start"></a>
337
+
338
+ ## Try LoopX
339
+
340
+ Requirements: Python 3.11+ and Node.js 22.22.3+; Node.js 24 LTS is recommended.
341
+ Use an active Python environment whose console scripts are on `PATH`; macOS and
342
+ Linux use a POSIX shell, while native Windows uses PowerShell 7. Node.js runs
343
+ the managed, idle-exiting TypeScript Effect core; LoopX starts it automatically.
344
+ Git is only needed for contributor clone/canary workflows.
345
+
346
+ Install from PyPI without cloning:
347
+
348
+ ```bash
349
+ python3 -m pip install --upgrade loopx
350
+ loopx workflow-skills --install
351
+ loopx doctor
352
+ ```
353
+
354
+ Existing installs can use `loopx update plan` and `loopx update apply`; LoopX
355
+ keeps the detected pip, pipx, or archive owner instead of switching channels.
356
+
357
+ On native Windows PowerShell 7, use the same PyPI release without a POSIX
358
+ compatibility layer:
359
+
360
+ ```powershell
361
+ py -3.11 -m pip install --upgrade loopx
362
+ loopx workflow-skills --install
363
+ loopx doctor
364
+ ```
365
+
366
+ Restart your agent host after first install so it reloads the workflow skills.
367
+ See [Installing LoopX](docs/guides/installing-loopx.md) for `pipx`, host
368
+ command surfaces, native Windows checkout installation, upgrade, rollback,
369
+ uninstall, and the archive fallback.
370
+
371
+ Then connect from your project root:
372
+
373
+ ```bash
374
+ cd /path/to/your-project
375
+ loopx connect
376
+ loopx status
377
+ ```
378
+
379
+ If the project has not been initialized and `connect` tells you state is
380
+ missing, use the guided path:
381
+
382
+ ```bash
383
+ loopx start-goal --guided --project . --goal-text "Your long-running objective"
384
+ ```
385
+
386
+ LoopX should reuse existing state rather than overwrite it. Keep `.loopx/`,
387
+ `.codex/goals/`, and `.local/` ignored.
388
+
389
+ ### Start From Your Agent
390
+
391
+ | Host | Recommended start | Loop driver |
392
+ | --- | --- | --- |
393
+ | 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` |
394
+ | Codex App over SSH | `loopx agent-onboard --agent-type codex-app-ssh --project .` | The returned visible `/goal <task_body>` |
395
+ | 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 |
396
+ | Claude Code | Install the opt-in adapter, then run `/loopx <task>` followed by `/loop`. | Native Claude Code `/loop` gated by LoopX |
397
+ | 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 |
398
+ | OpenCode | Install the static command facade; opt in to `--with-goal-bridge` for recurring goals. | OpenCode command facade and explicit goal bridge |
399
+ | 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) |
400
+ | 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` |
401
+ | 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 |
402
+ | Kiro CLI | Install the skill facade with `loopx slash-commands --install --surface kiro-cli`, then run `/loopx <complex task>` from a `kiro-cli` session in the project. | The session's native `/goal --max <N> <task_body> Done when: <criteria>` loop, with the acceptance criteria stated inside the goal statement because the host derives them from it, bounded by the host's own iteration budget (default 5) and settled through the built-in `goal` completion contract; the facade instructs every turn and iteration to re-enter through `quota should-run` — advisory pacing, not a host-enforced gate |
403
+ | DeepSeek Harness (dsh) | Install the [native DSH plugin](packages/dsh-loopx-plugin/README.md), select the `loopx` skill, and describe the task. The [dsh goal-mode adapter](loopx/dsh_goal_mode/README.md) remains available for headless turns. | Native same-session continuation and GoalBar, or headless dsh segments; both remain gated by LoopX authority |
404
+ | Cursor, shell, or custom runner | Use the installer and `loopx doctor`; connect manually or call LoopX from your runner. | Your shell, scheduler, or runner |
405
+
406
+ The exact, copy-ready setup messages and host recovery paths live in
407
+ [Getting Started](docs/guides/getting-started.md). Host integrations can inspect
408
+ the [Codex App host command registry contract](docs/reference/protocols/codex-app-host-command-registry-v0.md),
409
+ the [Codex CLI packaged install path](docs/product/runtimes/codex-cli/codex-cli-packaged-install.md),
410
+ the [Claude Code adapter](loopx/claude_goal_mode/README.md), the
411
+ [KunlunCode native Goal adapter](loopx/kunluncode_goal_mode/README.md), the
412
+ [Kiro CLI goal-mode adapter](loopx/kiro_cli_goal_mode/README.md), or the
413
+ [DeepSeek Harness turn adapter](loopx/dsh_goal_mode/README.md).
414
+
415
+ See the [60-second DSH × LoopX Replan recording and reproducible
416
+ fixture](docs/showcases/cases/dsh-loopx-replan-demo.md) for the native path:
417
+ install the plugin, select one skill, change a material constraint, and inspect
418
+ the preserved decision trail.
419
+
420
+ For custom runners, start with the
421
+ [minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md)
422
+ (`python3 examples/custom-runtime-minimal-cli-turn-smoke.py`), then the full
423
+ [Embed LoopX in Your Agent Runner](docs/guides/custom-agent-runner-integration.md)
424
+ guide and the [worker bridge install contract](docs/integrations/worker-bridge-install-contract.md).
425
+ The core tick is deliberately small:
426
+
427
+ ```text
428
+ loopx quota should-run # should this registered agent act now?
429
+ loopx todo claim # who owns this slice?
430
+ loopx todo update # what changed?
431
+ loopx refresh-state # what should the next turn see?
432
+ loopx quota spend-slot # account for a completed, validated slice
433
+ ```
434
+
435
+ ### First-Run Feedback
436
+
437
+ If LoopX works for you, a one-minute public issue helps us learn what a real
438
+ first run looks like. It is optional, contains no telemetry, and should not
439
+ include logs, paths, credentials, internal project names, or goal contents:
440
+
441
+ - [First-run feedback](https://github.com/loopx-project/loopx/issues/new?template=first_run.yml)
442
+ - [Usage story for longer runs](https://github.com/loopx-project/loopx/issues/new?template=usage_story.yml)
443
+
444
+ `loopx first-run-report` prints the same prefilled link locally without
445
+ sending anything.
446
+
447
+ Basic usage statistics default on after first-use disclosure: a daily random-ID
448
+ heartbeat for platform support and continued use, plus separate ID-free CLI
449
+ counts. No content is collected. Disable both in Settings → Capability Center
450
+ or with `loopx usage-ping disable` / `LOOPX_USAGE_PING=0`; inspect payloads with
451
+ `loopx usage-ping status`. See [Basic usage statistics](docs/reference/usage-ping.md).
452
+
453
+ A successful connection has:
454
+
455
+ - `loopx doctor` passing;
456
+ - `.loopx/registry.json` and a projected active goal state;
457
+ - `loopx status` showing the current objective, concrete user gate, and next
458
+ agent todo;
459
+ - a visible loop driver or an exact activation instruction;
460
+ - local runtime state ignored rather than committed.
461
+
462
+ Clone-based install is only for contributors who want the live canary wrapper:
463
+
464
+ ```bash
465
+ git clone https://github.com/loopx-project/loopx ~/loopx
466
+ ~/loopx/scripts/install-local.sh
467
+ loopx doctor
468
+ ```
469
+
470
+ <a id="capability-surface"></a>
471
+
472
+ ## Capabilities
473
+
474
+ LoopX keeps the architecture explicit so the same governed outcome can survive
475
+ a change of agent harness or external provider. The terms describe different
476
+ boundaries rather than interchangeable kinds of plugin:
477
+
478
+ | Boundary | Meaning | Go deeper |
479
+ | --- | --- | --- |
480
+ | **Kernel** | Owns durable goal, todo, gate, evidence, quota, recovery, and scheduling truth. | [Architecture](docs/architecture.md) |
481
+ | **Capability** | Defines a stable, provider-neutral contract for producing one bounded, verifiable caller outcome from LoopX state. | [Capability catalog](loopx/capabilities/README.md) |
482
+ | **Provider** | Calls an external system or local implementation and returns bounded observations, effect results, and readback. | [Provider responsibilities](docs/reference/extensions.md#runtime-responsibilities) |
483
+ | **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) |
484
+
485
+ Host declarations such as `--available-capability shell` describe observed
486
+ execution support. They are runtime capacities in this product map, not product
487
+ capabilities and not permission grants. The effective capability still applies
488
+ its own policy and authority checks before proposing a transition.
489
+
490
+ ### Core Control-Plane Promises
491
+
492
+ The Kernel folds its mechanics into five questions. Each question delivers one
493
+ product promise on top of any agent harness: objective → long-horizon state;
494
+ next → semantic decisions; human judgment → human-agent collaboration;
495
+ evidence → recovery; continuation → governance.
496
+
497
+ | Question | What LoopX keeps visible |
498
+ | --- | --- |
499
+ | What is the objective? | The active goal, explicit scope, and current authority. |
500
+ | What happens next? | Ordered user and agent todos, ownership, claims, and leases. |
501
+ | What needs human judgment? | Concrete user gates instead of a vague "waiting for owner." |
502
+ | What evidence changed? | Compact run history, validation, blockers, and accepted writeback. |
503
+ | May the loop continue? | Quota, capabilities, safe fallback, scheduler hints, and stop conditions. |
504
+
505
+ ### Control-Plane Surface
506
+
507
+ | Surface | What it does | Start with |
508
+ | --- | --- | --- |
509
+ | Goal state and status | Tracks active state, todos, claims, gates, evidence, run history, and first-screen attention. | `loopx status`, `loopx diagnose`, `loopx review-packet` |
510
+ | 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) |
511
+ | 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` |
512
+ | Operator surfaces | Renders compact status without making the browser the state authority. | `loopx serve-status`, [dashboard](apps/presentation/dashboard/README.md) |
513
+ | 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) |
514
+ | 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) |
515
+ | 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) |
516
+ | 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) |
517
+ | 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) |
518
+
519
+ The shipped primitives include lifetime goals, concrete user gates, audited safe
520
+ fallbacks, peer todo ownership, quota and steering, compact run history,
521
+ evidence-backed handoff, a read-first management surface, project-level value
522
+ signals, and public/private boundary checks.
523
+
524
+ ### Product Capability Paths
525
+
526
+ Capabilities turn those generic primitives into outcome-owned work lanes. Start
527
+ from the outcome, then inspect the current registered implementation and its
528
+ write boundary:
529
+
530
+ | You need to... | Capability | Start with |
531
+ | --- | --- | --- |
532
+ | 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` |
533
+ | Qualify the exact final diff before delivery | [Change Quality](loopx/capabilities/change_quality/README.md) | `loopx capability show change-quality-qualification --format json` |
534
+ | Notice busy-but-off-goal work rounds before the periodic review | [Progress-Review Sentinel](loopx/capabilities/progress_review/README.md) | `loopx capability show progress-review-sentinel --format json` |
535
+ | Preserve a changing stack of already reviewed branches | [Integration Branch](loopx/capabilities/integration_branch/README.md) | `loopx capability show integration-branch-reconcile --format json` |
536
+ | Explore uncertain research without losing hypotheses and findings | [Explore](loopx/capabilities/explore/README.md) | `loopx capability show explore --format json` |
537
+ | Rebase decisions on current evidence and verified outcomes | [Decision Context](loopx/capabilities/decision_context/README.md) | `loopx capability show decision-context --format json` |
538
+ | Produce scheduled or progress-triggered reports with receipts | [Periodic Report](loopx/capabilities/periodic_report/README.md) | `loopx capability show periodic-report --format json` |
539
+
540
+ Run `loopx capability list --format json` for the authoritative catalog in the
541
+ installed release. A capability detail reports its user value, maturity,
542
+ provider readiness, entry commands, write boundaries, protocols, and durable
543
+ validation. Browse the [human-readable capability index](loopx/capabilities/README.md)
544
+ to choose by outcome; use [Extensions and Capabilities](docs/reference/extensions.md)
545
+ when installing or building a provider.
546
+
547
+ ### Runtime Responsibilities
548
+
549
+ | Role | Responsibility |
550
+ | --- | --- |
551
+ | **Agent** | Plans, analyzes, uses tools, and performs one bounded action through a host/runtime. |
552
+ | **Provider** | Calls external systems and returns observations, effect results, and readback. |
553
+ | **Capability** | Defines the caller outcome, normalizes provider output, validates it, and proposes a typed transition. |
554
+ | **Kernel** | Owns durable todos, gates, monitors, accepted writeback, quota, recovery, and scheduling. |
555
+
556
+ The execution path is `Agent -> Capability -> Provider`; the control path
557
+ returns `Provider readback -> Capability transition -> Kernel`. An extension is
558
+ how an optional provider is packaged and managed, not another control-plane
559
+ owner. See [Architecture](docs/architecture.md) and
560
+ [Extensions and Capabilities](docs/reference/extensions.md).
561
+
562
+ ## Advanced Paths
563
+
564
+ The first useful loop does not require every optional surface. Add these only
565
+ when the work needs them.
566
+
567
+ Inspect the current goal's read-only capability catalog before enabling an
568
+ advanced path:
569
+
570
+ ```bash
571
+ loopx configure-goal --goal-id <goal-id>
572
+ ```
573
+
574
+ Without `--execute`, this reports current/default state, fit, boundaries, and
575
+ copyable commands without changing project state.
576
+
577
+ ### Recurring Work Presets
578
+
579
+ Safe presets cover daily triage, changelog drafts, and PR watching. Start with
580
+ the [beginner preset guide](docs/product/foundations/beginner-loop-presets.md).
581
+
582
+ ```bash
583
+ loopx preset list
584
+ loopx preset show daily-triage
585
+ ```
586
+
587
+ Preset inspection is read-only. For a connected recurring goal,
588
+ `loopx ready-score --goal-id <goal-id> --agent-id <agent-id>` reports whether
589
+ the loop is ready to run repeatedly.
590
+
591
+ ### Governed Turns
592
+
593
+ LoopX can generate one pure, bounded turn decision from a validated receipt,
594
+ fresh quota state, and a provider-neutral budget. The current Codex CLI
595
+ quickstart and activation contract are documented in
596
+ [LoopX Turn for Codex CLI](docs/product/runtimes/codex-cli/loopx-turn-codex-cli-quickstart.md).
597
+
598
+ ### Explore Graph and Harness
599
+
600
+ Explore is supported, optional, and default-off. It works best when a task has
601
+ a measurable offline evaluation, baseline, treatment, and guardrails; it is not
602
+ a substitute for production approval. Start with the
603
+ [Explore capability](loopx/capabilities/explore/README.md) and its
604
+ [Lark presentation mapping](loopx/capabilities/explore/README.md#presentation-sink-lark-mapping).
605
+
606
+ ### Review Agent Work
607
+
608
+ Use `loopx review-packet` for a compact owner-facing view of decisions,
609
+ evidence, validation, and unresolved gates. The
610
+ [intelligent management surface](docs/product/surfaces/intelligent-management-surface.md)
611
+ describes the operator model; the
612
+ [project-level reward model](docs/product/foundations/project-level-reward-model.md)
613
+ describes conservative value signals across output quantity, quality, token
614
+ cost, and user attention cost.
615
+
616
+ For a concrete peer workflow, start with the
617
+ [Agent collaboration guide](docs/product/use-cases/cross-runtime/README.md):
618
+ a builder consumes an analyst's artifact, obtains independent review, handles
619
+ an owner correction and returns the checked result. The guide distinguishes
620
+ the runnable same-host example from the earlier cross-runtime design sketch.
621
+
622
+ ### App and Projection Paths
623
+
624
+ - Local read-first UI: [dashboard guide](apps/presentation/dashboard/README.md)
625
+ - Public product overview: [public homepage](https://loopx-project.github.io/loopx/)
626
+ - Documentation portal: [hosted docs](https://loopx-project.github.io/loopx/docs/)
627
+ - Feishu/Lark projection: [Lark Kanban adapter](docs/integrations/lark-kanban-control-plane-adapter.md)
628
+ - Generic host integration: [integration guide](docs/integration.md)
629
+ - Custom multi-agent runner:
630
+ [minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md),
631
+ then [custom runner integration](docs/guides/custom-agent-runner-integration.md)
632
+
633
+ Optional projections make state easier to inspect; they do not become the
634
+ source of truth.
635
+
636
+ ### Operating and Recovery
637
+
638
+ Start daily inspection with:
639
+
640
+ ```bash
641
+ loopx status
642
+ loopx history --goal-id your-project-goal
643
+ loopx quota should-run --goal-id your-project-goal
644
+ ```
645
+
646
+ Automatic turns must check quota first and append spend only after validated
647
+ writeback. Quiet skips, preflight failures, and dry-run previews do not spend.
648
+ When a user gate blocks one lane, a separately audited safe fallback may
649
+ continue, but it must not bypass the gate.
650
+
651
+ Peer agents use `loopx todo claim` before delivery and `loopx todo update`
652
+ after validation so ownership and evidence remain visible.
653
+
654
+ Scheduler cadence follows `quota should-run.scheduler_hint`; installed Codex
655
+ App automations acknowledge the current hint through the returned
656
+ `ack_hint.cli_args`. Collision recovery, monitor semantics, self-repair, and
657
+ the exact operator commands are maintained in
658
+ [Getting Started](docs/guides/getting-started.md),
659
+ [Quota Allocation](docs/quota-allocation.md), and
660
+ [Long-Task Cadence Policy](docs/operations/long-task-cadence-policy.md).
661
+
662
+ Before publishing public docs or examples:
663
+
664
+ ```bash
665
+ loopx check \
666
+ --scan-path README.md \
667
+ --scan-path docs/ \
668
+ --scan-path examples/
669
+ ```
670
+
671
+ ## Current Technical Directions
672
+
673
+ LoopX has three active strategic programs plus an architecture and research
674
+ incubator. These are direction signals, not delivery promises; `main`, released
675
+ artifacts, and stable reference contracts remain the source of shipped truth.
676
+
677
+ - **Long-Horizon Benchmarks and Evidence:** reproducible capability evidence
678
+ and controlled mechanism research across complementary benchmark
679
+ environments. [Direction tracker](https://github.com/loopx-project/loopx/issues/3243)
680
+ - **Operator Surface and IM Integration:** an operator workspace, session
681
+ records, and bounded collaboration surfaces. The Personal Workspace is
682
+ shipped; unified steward, execution, and recovery journeys remain under
683
+ qualification, with `@maxliux5` as implementation lead.
684
+ [Direction tracker](https://github.com/loopx-project/loopx/issues/3244)
685
+ - **Shared Goal Authority and Cross-host Coordination:** provider-neutral
686
+ coordination for explicitly shared goals, with NoKV as an unpromoted
687
+ provider candidate rather than a new control-plane authority.
688
+ [Direction tracker](https://github.com/loopx-project/loopx/issues/3245)
689
+ - **Architecture and Research Incubator:** Effect Program hardening,
690
+ TypeScript parity migration, hierarchical stride, research exploration,
691
+ human attention, artifact lifecycle, and memory utility work at explicitly
692
+ different maturity levels.
693
+ [Direction tracker](https://github.com/loopx-project/loopx/issues/3246)
694
+
695
+ Read the canonical
696
+ [Technical Directions map](docs/project/technical-directions.md) for stages,
697
+ promotion gates, contributor-safe cuts, and ownership boundaries. Use the
698
+ pinned [GitHub Discussion](https://github.com/loopx-project/loopx/discussions/2851)
699
+ for community discussion. Core control-plane reliability continues as the
700
+ shared foundation beneath these programs.
701
+
702
+ ## Advanced Documentation
703
+
704
+ [Product website](https://loopx-project.github.io/loopx/) · [Blog](https://loopx-project.github.io/loopx/blog/) · [Developer Book](https://loopx-project.github.io/loopx/docs/book/en/)
705
+
706
+ Start with the path that matches your current task. Use the hosted
707
+ [documentation portal](https://loopx-project.github.io/loopx/docs/) for the
708
+ published docs site; the [documentation index](docs/README.md) remains the
709
+ complete source map. This list stays selective; each category index owns its
710
+ deeper documents and versioned protocols.
711
+
712
+ ### Use and Operate
713
+
714
+ - [Getting Started](docs/guides/getting-started.md): install, connect,
715
+ diagnose, daily workflow, heartbeats, dashboard, development, and commands.
716
+ - [User Manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg):
717
+ public onboarding, concepts, FAQ, and selected cases.
718
+ - [Operations](docs/operations/README.md): goal continuation, todo, cadence,
719
+ attention, and authority workflows.
720
+ - [Quota Allocation](docs/quota-allocation.md) and
721
+ [Heartbeat Automation Prompt](docs/heartbeat-automation-prompt.md): scheduler
722
+ eligibility, spend, and scheduled continuation.
723
+ - [Dashboard](apps/presentation/dashboard/README.md) and
724
+ [Status Data Contract](docs/status-data-contract.md): operator-facing state
725
+ and projection contracts.
726
+ - [Release Readiness](docs/product/release-readiness.md): install/update paths,
727
+ compatibility gates, release notes, and safe-to-depend-on surfaces.
728
+
729
+ ### Understand the Control Plane
730
+
731
+ - [Architecture](docs/architecture.md): lifetime-goal invariant and kernel.
732
+ - [State Interaction Model](docs/state-interaction-model.md): actors, stores,
733
+ interaction contract, and writeback.
734
+ - [Concepts](docs/concepts/README.md): reusable routing, gate, evidence,
735
+ projection, and planning patterns.
736
+ - [Product Foundations](docs/product/foundations/README.md): Loop Engineering
737
+ principles, project-level reward, and reward-style replanning.
738
+ - [Product Vision](docs/product/vision.md): the broader Loop Agent direction.
739
+
740
+ ### Integrate and Extend
741
+
742
+ - [Integration Guide](docs/integration.md)
743
+ - [Minimal Custom Runtime Example](docs/guides/minimal-custom-runtime-example.md)
744
+ - [Custom Agent Runner Integration](docs/guides/custom-agent-runner-integration.md)
745
+ - [Integrations](docs/integrations/README.md): runtime, host, collaboration, and
746
+ external-system adapters, including worker bridge and Lark.
747
+ - [Extensions and Capabilities](docs/reference/extensions.md)
748
+
749
+ ### Build and Review LoopX
750
+
751
+ - [Developer Guide](docs/development/README.md): contributor workflows,
752
+ benchmark development, documentation layout, and quality gates.
753
+ - [Reference and Protocols](docs/reference/README.md): stable contracts and
754
+ versioned implementation protocols, including host command and reward memory
755
+ architecture.
756
+ - [Control-Plane Developer Course](docs/development/control-plane-course/README.md):
757
+ nine Chinese, code-led lectures.
758
+ - [Testing and Quality](docs/development/testing-and-quality.md): validation
759
+ layers and risk-based checks.
760
+ - [Public/Private Boundary](docs/public-private-boundary.md): safe fixtures,
761
+ examples, evidence, and publication.
762
+
763
+ ### Inspect Outcomes
764
+
765
+ - [Showcase Catalog](docs/showcases/README.md): public-safe cases and evidence
766
+ labels.
767
+ - [Research and Evidence](docs/research/README.md): benchmark investigations
768
+ and source-backed findings.
769
+ - [Update Notes](docs/update-notes/README.md): public-safe progress notes.
770
+
771
+ ### Project and Community
772
+
773
+ - [Current Technical Directions](docs/project/technical-directions.md)
774
+ - [Project Governance](.github/GOVERNANCE.md)
775
+ - [Contributing](CONTRIBUTING.md) and [Contributor Tasks](docs/development/contributor-tasks.md)
776
+ - [Authors and Contributors](docs/project/authors.md)
777
+ - [Project History](docs/project/history.md)
778
+ - [Name and Marks](docs/project/trademarks.md)
779
+ - [Brand Guide for External Use](docs/project/brand-guide.md): how projects and companies may reference LoopX, its integrations, and its artwork
780
+ - [ADOPTERS](ADOPTERS.md): voluntary self-attested adoption directory
781
+ - [Ecosystem Adoption](docs/community/ecosystem-adoption.md) - integrations,
782
+ sampling, and derivatives we observe and track
783
+
784
+ ## Partner Projects
785
+
786
+ LoopX welcomes collaboration with other open-source projects to build the
787
+ long-running agent ecosystem. Our confirmed partners include:
788
+
789
+ - [OpenViking](https://github.com/volcengine/OpenViking) - Self-evolving
790
+ context database for AI agents
791
+ - [NoKV](https://github.com/NoKV-Lab/NoKV) - AI native distributed file system
792
+
793
+ <a id="community--feedback"></a>
794
+
795
+ ## Community and Feedback
796
+
797
+ LoopX is already running real long-running agent goals and is under active
798
+ development. The most useful feedback comes from real long-running agent
799
+ projects: where the control plane helped, where it felt heavy, and which gates
800
+ or handoffs disappeared from view.
801
+
802
+ - Use [GitHub Issues](https://github.com/loopx-project/loopx/issues) for
803
+ reproducible bugs, install problems, and feature requests.
804
+ - Open PRs for docs fixes, showcase writeups, and small public-safe examples.
805
+ - Join the [Discord community](https://discord.gg/XmGgQyCFZd), or use Lark or
806
+ WeChat below.
807
+
808
+ See [Support](.github/SUPPORT.md) for channel routing, service boundaries, and
809
+ official publication sources.
810
+
811
+ <p align="center">
812
+ <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>
813
+ <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>
814
+ </p>
815
+ <p align="center">
816
+ <sub><strong>Lark:</strong> scan to join directly<br><strong>WeChat: <code>huangrt00</code></strong> · mention LoopX in the friend request</sub>
817
+ </p>
818
+
819
+ ## Contributing
820
+
821
+ External contributors should start with
822
+ [Contributor Tasks](docs/development/contributor-tasks.md) for public, claimable work and
823
+ [Contributing](CONTRIBUTING.md) for setup, validation, and boundary rules.
824
+ Project roles and public history are recorded in
825
+ [Governance](.github/GOVERNANCE.md),
826
+ [Authors and Contributors](docs/project/authors.md), and
827
+ [Project History](docs/project/history.md).
828
+
829
+ LoopX keeps local active state separate from the public repository. Do not
830
+ commit `.loopx/`, `.codex/goals/`, live `ACTIVE_GOAL_STATE.md`, raw benchmark
831
+ traces, credentials, private logs, or operator artifacts.
832
+
833
+ ## Current Status
834
+
835
+ LoopX 1.0 is a usable local control plane for long-running agent work and is
836
+ entering broader adoption. It is not a full agent platform, an agent runtime, or
837
+ an autonomous production controller.
838
+
839
+ Today LoopX ships a durable state kernel for goals, typed todos and decision
840
+ scopes, peer claims and leases, evidence and writeback, quota-aware scheduling,
841
+ and cross-turn continuation. Guided start, recurring heartbeat, isolated Codex
842
+ CLI turns, evidence-backed Issue-Fix admission, optional Explore and auto
843
+ research paths, public validation canaries, and the multi-project Personal
844
+ Workspace all build on that shared control state.
845
+
846
+ Support levels remain explicit. The state and CLI contracts are the stable
847
+ center; several host integrations and advanced paths are optional, default-off,
848
+ or experimental. LoopX does not grant credentials, approve destructive or
849
+ production actions, publish on a user's behalf without authorization, or turn
850
+ an unverified run into evidence of success.
851
+
852
+ Current investment is organized through the
853
+ [Technical Directions map](docs/project/technical-directions.md): long-horizon
854
+ benchmark evidence, operator surface and IM integration, shared-goal cross-host
855
+ coordination, and an explicitly staged architecture and research incubator.
856
+
857
+ ## Star History
858
+
859
+ <p align="center">
860
+ <a href="https://github.com/loopx-project/loopx/stargazers"><img src="https://loopx-project.github.io/loopx/site-assets/star-history.svg" alt="LoopX GitHub star history from verified snapshots" width="800"></a><br>
861
+ <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>
862
+ </p>
863
+
864
+ ## License
865
+
866
+ Apache License 2.0 beginning with `v0.4.8`. See [LICENSE](LICENSE) and
867
+ [NOTICE](NOTICE). Releases through `v0.4.7` remain under their original MIT
868
+ terms; the historical text and notice are preserved in
869
+ [LICENSE-MIT](LICENSE-MIT). The [licensing policy](docs/project/licensing.md)
870
+ explains the version, contribution, patent-grant, and open-core boundaries.
871
+
872
+ [osai-verify: eb42dd9cf910399988f0]: #