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