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