loopx 0.5.2__tar.gz → 0.5.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- loopx-0.5.4/PKG-INFO +782 -0
- loopx-0.5.4/README.md +753 -0
- loopx-0.5.4/loopx/__init__.py +5 -0
- loopx-0.5.4/loopx/agent_onboarding.py +706 -0
- loopx-0.5.4/loopx/agy_goal_mode/README.md +88 -0
- loopx-0.5.4/loopx/agy_goal_mode/__init__.py +118 -0
- loopx-0.5.4/loopx/attached_session_api.py +110 -0
- loopx-0.5.4/loopx/bootstrap.py +1213 -0
- loopx-0.5.4/loopx/bootstrap_command_pack.py +2223 -0
- loopx-0.5.4/loopx/canary/planner.py +1979 -0
- loopx-0.5.4/loopx/canary/premerge.py +1135 -0
- loopx-0.5.4/loopx/canary/qualification_profiles.py +308 -0
- loopx-0.5.4/loopx/canary/quality_surface_catalog.py +842 -0
- loopx-0.5.4/loopx/capabilities/README.md +141 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/README.md +1260 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/__init__.py +373 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/adaptive_concurrency.py +388 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/catalog_entry.py +954 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/concurrency_envelope.py +764 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/experiment_board.py +1039 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/external_agent.py +499 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/factorial_contrast.py +519 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/four_arm_contract.py +233 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/integrity.py +767 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/native_codex_isolation.py +530 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/native_codex_profile.py +643 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/provider_gateway.py +214 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/runtime_continuity.py +140 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/study_projection.py +1321 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/traex_evidence.py +425 -0
- loopx-0.5.4/loopx/capabilities/benchmark_toolkit/treatment_continuation.py +183 -0
- loopx-0.5.4/loopx/capabilities/catalog.py +261 -0
- loopx-0.5.4/loopx/capabilities/decision_context/README.md +243 -0
- loopx-0.5.4/loopx/capabilities/deep_research/README.md +72 -0
- loopx-0.5.4/loopx/capabilities/deep_research/__init__.py +5 -0
- loopx-0.5.4/loopx/capabilities/deep_research/catalog_entry.py +125 -0
- loopx-0.5.4/loopx/capabilities/deep_research/runtime.py +874 -0
- loopx-0.5.4/loopx/capabilities/integration_branch/README.md +165 -0
- loopx-0.5.4/loopx/capabilities/material_lifecycle/README.md +219 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/README.md +512 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/__init__.py +77 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/bindings.py +826 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/catalog_entry.py +191 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/cli.py +365 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/core.py +731 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/incremental.py +504 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/pending_intent.py +1145 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/post_writeback_hook.py +430 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/presets.py +104 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/project_progress_snapshot.py +169 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/runtime_producer.py +352 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/stage_completion.py +290 -0
- loopx-0.5.4/loopx/capabilities/periodic_report/triggers.py +596 -0
- loopx-0.5.4/loopx/capabilities/pr_review_queue/README.md +552 -0
- loopx-0.5.4/loopx/capabilities/pr_review_queue/catalog_entry.py +126 -0
- loopx-0.5.4/loopx/capabilities/pr_review_queue/core.py +579 -0
- loopx-0.5.4/loopx/capabilities/pr_review_queue/review_contract.py +654 -0
- loopx-0.5.4/loopx/capabilities/repository_change_window/README.md +233 -0
- loopx-0.5.4/loopx/capabilities/repository_change_window/__init__.py +45 -0
- loopx-0.5.4/loopx/capabilities/repository_change_window/catalog_entry.py +127 -0
- loopx-0.5.4/loopx/capabilities/repository_change_window/git_hook.py +1139 -0
- loopx-0.5.4/loopx/capabilities/repository_change_window/interaction_hook.py +58 -0
- loopx-0.5.4/loopx/chat.py +463 -0
- loopx-0.5.4/loopx/chat_actions.py +1541 -0
- loopx-0.5.4/loopx/chat_agent.py +736 -0
- loopx-0.5.4/loopx/chat_goal_lifecycle_actions.py +162 -0
- loopx-0.5.4/loopx/chat_runtime.py +1066 -0
- loopx-0.5.4/loopx/chat_store.py +1253 -0
- loopx-0.5.4/loopx/cli.py +819 -0
- loopx-0.5.4/loopx/cli_commands/__init__.py +281 -0
- loopx-0.5.4/loopx/cli_commands/benchmark_boundary.py +629 -0
- loopx-0.5.4/loopx/cli_commands/benchmark_concurrency.py +248 -0
- loopx-0.5.4/loopx/cli_commands/benchmark_dispatch.py +160 -0
- loopx-0.5.4/loopx/cli_commands/benchmark_experiment_board.py +246 -0
- loopx-0.5.4/loopx/cli_commands/benchmark_external_agent.py +186 -0
- loopx-0.5.4/loopx/cli_commands/benchmark_study.py +195 -0
- loopx-0.5.4/loopx/cli_commands/bootstrap_connect.py +262 -0
- loopx-0.5.4/loopx/cli_commands/deepresearch.py +373 -0
- loopx-0.5.4/loopx/cli_commands/doctor.py +49 -0
- loopx-0.5.4/loopx/cli_commands/extension.py +293 -0
- loopx-0.5.4/loopx/cli_commands/lark_inbox.py +715 -0
- loopx-0.5.4/loopx/cli_commands/post_writeback.py +97 -0
- loopx-0.5.4/loopx/cli_commands/pr_review.py +290 -0
- loopx-0.5.4/loopx/cli_commands/project_lifecycle.py +995 -0
- loopx-0.5.4/loopx/cli_commands/project_lifecycle_sinks.py +72 -0
- loopx-0.5.4/loopx/cli_commands/quota.py +938 -0
- loopx-0.5.4/loopx/cli_commands/quota_context.py +281 -0
- loopx-0.5.4/loopx/cli_commands/quota_registration.py +310 -0
- loopx-0.5.4/loopx/cli_commands/quota_request.py +155 -0
- loopx-0.5.4/loopx/cli_commands/quota_scheduler_followup.py +225 -0
- loopx-0.5.4/loopx/cli_commands/registry_admin.py +695 -0
- loopx-0.5.4/loopx/cli_commands/registry_admin_lifecycle.py +350 -0
- loopx-0.5.4/loopx/cli_commands/slash_commands.py +161 -0
- loopx-0.5.4/loopx/cli_commands/start_goal.py +352 -0
- loopx-0.5.4/loopx/cli_commands/starter_bootstrap.py +186 -0
- loopx-0.5.4/loopx/cli_commands/status.py +870 -0
- loopx-0.5.4/loopx/cli_commands/support_control.py +953 -0
- loopx-0.5.4/loopx/cli_commands/support_control_heartbeat_registration.py +171 -0
- loopx-0.5.4/loopx/cli_commands/task_lease.py +235 -0
- loopx-0.5.4/loopx/cli_commands/todo.py +1082 -0
- loopx-0.5.4/loopx/cli_commands/todo_argument_validation.py +609 -0
- loopx-0.5.4/loopx/cli_commands/todo_event.py +162 -0
- loopx-0.5.4/loopx/cli_commands/turn.py +991 -0
- loopx-0.5.4/loopx/cli_commands/turn_dsh_host.py +41 -0
- loopx-0.5.4/loopx/cli_commands/turn_inspection.py +64 -0
- loopx-0.5.4/loopx/cli_commands/turn_registration.py +244 -0
- loopx-0.5.4/loopx/cli_commands/turn_rendering.py +150 -0
- loopx-0.5.4/loopx/cli_commands/turn_selection.py +42 -0
- loopx-0.5.4/loopx/cli_runtime.py +354 -0
- loopx-0.5.4/loopx/configure_goal.py +1496 -0
- loopx-0.5.4/loopx/contract.py +1039 -0
- loopx-0.5.4/loopx/control_plane/agents/agent_lane_recommendation.py +711 -0
- loopx-0.5.4/loopx/control_plane/agents/delivery_workspace.py +110 -0
- loopx-0.5.4/loopx/control_plane/agents/delivery_workspace.ts +232 -0
- loopx-0.5.4/loopx/control_plane/agents/workspace_guard.py +398 -0
- loopx-0.5.4/loopx/control_plane/capability_hooks.py +984 -0
- loopx-0.5.4/loopx/control_plane/capability_hooks.ts +822 -0
- loopx-0.5.4/loopx/control_plane/coordination/__init__.py +1 -0
- loopx-0.5.4/loopx/control_plane/coordination/authority_core.py +1019 -0
- loopx-0.5.4/loopx/control_plane/coordination/executor.py +1203 -0
- loopx-0.5.4/loopx/control_plane/coordination/file_provider.py +309 -0
- loopx-0.5.4/loopx/control_plane/coordination/goal_state_shadow.py +99 -0
- loopx-0.5.4/loopx/control_plane/coordination/head.py +831 -0
- loopx-0.5.4/loopx/control_plane/coordination/local_snapshot.py +207 -0
- loopx-0.5.4/loopx/control_plane/coordination/nokv_jsonl_helper.py +610 -0
- loopx-0.5.4/loopx/control_plane/effect_program.py +813 -0
- loopx-0.5.4/loopx/control_plane/effect_program.ts +896 -0
- loopx-0.5.4/loopx/control_plane/effect_runtime.py +727 -0
- loopx-0.5.4/loopx/control_plane/effect_runtime_errors.ts +129 -0
- loopx-0.5.4/loopx/control_plane/effect_runtime_handlers.ts +576 -0
- loopx-0.5.4/loopx/control_plane/effect_runtime_io.ts +440 -0
- loopx-0.5.4/loopx/control_plane/effect_runtime_server.ts +137 -0
- loopx-0.5.4/loopx/control_plane/goals/active_state_event_projection.py +106 -0
- loopx-0.5.4/loopx/control_plane/goals/botmux_runtime.py +1493 -0
- loopx-0.5.4/loopx/control_plane/goals/deletion_service.py +335 -0
- loopx-0.5.4/loopx/control_plane/goals/goal_frontier/__init__.py +1892 -0
- loopx-0.5.4/loopx/control_plane/goals/goal_vision.py +174 -0
- loopx-0.5.4/loopx/control_plane/goals/start_contract.py +209 -0
- loopx-0.5.4/loopx/control_plane/goals/start_goal_todo_delta.py +224 -0
- loopx-0.5.4/loopx/control_plane/goals/vision_checkpoint.py +181 -0
- loopx-0.5.4/loopx/control_plane/goals/vision_checkpoint.ts +708 -0
- loopx-0.5.4/loopx/control_plane/governed_capability.ts +945 -0
- loopx-0.5.4/loopx/control_plane/heartbeat/builder.py +624 -0
- loopx-0.5.4/loopx/control_plane/heartbeat/rules.py +69 -0
- loopx-0.5.4/loopx/control_plane/heartbeat/task_body.py +780 -0
- loopx-0.5.4/loopx/control_plane/host_adapter_settlement.py +344 -0
- loopx-0.5.4/loopx/control_plane/operator_inbox_binding.py +55 -0
- loopx-0.5.4/loopx/control_plane/projects/registry.py +664 -0
- loopx-0.5.4/loopx/control_plane/quota/accounting_artifact_transaction.ts +910 -0
- loopx-0.5.4/loopx/control_plane/quota/cli_projection.py +759 -0
- loopx-0.5.4/loopx/control_plane/quota/codex_session_usage.py +278 -0
- loopx-0.5.4/loopx/control_plane/quota/decision_summary.py +444 -0
- loopx-0.5.4/loopx/control_plane/quota/effect_program.py +230 -0
- loopx-0.5.4/loopx/control_plane/quota/goal_boundary.py +479 -0
- loopx-0.5.4/loopx/control_plane/quota/heartbeat_receipt.py +433 -0
- loopx-0.5.4/loopx/control_plane/quota/live_decision.py +508 -0
- loopx-0.5.4/loopx/control_plane/quota/monitor_poll.py +798 -0
- loopx-0.5.4/loopx/control_plane/quota/monitor_poll_commit.ts +2126 -0
- loopx-0.5.4/loopx/control_plane/quota/projection_repair.py +264 -0
- loopx-0.5.4/loopx/control_plane/quota/scheduler_ack.py +422 -0
- loopx-0.5.4/loopx/control_plane/quota/settlement.py +220 -0
- loopx-0.5.4/loopx/control_plane/quota/settlement_cli.py +365 -0
- loopx-0.5.4/loopx/control_plane/quota/settlement_phase.ts +73 -0
- loopx-0.5.4/loopx/control_plane/quota/settlement_precedence.py +179 -0
- loopx-0.5.4/loopx/control_plane/quota/settlement_readback.ts +788 -0
- loopx-0.5.4/loopx/control_plane/quota/settlement_workspace_causality.py +375 -0
- loopx-0.5.4/loopx/control_plane/quota/settlement_workspace_causality.ts +391 -0
- loopx-0.5.4/loopx/control_plane/quota/should_run.py +372 -0
- loopx-0.5.4/loopx/control_plane/quota/should_run_packet.py +1491 -0
- loopx-0.5.4/loopx/control_plane/quota/should_run_prepare.py +858 -0
- loopx-0.5.4/loopx/control_plane/quota/slot_accounting.py +904 -0
- loopx-0.5.4/loopx/control_plane/quota/spend_commit.py +221 -0
- loopx-0.5.4/loopx/control_plane/quota/spend_commit.ts +863 -0
- loopx-0.5.4/loopx/control_plane/quota/spend_sources.py +115 -0
- loopx-0.5.4/loopx/control_plane/quota/turn_envelope.py +86 -0
- loopx-0.5.4/loopx/control_plane/quota/turn_envelope.ts +798 -0
- loopx-0.5.4/loopx/control_plane/quota/usage_collector.py +376 -0
- loopx-0.5.4/loopx/control_plane/quota/usage_summary.py +249 -0
- loopx-0.5.4/loopx/control_plane/quota/void_commit.py +243 -0
- loopx-0.5.4/loopx/control_plane/quota/void_commit.ts +862 -0
- loopx-0.5.4/loopx/control_plane/runtime/run_compaction.py +374 -0
- loopx-0.5.4/loopx/control_plane/runtime_decode.ts +75 -0
- loopx-0.5.4/loopx/control_plane/scheduler/arbitration.py +190 -0
- loopx-0.5.4/loopx/control_plane/scheduler/automation_liveness.py +208 -0
- loopx-0.5.4/loopx/control_plane/scheduler/execution_context.py +573 -0
- loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_commit.ts +994 -0
- loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_commit_cli.ts +53 -0
- loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_followup.ts +474 -0
- loopx-0.5.4/loopx/control_plane/scheduler/heartbeat_followup_cli.ts +300 -0
- loopx-0.5.4/loopx/control_plane/scheduler/monitor_poll_writeback.py +345 -0
- loopx-0.5.4/loopx/control_plane/scheduler/monitor_todo.py +122 -0
- loopx-0.5.4/loopx/control_plane/scheduler/scheduler_hint.py +1358 -0
- loopx-0.5.4/loopx/control_plane/scheduler/state_store.ts +637 -0
- loopx-0.5.4/loopx/control_plane/scheduler/state_transition_rules.py +398 -0
- loopx-0.5.4/loopx/control_plane/scheduler/state_transition_rules.ts +486 -0
- loopx-0.5.4/loopx/control_plane/settlement_driver.py +85 -0
- loopx-0.5.4/loopx/control_plane/testing/action_portfolio_scenarios.py +323 -0
- loopx-0.5.4/loopx/control_plane/testing/actual_default_model_behavior_portfolio.py +1498 -0
- loopx-0.5.4/loopx/control_plane/testing/cli_output_budget.py +861 -0
- loopx-0.5.4/loopx/control_plane/testing/cli_output_differential.py +622 -0
- loopx-0.5.4/loopx/control_plane/testing/cli_output_semantics.py +130 -0
- loopx-0.5.4/loopx/control_plane/testing/doubao_model_behavior_actor.py +653 -0
- loopx-0.5.4/loopx/control_plane/testing/model_behavior_action_oracles.py +41 -0
- loopx-0.5.4/loopx/control_plane/testing/model_behavior_qualification.py +937 -0
- loopx-0.5.4/loopx/control_plane/testing/model_tool_behavior.py +547 -0
- loopx-0.5.4/loopx/control_plane/testing/scoped_gate_successor_tool_behavior.py +531 -0
- loopx-0.5.4/loopx/control_plane/testing/selected_todo_tool_behavior.py +1178 -0
- loopx-0.5.4/loopx/control_plane/testing/terminal_settlement_tool_behavior.py +1182 -0
- loopx-0.5.4/loopx/control_plane/todos/active_state_todo_parser.py +148 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_fence.py +78 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_fence.ts +312 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_state.py +178 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_state.ts +267 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_transaction.py +405 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_transaction.ts +413 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_validation.py +372 -0
- loopx-0.5.4/loopx/control_plane/todos/completion_validation_plan.ts +244 -0
- loopx-0.5.4/loopx/control_plane/todos/contract.py +1477 -0
- loopx-0.5.4/loopx/control_plane/todos/deferred_resume.py +545 -0
- loopx-0.5.4/loopx/control_plane/todos/event_writeback.py +712 -0
- loopx-0.5.4/loopx/control_plane/todos/external_wait_contract.py +70 -0
- loopx-0.5.4/loopx/control_plane/todos/external_wait_writeback.py +112 -0
- loopx-0.5.4/loopx/control_plane/todos/handoff_mode.py +512 -0
- loopx-0.5.4/loopx/control_plane/todos/line_update.py +500 -0
- loopx-0.5.4/loopx/control_plane/todos/list_projection.py +536 -0
- loopx-0.5.4/loopx/control_plane/todos/markdown.py +265 -0
- loopx-0.5.4/loopx/control_plane/todos/monitor_metadata.py +338 -0
- loopx-0.5.4/loopx/control_plane/todos/mutation_authority.py +295 -0
- loopx-0.5.4/loopx/control_plane/todos/next_action.ts +527 -0
- loopx-0.5.4/loopx/control_plane/todos/next_action_runtime.py +223 -0
- loopx-0.5.4/loopx/control_plane/todos/projection.py +738 -0
- loopx-0.5.4/loopx/control_plane/todos/quota_summary.py +1173 -0
- loopx-0.5.4/loopx/control_plane/todos/resume_condition.py +219 -0
- loopx-0.5.4/loopx/control_plane/todos/resume_condition.ts +641 -0
- loopx-0.5.4/loopx/control_plane/todos/route_continuation.py +269 -0
- loopx-0.5.4/loopx/control_plane/todos/succession_warning.py +217 -0
- loopx-0.5.4/loopx/control_plane/todos/summary_item.py +278 -0
- loopx-0.5.4/loopx/control_plane/todos/todo_summary.py +1311 -0
- loopx-0.5.4/loopx/control_plane/todos/write_correctness.py +42 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/__init__.py +87 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/codex_cli.py +819 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/delivery_continuity.ts +351 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/driver.py +413 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/executor.py +1496 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/host_failure.py +146 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/host_todo_completion.ts +936 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/journal_store.py +89 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/loop_controller.py +734 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/recovery.py +121 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/session_recovery.py +128 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/settlement.py +573 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/settlement.ts +911 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/turn_journal.ts +705 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/turn_journal_effects.ts +308 -0
- loopx-0.5.4/loopx/control_plane/turn_driver/turn_journal_runtime.py +182 -0
- loopx-0.5.4/loopx/control_plane/work_items/accountable_settlement.py +72 -0
- loopx-0.5.4/loopx/control_plane/work_items/action_portfolio.py +124 -0
- loopx-0.5.4/loopx/control_plane/work_items/action_portfolio.ts +391 -0
- loopx-0.5.4/loopx/control_plane/work_items/action_selection_contract.py +155 -0
- loopx-0.5.4/loopx/control_plane/work_items/autonomous_replan_obligation.py +937 -0
- loopx-0.5.4/loopx/control_plane/work_items/delivery_outcome.py +216 -0
- loopx-0.5.4/loopx/control_plane/work_items/delivery_outcome.ts +97 -0
- loopx-0.5.4/loopx/control_plane/work_items/governed_transition_proposal.py +330 -0
- loopx-0.5.4/loopx/control_plane/work_items/interaction_contract.py +1541 -0
- loopx-0.5.4/loopx/control_plane/work_items/interaction_contract.ts +153 -0
- loopx-0.5.4/loopx/control_plane/work_items/local_lease_record.py +221 -0
- loopx-0.5.4/loopx/control_plane/work_items/operator_inbox.py +325 -0
- loopx-0.5.4/loopx/control_plane/work_items/pending_capability_intent.ts +137 -0
- loopx-0.5.4/loopx/control_plane/work_items/planning_horizon.ts +303 -0
- loopx-0.5.4/loopx/control_plane/work_items/planning_inventory.py +177 -0
- loopx-0.5.4/loopx/control_plane/work_items/planning_inventory.ts +522 -0
- loopx-0.5.4/loopx/control_plane/work_items/primary_action.py +345 -0
- loopx-0.5.4/loopx/control_plane/work_items/progress_observation.py +719 -0
- loopx-0.5.4/loopx/control_plane/work_items/progress_result.py +26 -0
- loopx-0.5.4/loopx/control_plane/work_items/project_asset.py +686 -0
- loopx-0.5.4/loopx/control_plane/work_items/refresh_recommendation.py +178 -0
- loopx-0.5.4/loopx/control_plane/work_items/refresh_recommendation.ts +294 -0
- loopx-0.5.4/loopx/control_plane/work_items/replan_settlement.py +137 -0
- loopx-0.5.4/loopx/control_plane/work_items/replan_settlement.ts +216 -0
- loopx-0.5.4/loopx/control_plane/work_items/repository_delivery.ts +100 -0
- loopx-0.5.4/loopx/control_plane/work_items/runtime_capability_reentry.py +191 -0
- loopx-0.5.4/loopx/control_plane/work_items/semantic_replan_writeback.py +480 -0
- loopx-0.5.4/loopx/control_plane/work_items/task_graph.py +1042 -0
- loopx-0.5.4/loopx/control_plane/work_items/task_lease.py +940 -0
- loopx-0.5.4/loopx/control_plane/work_items/task_lease_acquire.ts +1380 -0
- loopx-0.5.4/loopx/control_plane/work_items/task_lease_acquire_adapter.py +598 -0
- loopx-0.5.4/loopx/control_plane/work_items/task_lease_acquire_cli.ts +64 -0
- loopx-0.5.4/loopx/control_plane/work_items/task_lease_lifecycle.ts +2687 -0
- loopx-0.5.4/loopx/control_plane/work_items/task_lease_lifecycle_decision.ts +309 -0
- loopx-0.5.4/loopx/control_plane/work_items/user_action_frontier.py +50 -0
- loopx-0.5.4/loopx/control_plane/work_items/work_lane.py +742 -0
- loopx-0.5.4/loopx/dashboard_launcher.py +256 -0
- loopx-0.5.4/loopx/diagnose.py +648 -0
- loopx-0.5.4/loopx/doctor.py +1500 -0
- loopx-0.5.4/loopx/dsh_goal_mode/README.md +116 -0
- loopx-0.5.4/loopx/dsh_goal_mode/host_failure_map.py +281 -0
- loopx-0.5.4/loopx/dsh_goal_mode/turn_host_adapter.py +731 -0
- loopx-0.5.4/loopx/entrypoint.py +88 -0
- loopx-0.5.4/loopx/extensions/governed_capability_execution.py +718 -0
- loopx-0.5.4/loopx/extensions/lark/README.md +258 -0
- loopx-0.5.4/loopx/extensions/lark/bot_scopes.py +66 -0
- loopx-0.5.4/loopx/extensions/lark/docs/lark-event-inbox.md +611 -0
- loopx-0.5.4/loopx/extensions/lark/document_comment_provider.py +1193 -0
- loopx-0.5.4/loopx/extensions/lark/event_collector.py +656 -0
- loopx-0.5.4/loopx/extensions/lark/event_collector_routes.py +343 -0
- loopx-0.5.4/loopx/extensions/lark/event_collector_runtime.py +609 -0
- loopx-0.5.4/loopx/extensions/lark/event_inbox.py +812 -0
- loopx-0.5.4/loopx/extensions/lark/extension.toml +108 -0
- loopx-0.5.4/loopx/extensions/lark/goal_channel_setup.py +824 -0
- loopx-0.5.4/loopx/extensions/lark/goal_topic_connections.py +1291 -0
- loopx-0.5.4/loopx/extensions/lark/goal_topic_runtime.py +976 -0
- loopx-0.5.4/loopx/extensions/lark/group_history.py +607 -0
- loopx-0.5.4/loopx/extensions/lark/group_history_cursor.py +290 -0
- loopx-0.5.4/loopx/extensions/lark/inbox_reactions.py +1026 -0
- loopx-0.5.4/loopx/extensions/lark/inbox_reply.py +545 -0
- loopx-0.5.4/loopx/extensions/lark/miaoda_report.py +534 -0
- loopx-0.5.4/loopx/extensions/lark/outbound.py +260 -0
- loopx-0.5.4/loopx/extensions/lark/periodic_report_cli.py +215 -0
- loopx-0.5.4/loopx/extensions/lark/periodic_report_delivery.py +630 -0
- loopx-0.5.4/loopx/extensions/lark/presentation/periodic_report.py +444 -0
- loopx-0.5.4/loopx/extensions/lark/provider.py +91 -0
- loopx-0.5.4/loopx/extensions/lark/reviewer_notification.py +660 -0
- loopx-0.5.4/loopx/extensions/lark/routed_inbox.py +423 -0
- loopx-0.5.4/loopx/extensions/lark/turn_start_sync.py +792 -0
- loopx-0.5.4/loopx/extensions/manifest.py +730 -0
- loopx-0.5.4/loopx/extensions/readiness.py +167 -0
- loopx-0.5.4/loopx/extensions/runtime.py +985 -0
- loopx-0.5.4/loopx/feedback.py +587 -0
- loopx-0.5.4/loopx/file_lock.py +969 -0
- loopx-0.5.4/loopx/goal_mode_mcp.py +288 -0
- loopx-0.5.4/loopx/help_surface.py +560 -0
- loopx-0.5.4/loopx/history.py +739 -0
- loopx-0.5.4/loopx/host_loop_activation.py +1500 -0
- loopx-0.5.4/loopx/host_mode_planner.py +992 -0
- loopx-0.5.4/loopx/kunluncode_goal_mode/guards.py +117 -0
- loopx-0.5.4/loopx/long_task_cadence.py +261 -0
- loopx-0.5.4/loopx/pi_goal_mode/README.md +145 -0
- loopx-0.5.4/loopx/pi_goal_mode/loopx-goal.ts +594 -0
- loopx-0.5.4/loopx/pi_goal_mode/pi-goal-loop-runtime.mjs +1083 -0
- loopx-0.5.4/loopx/presentation/renderers/quota_markdown.py +1114 -0
- loopx-0.5.4/loopx/project_prompt.py +1263 -0
- loopx-0.5.4/loopx/python_install_owner.py +55 -0
- loopx-0.5.4/loopx/quota.py +1415 -0
- loopx-0.5.4/loopx/registry.py +649 -0
- loopx-0.5.4/loopx/release_candidate.py +277 -0
- loopx-0.5.4/loopx/rollout_event_log.py +523 -0
- loopx-0.5.4/loopx/self_update.py +1475 -0
- loopx-0.5.4/loopx/slash_command_files.py +162 -0
- loopx-0.5.4/loopx/slash_command_install.py +1434 -0
- loopx-0.5.4/loopx/slash_commands.py +266 -0
- loopx-0.5.4/loopx/state_refresh.py +1459 -0
- loopx-0.5.4/loopx/status.py +1312 -0
- loopx-0.5.4/loopx/todos.py +2277 -0
- loopx-0.5.4/loopx/turn_identity.py +32 -0
- loopx-0.5.4/loopx/upgrade.py +1090 -0
- loopx-0.5.4/loopx/visible_governance.py +684 -0
- loopx-0.5.4/loopx/web/chat/assets/index-B1C2FwbO.js +126 -0
- loopx-0.5.4/loopx/web/chat/assets/index-B8L75LO_.js +126 -0
- loopx-0.5.4/loopx/web/chat/assets/index-BepDBer4.css +1 -0
- loopx-0.5.4/loopx/web/chat/assets/index-CWBLcLBj.js +126 -0
- loopx-0.5.4/loopx/web/chat/assets/index-DODAzFAe.js +126 -0
- loopx-0.5.4/loopx/web/chat/assets/index-DaU9YYwh.js +126 -0
- loopx-0.5.4/loopx/web/chat/assets/index-Db3HU1A2.css +1 -0
- loopx-0.5.4/loopx/web/chat/assets/index-Do79u7RP.css +1 -0
- loopx-0.5.4/loopx/web/chat/assets/index-gSbSfVeP.js +126 -0
- loopx-0.5.4/loopx/web/chat/assets/index-kPzCW1DS.css +1 -0
- loopx-0.5.4/loopx/web/chat/assets/index-yQOik-72.js +126 -0
- loopx-0.5.4/loopx/web/chat/index.html +27 -0
- loopx-0.5.4/loopx/workflow_skill_install.py +403 -0
- loopx-0.5.4/loopx/zcode_goal_mode/README.md +47 -0
- loopx-0.5.4/loopx/zcode_goal_mode/__init__.py +26 -0
- loopx-0.5.4/loopx.egg-info/PKG-INFO +782 -0
- loopx-0.5.4/loopx.egg-info/SOURCES.txt +1121 -0
- loopx-0.5.4/loopx.egg-info/requires.txt +13 -0
- loopx-0.5.4/pyproject.toml +139 -0
- loopx-0.5.4/skills/loopx-benchmark/SKILL.md +190 -0
- loopx-0.5.4/skills/loopx-pr-review/SKILL.md +180 -0
- loopx-0.5.4/skills/loopx-self-repair/references/repair-patterns.md +207 -0
- loopx-0.5.4/tests/test_agy_host_surface.py +253 -0
- loopx-0.5.4/tests/test_attached_session_broker.py +751 -0
- loopx-0.5.4/tests/test_auto_research_artifact_receipt.py +558 -0
- loopx-0.5.4/tests/test_chat_session_active_turn.py +739 -0
- loopx-0.5.4/tests/test_cli_argument_diagnostics.py +1147 -0
- loopx-0.5.4/tests/test_cli_entrypoint.py +421 -0
- loopx-0.5.4/tests/test_dashboard_command.py +890 -0
- loopx-0.5.4/tests/test_deepresearch_command.py +1027 -0
- loopx-0.5.4/tests/test_doctor_install_freshness.py +527 -0
- loopx-0.5.4/tests/test_dsh_goal_mode.py +606 -0
- loopx-0.5.4/tests/test_feedback_goal_id_validation.py +123 -0
- loopx-0.5.4/tests/test_feedback_run_selection.py +105 -0
- loopx-0.5.4/tests/test_file_lock.py +350 -0
- loopx-0.5.4/tests/test_gemini_cursor_host_surfaces.py +128 -0
- loopx-0.5.4/tests/test_goal_mode_mcp_completion_validation.py +184 -0
- loopx-0.5.4/tests/test_goal_mode_mcp_settlement.py +463 -0
- loopx-0.5.4/tests/test_history_chronology.py +187 -0
- loopx-0.5.4/tests/test_host_loop_activation.py +1185 -0
- loopx-0.5.4/tests/test_host_parity_smoke.py +377 -0
- loopx-0.5.4/tests/test_kunluncode_goal_mode.py +1576 -0
- loopx-0.5.4/tests/test_license_metadata.py +61 -0
- loopx-0.5.4/tests/test_loop_turn_loop_controller.py +1023 -0
- loopx-0.5.4/tests/test_loopx_turn_codex_cli.py +737 -0
- loopx-0.5.4/tests/test_loopx_turn_driver.py +2308 -0
- loopx-0.5.4/tests/test_loopx_turn_executor.py +1997 -0
- loopx-0.5.4/tests/test_loopx_turn_host_failure.py +72 -0
- loopx-0.5.4/tests/test_loopx_turn_journal_inspection.py +575 -0
- loopx-0.5.4/tests/test_loopx_turn_settlement_parity.py +273 -0
- loopx-0.5.4/tests/test_nokv_jsonl_helper.py +590 -0
- loopx-0.5.4/tests/test_nokv_shadow_provider_probes.py +121 -0
- loopx-0.5.4/tests/test_pi_goal_mode.py +171 -0
- loopx-0.5.4/tests/test_public_package_lock_boundary.py +71 -0
- loopx-0.5.4/tests/test_registry_git_probe.py +114 -0
- loopx-0.5.4/tests/test_release_candidate.py +150 -0
- loopx-0.5.4/tests/test_scheduler_native_launcher.py +214 -0
- loopx-0.5.4/tests/test_self_update_runtime_activation.py +491 -0
- loopx-0.5.4/tests/test_slash_command_install.py +993 -0
- loopx-0.5.4/tests/test_state_file_containment.py +121 -0
- loopx-0.5.4/tests/test_state_refresh_agent_lane_action.py +278 -0
- loopx-0.5.4/tests/test_status_server_cors.py +139 -0
- loopx-0.5.4/tests/test_turn_envelope.py +952 -0
- loopx-0.5.4/tests/test_windows_install.py +350 -0
- loopx-0.5.4/tests/test_worker_command_validation.py +110 -0
- loopx-0.5.4/tests/test_workflow_skill_install.py +229 -0
- loopx-0.5.4/tests/test_zcode_host_surface.py +170 -0
- loopx-0.5.2/PKG-INFO +0 -777
- loopx-0.5.2/README.md +0 -748
- loopx-0.5.2/loopx/__init__.py +0 -5
- loopx-0.5.2/loopx/agent_onboarding.py +0 -682
- loopx-0.5.2/loopx/attached_session_api.py +0 -95
- loopx-0.5.2/loopx/bootstrap.py +0 -1166
- loopx-0.5.2/loopx/bootstrap_command_pack.py +0 -2166
- loopx-0.5.2/loopx/canary/planner.py +0 -1980
- loopx-0.5.2/loopx/canary/premerge.py +0 -1134
- loopx-0.5.2/loopx/canary/qualification_profiles.py +0 -308
- loopx-0.5.2/loopx/canary/quality_surface_catalog.py +0 -836
- loopx-0.5.2/loopx/capabilities/README.md +0 -142
- loopx-0.5.2/loopx/capabilities/auto_research/README.md +0 -449
- loopx-0.5.2/loopx/capabilities/auto_research/__init__.py +0 -16
- loopx-0.5.2/loopx/capabilities/auto_research/bootstrap_contract.py +0 -157
- loopx-0.5.2/loopx/capabilities/auto_research/catalog_entry.py +0 -115
- loopx-0.5.2/loopx/capabilities/auto_research/cli.py +0 -1468
- loopx-0.5.2/loopx/capabilities/auto_research/core.py +0 -11
- loopx-0.5.2/loopx/capabilities/auto_research/defaults.py +0 -79
- loopx-0.5.2/loopx/capabilities/auto_research/demo_e2e.py +0 -1848
- loopx-0.5.2/loopx/capabilities/auto_research/demo_supervisor.py +0 -186
- loopx-0.5.2/loopx/capabilities/auto_research/evidence_packet.py +0 -767
- loopx-0.5.2/loopx/capabilities/auto_research/human_view.py +0 -794
- loopx-0.5.2/loopx/capabilities/auto_research/kernel.py +0 -191
- loopx-0.5.2/loopx/capabilities/auto_research/knn_demo_workspace.py +0 -322
- loopx-0.5.2/loopx/capabilities/auto_research/live_evidence.py +0 -248
- loopx-0.5.2/loopx/capabilities/auto_research/preset.py +0 -176
- loopx-0.5.2/loopx/capabilities/auto_research/research_state.py +0 -1085
- loopx-0.5.2/loopx/capabilities/auto_research/role_profiles.py +0 -394
- loopx-0.5.2/loopx/capabilities/auto_research/rollout_append.py +0 -97
- loopx-0.5.2/loopx/capabilities/auto_research/terminal_result_contract.py +0 -422
- loopx-0.5.2/loopx/capabilities/auto_research/terminal_result_projection.py +0 -171
- loopx-0.5.2/loopx/capabilities/auto_research/terminal_result_query.py +0 -233
- loopx-0.5.2/loopx/capabilities/auto_research/terminal_results.py +0 -349
- loopx-0.5.2/loopx/capabilities/auto_research/user_contract.py +0 -190
- loopx-0.5.2/loopx/capabilities/auto_research/worker_loop.py +0 -163
- loopx-0.5.2/loopx/capabilities/auto_research/worker_runtime.py +0 -777
- loopx-0.5.2/loopx/capabilities/auto_research/worker_skill/SKILL.md +0 -343
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/README.md +0 -658
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/__init__.py +0 -241
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/catalog_entry.py +0 -512
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/concurrency_envelope.py +0 -604
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/experiment_board.py +0 -955
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/integrity.py +0 -440
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/native_codex_isolation.py +0 -510
- loopx-0.5.2/loopx/capabilities/benchmark_toolkit/native_codex_profile.py +0 -620
- loopx-0.5.2/loopx/capabilities/catalog.py +0 -261
- loopx-0.5.2/loopx/capabilities/decision_context/README.md +0 -229
- loopx-0.5.2/loopx/capabilities/integration_branch/README.md +0 -153
- loopx-0.5.2/loopx/capabilities/material_lifecycle/README.md +0 -205
- loopx-0.5.2/loopx/capabilities/periodic_report/README.md +0 -403
- loopx-0.5.2/loopx/capabilities/periodic_report/__init__.py +0 -77
- loopx-0.5.2/loopx/capabilities/periodic_report/bindings.py +0 -705
- loopx-0.5.2/loopx/capabilities/periodic_report/catalog_entry.py +0 -170
- loopx-0.5.2/loopx/capabilities/periodic_report/cli.py +0 -312
- loopx-0.5.2/loopx/capabilities/periodic_report/core.py +0 -691
- loopx-0.5.2/loopx/capabilities/periodic_report/presets.py +0 -103
- loopx-0.5.2/loopx/capabilities/periodic_report/triggers.py +0 -452
- loopx-0.5.2/loopx/capabilities/pr_review_queue/README.md +0 -513
- loopx-0.5.2/loopx/capabilities/pr_review_queue/catalog_entry.py +0 -124
- loopx-0.5.2/loopx/capabilities/pr_review_queue/core.py +0 -554
- loopx-0.5.2/loopx/capabilities/pr_review_queue/review_contract.py +0 -514
- loopx-0.5.2/loopx/capabilities/repository_change_window/README.md +0 -199
- loopx-0.5.2/loopx/capabilities/repository_change_window/__init__.py +0 -43
- loopx-0.5.2/loopx/capabilities/repository_change_window/catalog_entry.py +0 -106
- loopx-0.5.2/loopx/capabilities/repository_change_window/git_hook.py +0 -976
- loopx-0.5.2/loopx/chat.py +0 -419
- loopx-0.5.2/loopx/chat_actions.py +0 -1541
- loopx-0.5.2/loopx/chat_agent.py +0 -598
- loopx-0.5.2/loopx/chat_goal_lifecycle_actions.py +0 -98
- loopx-0.5.2/loopx/chat_runtime.py +0 -1040
- loopx-0.5.2/loopx/chat_store.py +0 -1021
- loopx-0.5.2/loopx/cli.py +0 -905
- loopx-0.5.2/loopx/cli_commands/__init__.py +0 -245
- loopx-0.5.2/loopx/cli_commands/benchmark_boundary.py +0 -317
- loopx-0.5.2/loopx/cli_commands/benchmark_concurrency.py +0 -163
- loopx-0.5.2/loopx/cli_commands/benchmark_dispatch.py +0 -133
- loopx-0.5.2/loopx/cli_commands/benchmark_experiment_board.py +0 -232
- loopx-0.5.2/loopx/cli_commands/bootstrap_connect.py +0 -238
- loopx-0.5.2/loopx/cli_commands/doctor.py +0 -43
- loopx-0.5.2/loopx/cli_commands/extension.py +0 -271
- loopx-0.5.2/loopx/cli_commands/lark_inbox.py +0 -448
- loopx-0.5.2/loopx/cli_commands/multi_agent.py +0 -211
- loopx-0.5.2/loopx/cli_commands/pr_review.py +0 -273
- loopx-0.5.2/loopx/cli_commands/project_lifecycle.py +0 -979
- loopx-0.5.2/loopx/cli_commands/quota.py +0 -961
- loopx-0.5.2/loopx/cli_commands/quota_registration.py +0 -255
- loopx-0.5.2/loopx/cli_commands/quota_request.py +0 -120
- loopx-0.5.2/loopx/cli_commands/registry_admin.py +0 -998
- loopx-0.5.2/loopx/cli_commands/slash_commands.py +0 -145
- loopx-0.5.2/loopx/cli_commands/start_goal.py +0 -251
- loopx-0.5.2/loopx/cli_commands/starter_bootstrap.py +0 -179
- loopx-0.5.2/loopx/cli_commands/status.py +0 -866
- loopx-0.5.2/loopx/cli_commands/support_control.py +0 -972
- loopx-0.5.2/loopx/cli_commands/task_lease.py +0 -311
- loopx-0.5.2/loopx/cli_commands/todo.py +0 -974
- loopx-0.5.2/loopx/cli_commands/todo_argument_validation.py +0 -593
- loopx-0.5.2/loopx/cli_commands/todo_event.py +0 -132
- loopx-0.5.2/loopx/cli_commands/turn.py +0 -922
- loopx-0.5.2/loopx/cli_commands/turn_registration.py +0 -207
- loopx-0.5.2/loopx/cli_commands/turn_rendering.py +0 -79
- loopx-0.5.2/loopx/configure_goal.py +0 -1426
- loopx-0.5.2/loopx/contract.py +0 -1014
- loopx-0.5.2/loopx/control_plane/agents/agent_lane_recommendation.py +0 -629
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/__init__.py +0 -1
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/codex_executable.py +0 -207
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/collective_round_ledger.py +0 -387
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/contract.py +0 -474
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/recipe.py +0 -110
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/role_successor.py +0 -297
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/runtime_scripts.py +0 -426
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/visible_launch_policy.py +0 -149
- loopx-0.5.2/loopx/control_plane/agents/multi_agent/visible_wake_scheduler.py +0 -392
- loopx-0.5.2/loopx/control_plane/agents/workspace_guard.py +0 -364
- loopx-0.5.2/loopx/control_plane/effect_program.py +0 -594
- loopx-0.5.2/loopx/control_plane/effect_program.ts +0 -869
- loopx-0.5.2/loopx/control_plane/effect_runtime.py +0 -525
- loopx-0.5.2/loopx/control_plane/effect_runtime_handlers.ts +0 -399
- loopx-0.5.2/loopx/control_plane/effect_runtime_io.ts +0 -121
- loopx-0.5.2/loopx/control_plane/effect_runtime_server.ts +0 -127
- loopx-0.5.2/loopx/control_plane/goals/active_state_event_projection.py +0 -103
- loopx-0.5.2/loopx/control_plane/goals/botmux_runtime.py +0 -1475
- loopx-0.5.2/loopx/control_plane/goals/goal_frontier/__init__.py +0 -1925
- loopx-0.5.2/loopx/control_plane/goals/goal_vision.py +0 -443
- loopx-0.5.2/loopx/control_plane/goals/start_contract.py +0 -207
- loopx-0.5.2/loopx/control_plane/goals/vision_checkpoint.py +0 -94
- loopx-0.5.2/loopx/control_plane/goals/vision_checkpoint.ts +0 -233
- loopx-0.5.2/loopx/control_plane/governed_capability.ts +0 -282
- loopx-0.5.2/loopx/control_plane/heartbeat/builder.py +0 -554
- loopx-0.5.2/loopx/control_plane/heartbeat/rules.py +0 -68
- loopx-0.5.2/loopx/control_plane/heartbeat/task_body.py +0 -780
- loopx-0.5.2/loopx/control_plane/host_adapter_settlement.py +0 -454
- loopx-0.5.2/loopx/control_plane/projects/registry.py +0 -663
- loopx-0.5.2/loopx/control_plane/quota/cli_projection.py +0 -705
- loopx-0.5.2/loopx/control_plane/quota/decision_summary.py +0 -431
- loopx-0.5.2/loopx/control_plane/quota/effect_program.py +0 -205
- loopx-0.5.2/loopx/control_plane/quota/goal_boundary.py +0 -461
- loopx-0.5.2/loopx/control_plane/quota/heartbeat_receipt.py +0 -406
- loopx-0.5.2/loopx/control_plane/quota/live_decision.py +0 -148
- loopx-0.5.2/loopx/control_plane/quota/monitor_poll.py +0 -837
- loopx-0.5.2/loopx/control_plane/quota/projection_repair.py +0 -262
- loopx-0.5.2/loopx/control_plane/quota/scheduler_ack.py +0 -490
- loopx-0.5.2/loopx/control_plane/quota/settlement.py +0 -496
- loopx-0.5.2/loopx/control_plane/quota/settlement_cli.py +0 -350
- loopx-0.5.2/loopx/control_plane/quota/settlement_workspace_causality.py +0 -249
- loopx-0.5.2/loopx/control_plane/quota/settlement_workspace_causality.ts +0 -211
- loopx-0.5.2/loopx/control_plane/quota/should_run.py +0 -274
- loopx-0.5.2/loopx/control_plane/quota/should_run_packet.py +0 -1370
- loopx-0.5.2/loopx/control_plane/quota/should_run_prepare.py +0 -780
- loopx-0.5.2/loopx/control_plane/quota/slot_accounting.py +0 -1156
- loopx-0.5.2/loopx/control_plane/quota/spend_sources.py +0 -66
- loopx-0.5.2/loopx/control_plane/quota/turn_envelope.py +0 -894
- loopx-0.5.2/loopx/control_plane/quota/usage_collector.py +0 -83
- loopx-0.5.2/loopx/control_plane/quota/usage_summary.py +0 -222
- loopx-0.5.2/loopx/control_plane/runtime/run_compaction.py +0 -373
- loopx-0.5.2/loopx/control_plane/runtime_decode.ts +0 -73
- loopx-0.5.2/loopx/control_plane/scheduler/ack.py +0 -329
- loopx-0.5.2/loopx/control_plane/scheduler/arbitration.py +0 -188
- loopx-0.5.2/loopx/control_plane/scheduler/automation_liveness.py +0 -197
- loopx-0.5.2/loopx/control_plane/scheduler/execution_context.py +0 -563
- loopx-0.5.2/loopx/control_plane/scheduler/monitor_poll_policy.py +0 -161
- loopx-0.5.2/loopx/control_plane/scheduler/monitor_poll_writeback.py +0 -351
- loopx-0.5.2/loopx/control_plane/scheduler/monitor_target.py +0 -64
- loopx-0.5.2/loopx/control_plane/scheduler/monitor_todo.py +0 -146
- loopx-0.5.2/loopx/control_plane/scheduler/scheduler_hint.py +0 -1218
- loopx-0.5.2/loopx/control_plane/scheduler/state_store.ts +0 -537
- loopx-0.5.2/loopx/control_plane/scheduler/state_transition_rules.py +0 -346
- loopx-0.5.2/loopx/control_plane/scheduler/state_transition_rules.ts +0 -395
- loopx-0.5.2/loopx/control_plane/settlement_driver.py +0 -116
- loopx-0.5.2/loopx/control_plane/testing/actual_default_model_behavior_portfolio.py +0 -1371
- loopx-0.5.2/loopx/control_plane/testing/cli_output_budget.py +0 -843
- loopx-0.5.2/loopx/control_plane/testing/cli_output_differential.py +0 -266
- loopx-0.5.2/loopx/control_plane/testing/cli_output_semantics.py +0 -87
- loopx-0.5.2/loopx/control_plane/testing/doubao_model_behavior_actor.py +0 -559
- loopx-0.5.2/loopx/control_plane/testing/model_behavior_qualification.py +0 -769
- loopx-0.5.2/loopx/control_plane/testing/model_tool_behavior.py +0 -543
- loopx-0.5.2/loopx/control_plane/testing/scoped_gate_successor_tool_behavior.py +0 -527
- loopx-0.5.2/loopx/control_plane/testing/selected_todo_tool_behavior.py +0 -1058
- loopx-0.5.2/loopx/control_plane/testing/terminal_settlement_tool_behavior.py +0 -1177
- loopx-0.5.2/loopx/control_plane/todos/active_state_todo_parser.py +0 -138
- loopx-0.5.2/loopx/control_plane/todos/completion_fence.py +0 -184
- loopx-0.5.2/loopx/control_plane/todos/completion_fence.ts +0 -333
- loopx-0.5.2/loopx/control_plane/todos/completion_state.py +0 -221
- loopx-0.5.2/loopx/control_plane/todos/completion_state.ts +0 -266
- loopx-0.5.2/loopx/control_plane/todos/completion_validation.py +0 -409
- loopx-0.5.2/loopx/control_plane/todos/completion_validation_plan.ts +0 -243
- loopx-0.5.2/loopx/control_plane/todos/contract.py +0 -1500
- loopx-0.5.2/loopx/control_plane/todos/deferred_resume.py +0 -546
- loopx-0.5.2/loopx/control_plane/todos/event_writeback.py +0 -684
- loopx-0.5.2/loopx/control_plane/todos/handoff_mode.py +0 -444
- loopx-0.5.2/loopx/control_plane/todos/line_update.py +0 -434
- loopx-0.5.2/loopx/control_plane/todos/list_projection.py +0 -274
- loopx-0.5.2/loopx/control_plane/todos/markdown.py +0 -199
- loopx-0.5.2/loopx/control_plane/todos/monitor_metadata.py +0 -91
- loopx-0.5.2/loopx/control_plane/todos/mutation_authority.py +0 -299
- loopx-0.5.2/loopx/control_plane/todos/next_action.ts +0 -442
- loopx-0.5.2/loopx/control_plane/todos/next_action_runtime.py +0 -181
- loopx-0.5.2/loopx/control_plane/todos/projection.py +0 -655
- loopx-0.5.2/loopx/control_plane/todos/quota_summary.py +0 -1140
- loopx-0.5.2/loopx/control_plane/todos/route_continuation.py +0 -267
- loopx-0.5.2/loopx/control_plane/todos/succession_warning.py +0 -215
- loopx-0.5.2/loopx/control_plane/todos/summary_item.py +0 -226
- loopx-0.5.2/loopx/control_plane/todos/todo_summary.py +0 -1465
- loopx-0.5.2/loopx/control_plane/turn_driver/__init__.py +0 -85
- loopx-0.5.2/loopx/control_plane/turn_driver/codex_cli.py +0 -510
- loopx-0.5.2/loopx/control_plane/turn_driver/delivery_continuity.ts +0 -350
- loopx-0.5.2/loopx/control_plane/turn_driver/driver.py +0 -394
- loopx-0.5.2/loopx/control_plane/turn_driver/executor.py +0 -1499
- loopx-0.5.2/loopx/control_plane/turn_driver/loop_controller.py +0 -669
- loopx-0.5.2/loopx/control_plane/turn_driver/session_recovery.py +0 -64
- loopx-0.5.2/loopx/control_plane/turn_driver/settlement.py +0 -527
- loopx-0.5.2/loopx/control_plane/turn_driver/settlement.ts +0 -618
- loopx-0.5.2/loopx/control_plane/turn_driver/turn_journal.ts +0 -230
- loopx-0.5.2/loopx/control_plane/turn_driver/turn_journal_effects.ts +0 -109
- loopx-0.5.2/loopx/control_plane/turn_driver/turn_journal_runtime.py +0 -119
- loopx-0.5.2/loopx/control_plane/work_items/accountable_settlement.py +0 -48
- loopx-0.5.2/loopx/control_plane/work_items/autonomous_replan_obligation.py +0 -931
- loopx-0.5.2/loopx/control_plane/work_items/delivery_outcome.py +0 -148
- loopx-0.5.2/loopx/control_plane/work_items/delivery_outcome.ts +0 -47
- loopx-0.5.2/loopx/control_plane/work_items/interaction_contract.py +0 -1517
- loopx-0.5.2/loopx/control_plane/work_items/operator_inbox.py +0 -264
- loopx-0.5.2/loopx/control_plane/work_items/primary_action.py +0 -336
- loopx-0.5.2/loopx/control_plane/work_items/progress_observation.py +0 -730
- loopx-0.5.2/loopx/control_plane/work_items/project_asset.py +0 -675
- loopx-0.5.2/loopx/control_plane/work_items/replan_settlement.py +0 -133
- loopx-0.5.2/loopx/control_plane/work_items/replan_settlement.ts +0 -157
- loopx-0.5.2/loopx/control_plane/work_items/runtime_capability_reentry.py +0 -182
- loopx-0.5.2/loopx/control_plane/work_items/semantic_replan_writeback.py +0 -346
- loopx-0.5.2/loopx/control_plane/work_items/task_graph.py +0 -1046
- loopx-0.5.2/loopx/control_plane/work_items/task_lease.py +0 -1399
- loopx-0.5.2/loopx/control_plane/work_items/task_lease_settlement.py +0 -422
- loopx-0.5.2/loopx/control_plane/work_items/work_lane.py +0 -619
- loopx-0.5.2/loopx/dashboard_launcher.py +0 -148
- loopx-0.5.2/loopx/diagnose.py +0 -633
- loopx-0.5.2/loopx/doctor.py +0 -1491
- loopx-0.5.2/loopx/dsh_goal_mode/README.md +0 -65
- loopx-0.5.2/loopx/dsh_goal_mode/turn_host_adapter.py +0 -465
- loopx-0.5.2/loopx/entrypoint.py +0 -16
- loopx-0.5.2/loopx/extensions/governed_capability_execution.py +0 -620
- loopx-0.5.2/loopx/extensions/lark/README.md +0 -128
- loopx-0.5.2/loopx/extensions/lark/bot_scopes.py +0 -63
- loopx-0.5.2/loopx/extensions/lark/docs/lark-event-inbox.md +0 -384
- loopx-0.5.2/loopx/extensions/lark/document_comment_provider.py +0 -1081
- loopx-0.5.2/loopx/extensions/lark/event_collector.py +0 -479
- loopx-0.5.2/loopx/extensions/lark/event_collector_runtime.py +0 -603
- loopx-0.5.2/loopx/extensions/lark/event_inbox.py +0 -478
- loopx-0.5.2/loopx/extensions/lark/extension.toml +0 -108
- loopx-0.5.2/loopx/extensions/lark/goal_channel_setup.py +0 -805
- loopx-0.5.2/loopx/extensions/lark/goal_topic_connections.py +0 -1256
- loopx-0.5.2/loopx/extensions/lark/goal_topic_runtime.py +0 -958
- loopx-0.5.2/loopx/extensions/lark/inbox_reactions.py +0 -650
- loopx-0.5.2/loopx/extensions/lark/inbox_reply.py +0 -460
- loopx-0.5.2/loopx/extensions/lark/miaoda_report.py +0 -420
- loopx-0.5.2/loopx/extensions/lark/periodic_report_cli.py +0 -120
- loopx-0.5.2/loopx/extensions/lark/presentation/periodic_report.py +0 -330
- loopx-0.5.2/loopx/extensions/lark/provider.py +0 -86
- loopx-0.5.2/loopx/extensions/lark/reviewer_notification.py +0 -604
- loopx-0.5.2/loopx/extensions/manifest.py +0 -618
- loopx-0.5.2/loopx/extensions/readiness.py +0 -168
- loopx-0.5.2/loopx/extensions/runtime.py +0 -931
- loopx-0.5.2/loopx/feedback.py +0 -581
- loopx-0.5.2/loopx/file_lock.py +0 -484
- loopx-0.5.2/loopx/goal_mode_mcp.py +0 -266
- loopx-0.5.2/loopx/help_surface.py +0 -554
- loopx-0.5.2/loopx/history.py +0 -722
- loopx-0.5.2/loopx/host_loop_activation.py +0 -1422
- loopx-0.5.2/loopx/host_mode_planner.py +0 -991
- loopx-0.5.2/loopx/kunluncode_goal_mode/guards.py +0 -111
- loopx-0.5.2/loopx/long_task_cadence.py +0 -208
- loopx-0.5.2/loopx/pi_goal_mode/README.md +0 -75
- loopx-0.5.2/loopx/pi_goal_mode/loopx-goal.ts +0 -269
- loopx-0.5.2/loopx/pi_goal_mode/pi-goal-loop-runtime.mjs +0 -609
- loopx-0.5.2/loopx/presentation/renderers/quota_markdown.py +0 -1112
- loopx-0.5.2/loopx/project_prompt.py +0 -1163
- loopx-0.5.2/loopx/quota.py +0 -1315
- loopx-0.5.2/loopx/registry.py +0 -621
- loopx-0.5.2/loopx/release_candidate.py +0 -150
- loopx-0.5.2/loopx/rollout_event_log.py +0 -499
- loopx-0.5.2/loopx/self_update.py +0 -818
- loopx-0.5.2/loopx/slash_command_install.py +0 -1485
- loopx-0.5.2/loopx/slash_commands.py +0 -264
- loopx-0.5.2/loopx/state_refresh.py +0 -1489
- loopx-0.5.2/loopx/status.py +0 -1309
- loopx-0.5.2/loopx/todos.py +0 -2285
- loopx-0.5.2/loopx/turn_identity.py +0 -17
- loopx-0.5.2/loopx/upgrade.py +0 -1083
- loopx-0.5.2/loopx/visible_governance.py +0 -669
- loopx-0.5.2/loopx/visible_multi_agent_launcher.py +0 -1253
- loopx-0.5.2/loopx/visible_multi_agent_tmux.py +0 -429
- loopx-0.5.2/loopx/web/chat/index.html +0 -27
- loopx-0.5.2/loopx/workflow_skill_install.py +0 -387
- loopx-0.5.2/loopx.egg-info/PKG-INFO +0 -777
- loopx-0.5.2/loopx.egg-info/SOURCES.txt +0 -1029
- loopx-0.5.2/loopx.egg-info/requires.txt +0 -13
- loopx-0.5.2/pyproject.toml +0 -136
- loopx-0.5.2/skills/loopx-benchmark/SKILL.md +0 -136
- loopx-0.5.2/skills/loopx-pr-review/SKILL.md +0 -180
- loopx-0.5.2/skills/loopx-self-repair/references/repair-patterns.md +0 -174
- loopx-0.5.2/tests/test_attached_session_broker.py +0 -545
- loopx-0.5.2/tests/test_chat_session_active_turn.py +0 -56
- loopx-0.5.2/tests/test_cli_argument_diagnostics.py +0 -1103
- loopx-0.5.2/tests/test_cli_entrypoint.py +0 -62
- loopx-0.5.2/tests/test_dashboard_command.py +0 -748
- loopx-0.5.2/tests/test_doctor_install_freshness.py +0 -427
- loopx-0.5.2/tests/test_dsh_goal_mode.py +0 -239
- loopx-0.5.2/tests/test_feedback_goal_id_validation.py +0 -116
- loopx-0.5.2/tests/test_file_lock.py +0 -139
- loopx-0.5.2/tests/test_gemini_cursor_host_surfaces.py +0 -229
- loopx-0.5.2/tests/test_goal_mode_mcp_completion_validation.py +0 -124
- loopx-0.5.2/tests/test_goal_mode_mcp_settlement.py +0 -312
- loopx-0.5.2/tests/test_history_chronology.py +0 -148
- loopx-0.5.2/tests/test_host_loop_activation.py +0 -1149
- loopx-0.5.2/tests/test_host_parity_smoke.py +0 -306
- loopx-0.5.2/tests/test_kunluncode_goal_mode.py +0 -1478
- loopx-0.5.2/tests/test_license_metadata.py +0 -61
- loopx-0.5.2/tests/test_loop_turn_loop_controller.py +0 -940
- loopx-0.5.2/tests/test_loopx_turn_codex_cli.py +0 -409
- loopx-0.5.2/tests/test_loopx_turn_driver.py +0 -2237
- loopx-0.5.2/tests/test_loopx_turn_executor.py +0 -1640
- loopx-0.5.2/tests/test_loopx_turn_journal_inspection.py +0 -472
- loopx-0.5.2/tests/test_loopx_turn_settlement_parity.py +0 -269
- loopx-0.5.2/tests/test_nokv_shadow_provider_probes.py +0 -47
- loopx-0.5.2/tests/test_pi_goal_mode.py +0 -139
- loopx-0.5.2/tests/test_self_update_runtime_activation.py +0 -246
- loopx-0.5.2/tests/test_slash_command_install.py +0 -982
- loopx-0.5.2/tests/test_state_file_containment.py +0 -98
- loopx-0.5.2/tests/test_status_server_cors.py +0 -133
- loopx-0.5.2/tests/test_turn_envelope.py +0 -928
- loopx-0.5.2/tests/test_windows_install.py +0 -349
- loopx-0.5.2/tests/test_worker_command_validation.py +0 -104
- loopx-0.5.2/tests/test_workflow_skill_install.py +0 -191
- {loopx-0.5.2 → loopx-0.5.4}/LICENSE +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/LICENSE-MIT +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/NOTICE +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/agent_registry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/ark_managed_agent_host.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/attached_session.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/authority.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/boundary_authority.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/maintainability_ratchet.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/package_profiles.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/release_profiles.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/runner.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/smoke_health.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/canary/smoke_profiles.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/agent_turn_recall/core.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/artifacts.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/container_binding.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/environment_access.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/native_codex_goal.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/public_trajectory.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/reward_contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/run_permissions.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/runtime_observation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/benchmark_toolkit/source_revision_fence.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/context.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/oracles.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/policy.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/receipt.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/result.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/scope.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/change_quality/shadow.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/core.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/connector_registry/tests/test_connector_registry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/connector_packets.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/item_lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/layout.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/schemas.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/social_browser_x.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/surface.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/content_ops/templates/layout-catalog-v0.json +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/base.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/factory.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/openviking.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/context_providers/service_ownership.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/README.zh-CN.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/architecture.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/assembler.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/cursor_commit.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/outcome_feedback.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/packets.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/private_state.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/profile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/providers.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/review_settlement.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/decision_context/sources.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/documentation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/README.zh-CN.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/activation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/adaptive_replay_planner.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/child_replay_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/composition_frontier.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/counterfactual_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/episode_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/harness_checkpoint.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/harness_gate.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/harness_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/replay_metrics.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/replay_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/resource_portfolio.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/result_log.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/router_state.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/source_history_reconcile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/speculative_scheduler.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/todo_branch_plan.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/todo_evidence.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/trace_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/explore/worker_branch_plan.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/integration_branch/core.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/README.zh-CN.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/acceptance_loop.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/candidate_evidence.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/candidate_preflight.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/cli_input.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/content_ops_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/discovered_issue_promotion.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/openviking-pilot-handoff.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-acceptance-loop-v0.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-discovered-issue-promotion-v0.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-metrics-projection-v0.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-notification-sinks-v0.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-recommendation-v0.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-request-v0.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-workflow-contract-v0.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/docs/state-kernel-domain-state-case-study.zh-CN.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/explore_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/feasibility.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/github_public.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/intake_surface.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metadata_preview.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metrics_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metrics_supplement.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/metrics_supplement_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/outcome_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/periodic_report.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_description.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_gate_reconcile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_gate_reconcile_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_lifecycle_rollout.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_monitor_materialization.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/pr_review_ack.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/provider_hooks.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_commit_evidence.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_context.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_memory.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_memory_provider.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/repository_snapshot.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_notification.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_notification_drain.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_recommendation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reviewer_request.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/reward_memory.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/issue_fix/workflow_plan.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/README.zh-CN.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/_validation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/apply.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/architecture.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/decision_planning.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/explore_execution.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/intake.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/inventory.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/preparation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/project_skill.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/ranking.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/readable_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/rebuild.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/material_lifecycle/settlement.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/adapters.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/archive.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/audience.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/extension_envelope.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/profile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/periodic_report/project_progress.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/pr_review_queue/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/project_skill_delivery/core.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/scan_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/scanner.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/public_safe_outbound/tests/test_scanner.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/registry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/ledger.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/policy.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/repository_change_window/repository.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/README.zh-CN.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/application.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/architecture.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/candidate_review.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/dogfood.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/evaluation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/evaluation_fixtures.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/experiment.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/health.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/ingestion.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/memory_utility.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/registry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/runtime_hooks.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/reward_memory/scoped_feedback.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/docs/openviking-project-peer.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/semantic_preference/reward_memory.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/catalog_entry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/docs/agent-reach-ops-source-map.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/docs/finance-market-snapshot-probe.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/finance_extension_migration.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/install_check.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/planner.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/capabilities/value_connectors/source_map.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_acp.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_action_store.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_attachments.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_endpoints.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_lark_api.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_monitor_actions.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_providers.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_server.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_ssh_source_api.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/chat_todo_actions.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/hooks/goal_policy.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/hooks/goal_state.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/mcp/loopx_mcp.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/scripts/connect.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/scripts/goalmode_cmd.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/scripts/install.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/claude_goal_mode/statusline/goal_status.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/_host_thread.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/canary.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/canary_release_qualification.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/capability.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/dash.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/dreaming.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/evidence_log.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/explore.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/explore_feishu_commands.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/explore_planning_commands.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/first_run_report.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/goal_channel.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/goal_lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/handoff_mode.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/history.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/host_mode_plan.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/lark_kanban.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/ml_experiment.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/opencode2_goal_worker.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/presentation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/preset.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/project.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/quota_host_poll.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/quota_monitor_poll.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/ready_score.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_admin_configure.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_admin_peer.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_admin_thread_resolution.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/registry_authority.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/review_batch.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_bootstrap_registration.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_runtime_idle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_scheduler.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_session_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_visible_common.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_visible_driver.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/starter_visible_pilot.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/status_registration.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/summary_all.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_backup.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_chat_endpoint.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_registry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/support_control_supervisor.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/version.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/worker_bridge.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_commands/workflow_skills.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/cli_rollout.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_probe.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_probe_markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_runtime_probe.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/codex_cli_scheduler.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/command_invocation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/configuration_catalog.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/agent_scope.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/agent_scope_frontier.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/capability_gate.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/identity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/legacy_migration.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/management_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/material_frontier.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/material_handoff.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/profile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/runtime_model.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/subagent_activity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/supervisor.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/supervisor_events.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/supervisor_inject.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/agents/work_mode.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/activation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/activation_service.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/active_state_metadata.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/active_state_sections.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/configure_goal_service.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/contract_health.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/dreaming.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/global_registry_health.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/global_registry_shadow.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_channel.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_channel_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/ack_policy.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/long_todo_chain.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/outcome_continuity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/replan_rules.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/semantic_history.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_frontier/terminal.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_vision_policy.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_vision_state.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/goal_vision_wait.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/goals/path_resolution.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/cross_runtime_impl_review.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/delivery_contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/handoff_runs.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/project_handoff.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/review_batch.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/handoff/review_packet_context.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/agent.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/budget.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/host.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/heartbeat/visible_goal.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/projects/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/projects/contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/error_codes.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/heartbeat_recommendation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/host_poll_receipts.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/policy_constants.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/recent_runs.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/selected_todo_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/settlement_validation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/stall_repair.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/states.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/task_orchestration.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/quota/task_orchestration_admission.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/reward_memory.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/agent_scoped_evidence_log.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/decision_freshness.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/event_ledger.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/event_store_migration_bridge.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/goal_project_route.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/local_state_write_correctness.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/promotion_readiness.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/public_safety.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_artifacts.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_context_retention.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_history.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_index_duplicates.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/run_index_rebuild.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/runtime_projection_route.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/runtime_projection_writer.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/session_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/shared_runtime_material_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/shared_runtime_refresh_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/stale_latest_run.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/status_classifications.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/status_projection_cache.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/stride_observation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/time.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/trajectory_hygiene.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/runtime/validation_command.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/external_evidence_observation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/monitor_display.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/monitor_wait.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/state.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/scheduler/time.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/active_state_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/agent_lane_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/attention_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/autonomous_replan_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/collection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/contract_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/dreaming_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/goal_attention_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/lifecycle_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/monitor_display_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/registry_health_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/run_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/runtime_summaries.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/ssh_host_catalog.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/status/ssh_tunnel.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/canary_harness.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/capability_monitor_repair_tool_behavior.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/control_plane_composition_scenarios.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/decision_replay.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/model_behavior_corpus.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/model_behavior_retained_cases.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/onboarding_model_behavior_qualification.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/quota_fixtures.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/quota_should_run_parity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/release_commit_qualification.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/replan_semantic_action_behavior.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/testing/turn_journal_characterization.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/active_state_editing.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/active_state_todos.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/addition.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/claim_visibility.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completed_archive.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completion_policy.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completion_validation_accountability.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/completion_validation_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/decision_scope.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/durable_completion.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/frontier_deadline.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/handoff_gate.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/handoff_note.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/text.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/todo_index.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/unblock_resume.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/user_gate.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/write_hint.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/todos/write_policy.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/turn_driver/delivery_continuity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/turn_driver/transaction.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/turn_transaction_contract.json +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_fields.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_item.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_queue.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/attention_routing.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/autonomous_candidates.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/autonomous_replan_ack.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/backlog_hygiene.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/capability_monitor_fallback.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/delivery_batch_scale.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/delivery_signals.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/execution_obligation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/goal_route_hint.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/issue_meta_surface.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/outcome_followthrough.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/repair_delta.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/status_contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/control_plane/work_items/work_lane_context.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/dash_server.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/demo.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_packs/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_packs/issue_fix.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_packs/ml_experiment.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/domain_state.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/dreaming.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/dsh_goal_mode/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/dsh_goal_mode/__main__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/event_sourced_state.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/execution_profile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/experiments/planner_worker/traex.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/explore_graph.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/bundled.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/capability_admission.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/execution_envelope.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/external_connector_provider.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/external_connector_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/app_setup.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/cli_resolution.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_contracts.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_notification.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_targets.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/goal_channel_transport.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_results.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_singleflight.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_source_guard.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_stage_document.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_visual_integrity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_visual_readback.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/explore_visual_styles.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/issue_fix_surface.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/kanban.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/message_card.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/projection_rows.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/record_io.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/presentation/sync_receipt.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/lark/private_json.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/activation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/extension.toml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/provider.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_periodic_report/sink.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/extension.toml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/history_export.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/project_peer.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/openviking_semantic_preference/provider.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/presentation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/process_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/extensions/scaffold.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/global_registry.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/global_risks.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/global_todos.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/goal_mode_context.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/handoff_budget.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/heartbeat_prequota.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/heartbeat_prompt.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/install_contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/interface_budget.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/app_server.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/context.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/control_plane.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/kunluncode_goal_mode/server.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/materials.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/ml_experiment.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/onboarding.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode2_goal_mode/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode2_goal_mode/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode2_goal_mode/opencode2-goal-worker.mjs +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/goal-bridge-runtime.mjs +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/opencode_goal_mode/loopx-goal.js +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/operator_gate.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/orchestration.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/paths.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/pi_goal_mode/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/pr_review.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/README.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/explore_views.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/projection_source_reconcile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/projections/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/projections/session_dash.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/public_safety.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/goal_channel_html.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/periodic_report_html.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/periodic_report_markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/quota_event_markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/session_dash_html.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/status_markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/trajectory_hygiene_markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/renderers/turn_envelope_markdown.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/sinks/__init__.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/sinks/openviking_periodic_report.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presentation/static_site.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/presets.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/project_alias.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/project_map.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/project_uninstall.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/promotion_gate.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/ready_score.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/registry_writability.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/release_manifest.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/repository_identity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/review_packet.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/session_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/skill_install_readback.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/state_backup.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/state_migration.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/state_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/status_server.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/summary_all.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/thread_agent_binding.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/todo_followups.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/todo_suggestion_prompt.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/assets/index-9IiDicAv.js +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/assets/index-CLqMm9A9.js +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/assets/index-DLmo9pnP.css +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/manifest.webmanifest +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/pwa/icon-192.png +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/web/chat/pwa/icon-512.png +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/windows_install.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx/worker_bridge.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx.egg-info/dependency_links.txt +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx.egg-info/entry_points.txt +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/loopx.egg-info/top_level.txt +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/setup.cfg +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-benchmark/agents/openai.yaml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-doc-registry/SKILL.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-doc-registry/agents/openai.yaml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/SKILL.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/agents/openai.yaml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/references/snapshot-contract.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-program/scripts/diff_snapshot.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-pr-review/agents/openai.yaml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-project/SKILL.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-project/agents/openai.yaml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-self-repair/SKILL.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-self-repair/agents/openai.yaml +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/skills/loopx-self-repair/references/upstream-issue-escalation.md +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_agent_onboarding_pi_host.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_agent_onboarding_unconnected_project.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_ark_managed_agent_host.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_ark_managed_agent_issue_fix_matrix.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_attached_session_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_auto_research_control.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_chat_image_attachments.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_chat_lark_api_contract.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_chat_server_cors.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_codex_app_apply_rrule.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_command_invocation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_content_ops_item_lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_content_ops_lifecycle.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_content_ops_queue_status.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_contract_credential_pattern_precision.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_contract_scan_unreadable_files.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_decision_context_material.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_default_public_scan_root.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_dependency_security_boundaries.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_counterfactual_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_episode_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_monitor_lane_budget.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_owner_board_views.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_presentation_views.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_replay_compatibility.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_replay_runtime.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_resource_portfolio.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_router_acceptance.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_source_history_reconcile.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_explore_worker_topic_affinity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_external_scheduler_worker.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_file_lock_cross_process.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_global_registry_write_serialization.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_global_risks.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_global_todos.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_host_mode_planner.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_host_poll_receipts.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_loopx_turn_transaction.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_ml_experiment_volc_packet.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_opencode2_goal_worker.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_opencode2_goal_worker_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_opencode_goal_bridge.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_operator_markdown_renderers.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_packaged_skill_metadata.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_pr_program_snapshot.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_pr_program_snapshot_diff.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_pr_review_github_scan.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_project_skill_cli.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_register_agent_fresh_identity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_release_smoke_archive_helpers.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_reward_memory_pipeline.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_skill_delivery_parity.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_smoke_suite.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_sonarcloud_workflow.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_ssh_tunnel_source.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_state_refresh_projections.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_static_site_presentation.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_status_server_extension_projection.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_status_server_fast_path.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_status_server_ssh_hosts.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_summary_all.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_thread_agent_binding.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_trajectory_hygiene.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_turn_loop_disposition.py +0 -0
- {loopx-0.5.2 → loopx-0.5.4}/tests/test_visible_goal_terminal_settlement.py +0 -0
loopx-0.5.4/PKG-INFO
ADDED
|
@@ -0,0 +1,782 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: loopx
|
|
3
|
+
Version: 0.5.4
|
|
4
|
+
Summary: A lightweight Loop Engineering control plane for long-running agent goals.
|
|
5
|
+
Author: LoopX contributors
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://huangruiteng.github.io/loopx/
|
|
8
|
+
Project-URL: Documentation, https://huangruiteng.github.io/loopx/docs/
|
|
9
|
+
Project-URL: Repository, https://github.com/huangruiteng/loopx
|
|
10
|
+
Project-URL: Issues, https://github.com/huangruiteng/loopx/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/huangruiteng/loopx/releases
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
License-File: NOTICE
|
|
16
|
+
License-File: LICENSE-MIT
|
|
17
|
+
Provides-Extra: deepseek-harness
|
|
18
|
+
Requires-Dist: deepseek-harness-sdk==0.1.2a3; extra == "deepseek-harness"
|
|
19
|
+
Provides-Extra: test
|
|
20
|
+
Requires-Dist: jsonschema<5,>=4.23; extra == "test"
|
|
21
|
+
Requires-Dist: mcp==1.28.1; extra == "test"
|
|
22
|
+
Requires-Dist: types-jsonschema<5,>=4.23; extra == "test"
|
|
23
|
+
Requires-Dist: pytest<9,>=8; extra == "test"
|
|
24
|
+
Requires-Dist: pytest-cov<7,>=5; extra == "test"
|
|
25
|
+
Requires-Dist: pytest-xdist<4,>=3; extra == "test"
|
|
26
|
+
Requires-Dist: ruff<0.16,>=0.12; extra == "test"
|
|
27
|
+
Requires-Dist: mypy<2,>=1.18; extra == "test"
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
|
|
30
|
+
<div align="center">
|
|
31
|
+
|
|
32
|
+
<h1 align="center">LoopX</h1>
|
|
33
|
+
|
|
34
|
+
<img src="docs/assets/loopx-social-preview.png" alt="LoopX loop engineering social preview banner" width="560">
|
|
35
|
+
|
|
36
|
+
**The open, provider-neutral, stateful control plane for long-horizon agents.**
|
|
37
|
+
|
|
38
|
+
<sub>Runs on top of any agent harness — Codex App, Claude Code, Cursor, dsh, or your own — providing long-horizon state, semantic decisions, governance, recovery, and human-agent collaboration. Objectives, gates, todos, evidence, quota, and handoffs stay stable while the harness executes bounded turns.</sub>
|
|
39
|
+
|
|
40
|
+
<a href="https://trendshift.io/repositories/102379?utm_source=repository-badge&utm_medium=badge&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://github.com/huangruiteng/loopx/releases/latest) [](https://discord.gg/XmGgQyCFZd) [](pyproject.toml) [](docs/public-private-boundary.md) [](docs/product/release-readiness.md)
|
|
43
|
+
|
|
44
|
+
[Public website](https://huangruiteng.github.io/loopx/) · [Docs](https://huangruiteng.github.io/loopx/docs/) · [Developer Book](https://huangruiteng.github.io/loopx/docs/book/) · [Try LoopX](#try-loopx) · [See real loops](#evidence) · [How it works](#why-loopx) · [User manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg) · [简体中文](README.zh-CN.md)
|
|
45
|
+
|
|
46
|
+
**把会干活的 Agent,接成可管理、可复盘、可持续改进的数字员工。**
|
|
47
|
+
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
Open and provider-neutral, LoopX is a lightweight state kernel and local-first
|
|
53
|
+
control plane for loop engineering. It runs on top of different agent harnesses
|
|
54
|
+
rather than replacing them, providing the long-horizon state, semantic
|
|
55
|
+
decisions about what happens next, governance, recovery, and human-agent
|
|
56
|
+
collaboration that keep long-running work reviewable, restartable, and easier
|
|
57
|
+
to hand off across turns, tools, and agents.
|
|
58
|
+
|
|
59
|
+
**Loop engineering for long-horizon AI agents and peer agent teams.**
|
|
60
|
+
|
|
61
|
+
> Keep the loop moving. Keep the judgment human.
|
|
62
|
+
|
|
63
|
+
## Learn LoopX
|
|
64
|
+
|
|
65
|
+
- **Developer Book** - the curated bilingual path from control-plane foundations to project onboarding and developer contributions. [中文版](https://huangruiteng.github.io/loopx/docs/book/) · [English](https://huangruiteng.github.io/loopx/docs/book/en/)
|
|
66
|
+
- **Getting started** - install, connect a project, and run your first governed loop. [Guide](docs/guides/getting-started.md)
|
|
67
|
+
- **Docs** - the full reference and operations site. [LoopX Docs](https://huangruiteng.github.io/loopx/docs/)
|
|
68
|
+
|
|
69
|
+
## Meet the Personal Agent Workspace
|
|
70
|
+
|
|
71
|
+
Keep long-horizon goals in one local-first workspace. Goals, attention,
|
|
72
|
+
conversations, tasks, files, schedules, and recovery stay durable across days,
|
|
73
|
+
restarts, and harnesses, so work that began last week resumes exactly where
|
|
74
|
+
the last bounded turn stopped instead of living in chat memory.
|
|
75
|
+
|
|
76
|
+
<a href="docs/assets/personal-workspace/loopx-dashboard-launch.mp4">
|
|
77
|
+
<img src="docs/assets/personal-workspace/loopx-dashboard-tour.webp" alt="Animated tour of the LoopX personal Agent workspace, from one-command launch to Manager overview, Goal task board, protected action preview, and Goal details" width="960">
|
|
78
|
+
</a>
|
|
79
|
+
|
|
80
|
+
The workspace gives you one place to:
|
|
81
|
+
|
|
82
|
+
- see what needs you, what is running, what is being watched, and what is
|
|
83
|
+
scheduled or stopped;
|
|
84
|
+
- continue across Codex, Claude Code, direct-model, and other registered Agent
|
|
85
|
+
sessions without losing Goal state or evidence;
|
|
86
|
+
- review protected changes through typed preview, explicit confirmation, and
|
|
87
|
+
receipts while LoopX state—not the browser—remains authoritative.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
loopx dashboard
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`loopx dashboard` is the supported browser/PWA launch path. For a native
|
|
94
|
+
window, the experimental source-built Tauri shell reuses the same loopback
|
|
95
|
+
status and Chat services without becoming another state authority:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
cd apps/desktop/loopx-control-plane
|
|
99
|
+
npm install
|
|
100
|
+
npm run dev
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
[Read the desktop shell guide](apps/desktop/loopx-control-plane/README.md).
|
|
104
|
+
Closing the window stops only the service processes that the shell started;
|
|
105
|
+
existing LoopX services and durable Goal state remain intact. Both entry
|
|
106
|
+
points share the same loopback services and can be started in either order:
|
|
107
|
+
`loopx dashboard` reuses an already-running LoopX Chat service instead of
|
|
108
|
+
starting a second one.
|
|
109
|
+
|
|
110
|
+
[Watch the full 32-second walkthrough](docs/assets/personal-workspace/loopx-dashboard-launch.mp4)
|
|
111
|
+
· [Read the workspace guide](docs/guides/personal-workspace-user-guide.md)
|
|
112
|
+
· [Try the five-minute tour](docs/guides/personal-workspace-trial-guide.md)
|
|
113
|
+
|
|
114
|
+
<a id="how-it-works"></a>
|
|
115
|
+
|
|
116
|
+
## Why LoopX
|
|
117
|
+
|
|
118
|
+
An agent can finish a task in one session. Long-running work is harder:
|
|
119
|
+
objectives change, owner decisions appear, evidence goes stale, agents hand work
|
|
120
|
+
to peers, and a scheduler can keep spending after no useful transition remains.
|
|
121
|
+
Chat memory and a timer are not enough to govern that.
|
|
122
|
+
|
|
123
|
+
LoopX keeps the durable control state in one compact layer:
|
|
124
|
+
|
|
125
|
+
```text
|
|
126
|
+
objective / issue / project
|
|
127
|
+
│
|
|
128
|
+
▼
|
|
129
|
+
LoopX state: objective + gates + todos + scope + evidence + quota
|
|
130
|
+
│
|
|
131
|
+
├─ human judgment needed? ── yes ─▶ ask a concrete question and wait
|
|
132
|
+
│
|
|
133
|
+
├─ safe fallback available? ──────▶ run one bounded agent slice
|
|
134
|
+
│
|
|
135
|
+
▼
|
|
136
|
+
Codex / Claude Code / Cursor / shell agent executes one turn
|
|
137
|
+
│
|
|
138
|
+
▼
|
|
139
|
+
write evidence + handoff + next todo ─▶ quota decides the next tick
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Agent runtimes execute the work. LoopX governs the state that lets engineering,
|
|
143
|
+
research, discovery, and operations loops continue across runs. It is not
|
|
144
|
+
another agent framework or a provider-specific orchestration runtime.
|
|
145
|
+
|
|
146
|
+

|
|
147
|
+
|
|
148
|
+
A useful mental model is an
|
|
149
|
+
**[agent-native Kanban for long-running work](docs/development/control-plane-course/00-concept-primer.md)**.
|
|
150
|
+
Cards carry identity, authority, evidence, and continuation. Moves are validated
|
|
151
|
+
operators such as claim, gate, monitor, and writeback. The board is a
|
|
152
|
+
projection; LoopX state remains the source of truth.
|
|
153
|
+
|
|
154
|
+
Registered agents are peers. Claims, leases, task boundaries, capabilities, and
|
|
155
|
+
typed continuation decide who acts next; no durable leader identity is
|
|
156
|
+
required.
|
|
157
|
+
|
|
158
|
+
LoopX is useful when you run:
|
|
159
|
+
|
|
160
|
+
- multi-day engineering, research, benchmark, or experiment objectives;
|
|
161
|
+
- issue and PR loops that must preserve scope, evidence, and review state;
|
|
162
|
+
- recurring heartbeat or monitor work;
|
|
163
|
+
- projects with owner, safety, publication, or private-data gates;
|
|
164
|
+
- peer-agent teams where ownership, leases, and handoff matter;
|
|
165
|
+
- creator, research, or operations workflows whose progress must remain
|
|
166
|
+
legible to a non-engineering operator.
|
|
167
|
+
|
|
168
|
+
LoopX is not an autonomous production controller. Dangerous permissions,
|
|
169
|
+
publishing, production writes, and final ownership stay with the human.
|
|
170
|
+
|
|
171
|
+
<a id="see-it-in-action"></a>
|
|
172
|
+
|
|
173
|
+
## Evidence
|
|
174
|
+
|
|
175
|
+
These are not one-turn demos. The public OpenViking contribution sequence and
|
|
176
|
+
the redacted, owner-run Auto ML showcase each span
|
|
177
|
+
**200+ hours of elapsed loop lifetime** across many bounded turns, decisions,
|
|
178
|
+
and evidence updates. Elapsed lifetime is wall-clock project time. It is
|
|
179
|
+
not 200 hours of continuous model execution or a claim of unattended
|
|
180
|
+
production autonomy. Open each visual to
|
|
181
|
+
inspect the public-safe graph, evidence branches, and decisions preserved
|
|
182
|
+
across turns.
|
|
183
|
+
|
|
184
|
+
### Open-Source Issue Fix
|
|
185
|
+
|
|
186
|
+
**200+ hour public contribution arc: PR delivery and reusable fix knowledge
|
|
187
|
+
evolve together.**
|
|
188
|
+
|
|
189
|
+
<a href="docs/assets/long-running-loop-openviking-trajectory.png">
|
|
190
|
+
<img src="docs/assets/long-running-loop-openviking-trajectory.png" alt="Open-source issue-fix trajectory linking focused PR delivery with reusable LoopX capabilities" width="420">
|
|
191
|
+
</a>
|
|
192
|
+
|
|
193
|
+
LoopX's creator uses this path as an
|
|
194
|
+
[OpenViking contributor](https://github.com/volcengine/OpenViking/pulls?q=is%3Apr+author%3Ahuangruiteng).
|
|
195
|
+
The represented public contribution sequence spans more than 200 elapsed hours
|
|
196
|
+
from its first PR creation to the latest represented review or update. The
|
|
197
|
+
[Issue-Fix capability](loopx/capabilities/issue_fix/README.md) keeps rolling
|
|
198
|
+
repository context, revision-stamped fix knowledge, and reviewer-facing
|
|
199
|
+
preferences separate; linked PRs plus current checkout source and tests remain
|
|
200
|
+
authoritative.
|
|
201
|
+
|
|
202
|
+
### Auto ML Experiment
|
|
203
|
+
|
|
204
|
+
**Redacted owner-run showcase: a 200+ hour experiment arc keeps hypotheses,
|
|
205
|
+
matched evidence, invalid lineages, running replicates, and promote/stop gates
|
|
206
|
+
visible in one graph.**
|
|
207
|
+
|
|
208
|
+
<a href="docs/assets/long-running-loop-ml-experiment-trajectory.png">
|
|
209
|
+
<img src="docs/assets/long-running-loop-ml-experiment-trajectory.png" alt="Auto ML Experiment trajectory with experiment lineages, evidence gates, and promotion decisions" width="760">
|
|
210
|
+
</a>
|
|
211
|
+
|
|
212
|
+
The redacted public-safe graph preserves decision lineage across that 200+ hour
|
|
213
|
+
elapsed window. It is an owner-run showcase, not a claim of continuous compute,
|
|
214
|
+
independent reproduction, a production result, or company or employer
|
|
215
|
+
endorsement. The redacted image is not sufficient to reproduce the underlying
|
|
216
|
+
experiment independently.
|
|
217
|
+
|
|
218
|
+
### Auto Research
|
|
219
|
+
|
|
220
|
+
**Reproducible public KNN demo: proposer, executor, and evaluator/promoter agents
|
|
221
|
+
iterate in parallel while todo, quota, evidence, and targeted wake remain
|
|
222
|
+
visible.**
|
|
223
|
+
|
|
224
|
+
<a href="docs/assets/auto-research-multi-agent-showcase.png">
|
|
225
|
+
<img src="docs/assets/auto-research-multi-agent-showcase.png" alt="Auto Research multi-agent workspace with proposer, executor, evaluator/promoter, todo, quota, evidence, and targeted wake activity">
|
|
226
|
+
</a>
|
|
227
|
+
|
|
228
|
+
This screenshot comes from LoopX's built-in exact-KNN demo. The public task,
|
|
229
|
+
editable and protected files, deterministic CPU evaluator, and dev/held-out
|
|
230
|
+
commands all live in this repository. Follow the
|
|
231
|
+
[showcase walkthrough](docs/product/use-cases/auto-research/decentralized-auto-research-showcase.md)
|
|
232
|
+
or the [demo command path](demo/auto_research/README.md) to reproduce the
|
|
233
|
+
workflow; it is a demo result, not a production research claim.
|
|
234
|
+
|
|
235
|
+
### Used In Real Projects
|
|
236
|
+
|
|
237
|
+
- **Independent user · `>13h` C++ accuracy run.** The user reported that a
|
|
238
|
+
multi-stage task stayed aligned, triggered public research, adopted a
|
|
239
|
+
[public code-memory tool](https://github.com/DeusData/codebase-memory-mcp),
|
|
240
|
+
and improved final precision. [Read the evidence boundary](docs/showcases/cases/independent-cpp-accuracy-long-run.md).
|
|
241
|
+
- **Independent user · `4d` unattended run.** The user reported four days
|
|
242
|
+
without human intervention, useful ongoing work, and a periodic report
|
|
243
|
+
surface. [Read the redacted case](docs/showcases/cases/independent-four-day-unattended-agent.md).
|
|
244
|
+
- **Independent user · `7` merged PRs.** A LoopX-attributed Engine refactor is
|
|
245
|
+
visible in a [public issue](https://github.com/zilliztech/mfs/issues/166) and
|
|
246
|
+
seven merged PRs; attribution and the reported `1B+` token scale remain user
|
|
247
|
+
reports. [Inspect the case](docs/showcases/cases/independent-public-engine-refactor.md).
|
|
248
|
+
|
|
249
|
+
These are the three strongest current cases, not the full inventory. Browse the
|
|
250
|
+
[complete Showcase catalog](docs/showcases/README.md) for contributor cases,
|
|
251
|
+
creator dogfooding, reproducible demos, and explicit evidence-strength labels.
|
|
252
|
+
|
|
253
|
+
More inspectable surfaces:
|
|
254
|
+
|
|
255
|
+
- the [public homepage](https://huangruiteng.github.io/loopx/) for the product
|
|
256
|
+
narrative, quick start, and long-running evidence;
|
|
257
|
+
- the [complete Showcase catalog](docs/showcases/README.md) and its
|
|
258
|
+
[bilingual hosted index](docs/showcases/index.html);
|
|
259
|
+
- the [cross-runtime implementation review demo](docs/product/use-cases/cross-runtime/cross-runtime-impl-review-demo.md);
|
|
260
|
+
- the public [user manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg).
|
|
261
|
+
|
|
262
|
+
<a id="quick-start"></a>
|
|
263
|
+
|
|
264
|
+
## Try LoopX
|
|
265
|
+
|
|
266
|
+
Requirements: Python 3.11+. Use an active Python environment whose console
|
|
267
|
+
scripts are on `PATH`; macOS and Linux use a POSIX shell, while native Windows
|
|
268
|
+
uses PowerShell 7. Git is only needed for contributor clone/canary workflows.
|
|
269
|
+
The package has no runtime dependencies outside the standard library.
|
|
270
|
+
|
|
271
|
+
Install from PyPI without cloning:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
python3 -m pip install --upgrade loopx
|
|
275
|
+
loopx workflow-skills --install
|
|
276
|
+
loopx doctor
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Existing installs can use `loopx update plan` and `loopx update apply`; LoopX
|
|
280
|
+
keeps the detected pip, pipx, or archive owner instead of switching channels.
|
|
281
|
+
|
|
282
|
+
On native Windows PowerShell 7, use the same PyPI release without a POSIX
|
|
283
|
+
compatibility layer:
|
|
284
|
+
|
|
285
|
+
```powershell
|
|
286
|
+
py -3.11 -m pip install --upgrade loopx
|
|
287
|
+
loopx workflow-skills --install
|
|
288
|
+
loopx doctor
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Restart your agent host after first install so it reloads the workflow skills.
|
|
292
|
+
See [Installing LoopX](docs/guides/installing-loopx.md) for `pipx`, host
|
|
293
|
+
command surfaces, native Windows checkout installation, upgrade, rollback,
|
|
294
|
+
uninstall, and the archive fallback.
|
|
295
|
+
|
|
296
|
+
Then connect from your project root:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
cd /path/to/your-project
|
|
300
|
+
loopx connect
|
|
301
|
+
loopx status
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
If the project has not been initialized and `connect` tells you state is
|
|
305
|
+
missing, use the guided path:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
loopx start-goal --guided --project . --goal-text "Your long-running objective"
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
LoopX should reuse existing state rather than overwrite it. Keep `.loopx/`,
|
|
312
|
+
`.codex/goals/`, and `.local/` ignored.
|
|
313
|
+
|
|
314
|
+
### Start From Your Agent
|
|
315
|
+
|
|
316
|
+
| Host | Recommended start | Loop driver |
|
|
317
|
+
| --- | --- | --- |
|
|
318
|
+
| Codex App | Ask the agent to connect this project to LoopX, run `loopx doctor`, preserve existing state, and report the current gate and next todo. Then use `$loopx <complex task>` or choose `loopx` from `/skills`. | Codex App heartbeat automation, refreshed from `quota should-run.scheduler_hint` |
|
|
319
|
+
| Codex App over SSH | `loopx agent-onboard --agent-type codex-app-ssh --project .` | The returned visible `/goal <task_body>` |
|
|
320
|
+
| Codex CLI | Start `codex` in the project, ask it to connect and diagnose LoopX, then use `$loopx <complex task>` or `/skills`. | Visible `/goal <task_body>`; no hidden headless execution by default |
|
|
321
|
+
| Claude Code | Install the opt-in adapter, then run `/loopx <task>` followed by `/loop`. | Native Claude Code `/loop` gated by LoopX |
|
|
322
|
+
| KunlunCode | Run `loopx-kunluncode connect --project . --goal-id <goal-id> --agent-id <registered-agent-id>`, add a bounded todo, then run `loopx-kunluncode run --project .`. | Native Goal Pro through app-server; LoopX writes completion and quota only after strict verification |
|
|
323
|
+
| OpenCode | Install the static command facade; opt in to `--with-goal-bridge` for recurring goals. | OpenCode command facade and explicit goal bridge |
|
|
324
|
+
| Pi | Install the opt-in goal extension with `loopx slash-commands --install --surface pi`, then use `/loopx <task>` from a trusted Pi session. | Visible Pi goal extension gated by LoopX quota (`loopx_goal_activate` + `agent_settled` continuation) |
|
|
325
|
+
| ZCode | Install the skill facade with `loopx slash-commands --install --surface zcode`, then invoke the `$loopx` skill (or `/loopx <complex task>`) from a ZCode session in the project. | The ZCode session's own turn loop; every continuation enters through `quota should-run` |
|
|
326
|
+
| Antigravity CLI (agy) | Install the skill facade with `loopx slash-commands --install --surface agy`, then invoke the `loopx` skill (or `/loopx <complex task>`) from an `agy` session in the project. | The session's native `/goal` loop (audited until `<!-- GOAL_COMPLETE -->`) with `schedule` self-wakes while the session lives; the facade instructs every turn/wake to re-enter through `quota should-run` — advisory pacing, not a host-enforced gate |
|
|
327
|
+
| DeepSeek Harness (dsh) | Install `loopx[deepseek-harness]`, prepare a dsh `cordis.yml`, then use the [dsh goal-mode adapter](loopx/dsh_goal_mode/README.md) with `loopx turn run-once`. | Headless dsh segments through LoopX Turn, each tick gated by `quota should-run` |
|
|
328
|
+
| Cursor, shell, or custom runner | Use the installer and `loopx doctor`; connect manually or call LoopX from your runner. | Your shell, scheduler, or runner |
|
|
329
|
+
|
|
330
|
+
The exact, copy-ready setup messages and host recovery paths live in
|
|
331
|
+
[Getting Started](docs/guides/getting-started.md). Host integrations can inspect
|
|
332
|
+
the [Codex App host command registry contract](docs/reference/protocols/codex-app-host-command-registry-v0.md),
|
|
333
|
+
the [Codex CLI packaged install path](docs/product/runtimes/codex-cli/codex-cli-packaged-install.md),
|
|
334
|
+
the [Claude Code adapter](loopx/claude_goal_mode/README.md), the
|
|
335
|
+
[KunlunCode native Goal adapter](loopx/kunluncode_goal_mode/README.md), or the
|
|
336
|
+
[DeepSeek Harness turn adapter](loopx/dsh_goal_mode/README.md).
|
|
337
|
+
|
|
338
|
+
For custom runners, start with the
|
|
339
|
+
[minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md)
|
|
340
|
+
(`python3 examples/custom-runtime-minimal-cli-turn-smoke.py`), then the full
|
|
341
|
+
[Embed LoopX in Your Agent Runner](docs/guides/custom-agent-runner-integration.md)
|
|
342
|
+
guide and the [worker bridge install contract](docs/integrations/worker-bridge-install-contract.md).
|
|
343
|
+
The core tick is deliberately small:
|
|
344
|
+
|
|
345
|
+
```text
|
|
346
|
+
loopx quota should-run # should this registered agent act now?
|
|
347
|
+
loopx todo claim # who owns this slice?
|
|
348
|
+
loopx todo update # what changed?
|
|
349
|
+
loopx refresh-state # what should the next turn see?
|
|
350
|
+
loopx quota spend-slot # account for a completed, validated slice
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### First-Run Feedback
|
|
354
|
+
|
|
355
|
+
If LoopX works for you, a one-minute public issue helps us learn what a real
|
|
356
|
+
first run looks like. It is optional, contains no telemetry, and should not
|
|
357
|
+
include logs, paths, credentials, internal project names, or goal contents:
|
|
358
|
+
|
|
359
|
+
- [First-run feedback](https://github.com/huangruiteng/loopx/issues/new?template=first_run.yml)
|
|
360
|
+
- [Usage story for longer runs](https://github.com/huangruiteng/loopx/issues/new?template=usage_story.yml)
|
|
361
|
+
|
|
362
|
+
`loopx first-run-report` prints the same prefilled link locally without
|
|
363
|
+
sending anything.
|
|
364
|
+
|
|
365
|
+
A successful connection has:
|
|
366
|
+
|
|
367
|
+
- `loopx doctor` passing;
|
|
368
|
+
- `.loopx/registry.json` and a projected active goal state;
|
|
369
|
+
- `loopx status` showing the current objective, concrete user gate, and next
|
|
370
|
+
agent todo;
|
|
371
|
+
- a visible loop driver or an exact activation instruction;
|
|
372
|
+
- local runtime state ignored rather than committed.
|
|
373
|
+
|
|
374
|
+
Clone-based install is only for contributors who want the live canary wrapper:
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
git clone https://github.com/huangruiteng/loopx ~/loopx
|
|
378
|
+
~/loopx/scripts/install-local.sh
|
|
379
|
+
loopx doctor
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
<a id="capability-surface"></a>
|
|
383
|
+
|
|
384
|
+
## Capabilities
|
|
385
|
+
|
|
386
|
+
LoopX keeps the architecture explicit so the same governed outcome can survive
|
|
387
|
+
a change of agent harness or external provider. The terms describe different
|
|
388
|
+
boundaries rather than interchangeable kinds of plugin:
|
|
389
|
+
|
|
390
|
+
| Boundary | Meaning | Go deeper |
|
|
391
|
+
| --- | --- | --- |
|
|
392
|
+
| **Kernel** | Owns durable goal, todo, gate, evidence, quota, recovery, and scheduling truth. | [Architecture](docs/architecture.md) |
|
|
393
|
+
| **Capability** | Defines a stable, provider-neutral contract for producing one bounded, verifiable caller outcome from LoopX state. | [Capability catalog](loopx/capabilities/README.md) |
|
|
394
|
+
| **Provider** | Calls an external system or local implementation and returns bounded observations, effect results, and readback. | [Provider responsibilities](docs/reference/extensions.md#runtime-responsibilities) |
|
|
395
|
+
| **Extension** | Packages and operates an optional provider through explicit install, readiness, enable, upgrade, disable, and rollback lifecycle. | [Extension lifecycle](docs/reference/extensions.md#runtime-lifecycle) |
|
|
396
|
+
|
|
397
|
+
Host declarations such as `--available-capability shell` describe observed
|
|
398
|
+
execution support. They are runtime capacities in this product map, not product
|
|
399
|
+
capabilities and not permission grants. The effective capability still applies
|
|
400
|
+
its own policy and authority checks before proposing a transition.
|
|
401
|
+
|
|
402
|
+
### Core Control-Plane Promises
|
|
403
|
+
|
|
404
|
+
The Kernel folds its mechanics into five questions. Each question delivers one
|
|
405
|
+
product promise on top of any agent harness: objective → long-horizon state;
|
|
406
|
+
next → semantic decisions; human judgment → human-agent collaboration;
|
|
407
|
+
evidence → recovery; continuation → governance.
|
|
408
|
+
|
|
409
|
+
| Question | What LoopX keeps visible |
|
|
410
|
+
| --- | --- |
|
|
411
|
+
| What is the objective? | The active goal, explicit scope, and current authority. |
|
|
412
|
+
| What happens next? | Ordered user and agent todos, ownership, claims, and leases. |
|
|
413
|
+
| What needs human judgment? | Concrete user gates instead of a vague "waiting for owner." |
|
|
414
|
+
| What evidence changed? | Compact run history, validation, blockers, and accepted writeback. |
|
|
415
|
+
| May the loop continue? | Quota, capabilities, safe fallback, scheduler hints, and stop conditions. |
|
|
416
|
+
|
|
417
|
+
### Control-Plane Surface
|
|
418
|
+
|
|
419
|
+
| Surface | What it does | Start with |
|
|
420
|
+
| --- | --- | --- |
|
|
421
|
+
| Goal state and status | Tracks active state, todos, claims, gates, evidence, run history, and first-screen attention. | `loopx status`, `loopx diagnose`, `loopx review-packet` |
|
|
422
|
+
| Quota and interaction contract | Decides whether a turn should deliver, ask, wait, self-repair, or stay quiet. | `loopx quota should-run`, [quota allocation](docs/quota-allocation.md) |
|
|
423
|
+
| Agent runtime bridges | Keeps Codex App, Codex CLI, Claude Code, and generic workers aligned with the same guard. | `loopx heartbeat-prompt`, `loopx codex-cli-bootstrap-message`, `loopx worker-bridge` |
|
|
424
|
+
| Operator surfaces | Renders compact status without making the browser the state authority. | `loopx serve-status`, [dashboard](apps/presentation/dashboard/README.md) |
|
|
425
|
+
| Session dash | Starts a live single-page panel that tracks fleet progress: sessions, their goals, and each goal's status/todo progress, with result statistics; auto-refreshes in place. | `loopx dash`, [session dash design](docs/product/surfaces/session-dash-panel-design.md) |
|
|
426
|
+
| External projections | Projects todos and gates into collaboration surfaces while LoopX remains authoritative. | `loopx lark-kanban`, [Lark Kanban adapter](docs/integrations/lark-kanban-control-plane-adapter.md) |
|
|
427
|
+
| Domain capabilities | Packages repeatable work lanes such as issue fixing, content operations, value connector planning, ML experiment advice, benchmark evidence, and Explore. | `loopx issue-fix`, `loopx content-ops`, `loopx value-connectors`, `loopx ml-experiment`, `loopx benchmark`, [Explore](loopx/capabilities/explore/README.md) |
|
|
428
|
+
| Experimental context learning | Lets named registered agents trial provider-neutral Reward Memory through ignored, default-off project configuration. OpenViking is one provider option, not a global dependency. | `loopx reward-memory experiment-status`, [Reward Memory architecture](loopx/capabilities/reward_memory/README.md) |
|
|
429
|
+
| Governance patterns | Captures reusable routing, gate, evidence, projection, and planning shapes. | [interaction patterns](docs/concepts/interaction-pattern-catalog.md), [state model](docs/state-interaction-model.md) |
|
|
430
|
+
|
|
431
|
+
The shipped primitives include lifetime goals, concrete user gates, audited safe
|
|
432
|
+
fallbacks, peer todo ownership, quota and steering, compact run history,
|
|
433
|
+
evidence-backed handoff, a read-first management surface, project-level value
|
|
434
|
+
signals, and public/private boundary checks.
|
|
435
|
+
|
|
436
|
+
### Product Capability Paths
|
|
437
|
+
|
|
438
|
+
Capabilities turn those generic primitives into outcome-owned work lanes. Start
|
|
439
|
+
from the outcome, then inspect the current registered implementation and its
|
|
440
|
+
write boundary:
|
|
441
|
+
|
|
442
|
+
| You need to... | Capability | Start with |
|
|
443
|
+
| --- | --- | --- |
|
|
444
|
+
| Turn a public issue into a reviewable, evidence-backed change | [Issue Fix](loopx/capabilities/issue_fix/README.md) | `loopx capability show issue-fix --format json` |
|
|
445
|
+
| Qualify the exact final diff before delivery | [Change Quality](loopx/capabilities/change_quality/README.md) | `loopx capability show change-quality-qualification --format json` |
|
|
446
|
+
| Preserve a changing stack of already reviewed branches | [Integration Branch](loopx/capabilities/integration_branch/README.md) | `loopx capability show integration-branch-reconcile --format json` |
|
|
447
|
+
| Explore uncertain research without losing hypotheses and findings | [Explore](loopx/capabilities/explore/README.md) | `loopx capability show explore --format json` |
|
|
448
|
+
| Rebase decisions on current evidence and verified outcomes | [Decision Context](loopx/capabilities/decision_context/README.md) | `loopx capability show decision-context --format json` |
|
|
449
|
+
| Produce scheduled or progress-triggered reports with receipts | [Periodic Report](loopx/capabilities/periodic_report/README.md) | `loopx capability show periodic-report --format json` |
|
|
450
|
+
|
|
451
|
+
Run `loopx capability list --format json` for the authoritative catalog in the
|
|
452
|
+
installed release. A capability detail reports its user value, maturity,
|
|
453
|
+
provider readiness, entry commands, write boundaries, protocols, and durable
|
|
454
|
+
validation. Browse the [human-readable capability index](loopx/capabilities/README.md)
|
|
455
|
+
to choose by outcome; use [Extensions and Capabilities](docs/reference/extensions.md)
|
|
456
|
+
when installing or building a provider.
|
|
457
|
+
|
|
458
|
+
### Runtime Responsibilities
|
|
459
|
+
|
|
460
|
+
| Role | Responsibility |
|
|
461
|
+
| --- | --- |
|
|
462
|
+
| **Agent** | Plans, analyzes, uses tools, and performs one bounded action through a host/runtime. |
|
|
463
|
+
| **Provider** | Calls external systems and returns observations, effect results, and readback. |
|
|
464
|
+
| **Capability** | Defines the caller outcome, normalizes provider output, validates it, and proposes a typed transition. |
|
|
465
|
+
| **Kernel** | Owns durable todos, gates, monitors, accepted writeback, quota, recovery, and scheduling. |
|
|
466
|
+
|
|
467
|
+
The execution path is `Agent -> Capability -> Provider`; the control path
|
|
468
|
+
returns `Provider readback -> Capability transition -> Kernel`. An extension is
|
|
469
|
+
how an optional provider is packaged and managed, not another control-plane
|
|
470
|
+
owner. See [Architecture](docs/architecture.md) and
|
|
471
|
+
[Extensions and Capabilities](docs/reference/extensions.md).
|
|
472
|
+
|
|
473
|
+
## Advanced Paths
|
|
474
|
+
|
|
475
|
+
The first useful loop does not require every optional surface. Add these only
|
|
476
|
+
when the work needs them.
|
|
477
|
+
|
|
478
|
+
Inspect the current goal's read-only capability catalog before enabling an
|
|
479
|
+
advanced path:
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
loopx configure-goal --goal-id <goal-id>
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
Without `--execute`, this reports current/default state, fit, boundaries, and
|
|
486
|
+
copyable commands without changing project state.
|
|
487
|
+
|
|
488
|
+
### Presets and Auto Research
|
|
489
|
+
|
|
490
|
+
Safe presets cover daily triage, changelog drafts, and PR watching. The
|
|
491
|
+
one-command research path coordinates proposer, executor, and
|
|
492
|
+
evaluator/promoter roles while keeping quota and evidence visible. See the
|
|
493
|
+
[beginner preset guide](docs/product/foundations/beginner-loop-presets.md) and
|
|
494
|
+
[Auto Research demo path](demo/auto_research/README.md).
|
|
495
|
+
|
|
496
|
+
```bash
|
|
497
|
+
loopx preset list
|
|
498
|
+
loopx preset show daily-triage
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
Preset inspection is read-only. For a connected recurring goal,
|
|
502
|
+
`loopx ready-score --goal-id <goal-id> --agent-id <agent-id>` reports whether
|
|
503
|
+
the loop is ready to run repeatedly.
|
|
504
|
+
|
|
505
|
+
### Governed Turns
|
|
506
|
+
|
|
507
|
+
LoopX can generate one pure, bounded turn decision from a validated receipt,
|
|
508
|
+
fresh quota state, and a provider-neutral budget. The current Codex CLI
|
|
509
|
+
quickstart and activation contract are documented in
|
|
510
|
+
[LoopX Turn for Codex CLI](docs/product/runtimes/codex-cli/loopx-turn-codex-cli-quickstart.md).
|
|
511
|
+
|
|
512
|
+
### Explore Graph and Harness
|
|
513
|
+
|
|
514
|
+
Explore is supported, optional, and default-off. It works best when a task has
|
|
515
|
+
a measurable offline evaluation, baseline, treatment, and guardrails; it is not
|
|
516
|
+
a substitute for production approval. Start with the
|
|
517
|
+
[Explore capability](loopx/capabilities/explore/README.md) and its
|
|
518
|
+
[Lark presentation mapping](loopx/capabilities/explore/README.md#presentation-sink-lark-mapping).
|
|
519
|
+
|
|
520
|
+
### Review Agent Work
|
|
521
|
+
|
|
522
|
+
Use `loopx review-packet` for a compact owner-facing view of decisions,
|
|
523
|
+
evidence, validation, and unresolved gates. The
|
|
524
|
+
[intelligent management surface](docs/product/surfaces/intelligent-management-surface.md)
|
|
525
|
+
describes the operator model; the
|
|
526
|
+
[project-level reward model](docs/product/foundations/project-level-reward-model.md)
|
|
527
|
+
describes conservative value signals across output quantity, quality, token
|
|
528
|
+
cost, and user attention cost.
|
|
529
|
+
|
|
530
|
+
For one concrete peer workflow, see the
|
|
531
|
+
[cross-runtime implementation review demo](docs/product/use-cases/cross-runtime/cross-runtime-impl-review-demo.md):
|
|
532
|
+
Claude implements and Codex reviews while LoopX keeps ownership, evidence,
|
|
533
|
+
quota, and handoff explicit.
|
|
534
|
+
|
|
535
|
+
### App and Projection Paths
|
|
536
|
+
|
|
537
|
+
- Local read-first UI: [dashboard guide](apps/presentation/dashboard/README.md)
|
|
538
|
+
- Public product overview: [public homepage](https://huangruiteng.github.io/loopx/)
|
|
539
|
+
- Documentation portal: [hosted docs](https://huangruiteng.github.io/loopx/docs/)
|
|
540
|
+
- Feishu/Lark projection: [Lark Kanban adapter](docs/integrations/lark-kanban-control-plane-adapter.md)
|
|
541
|
+
- Generic host integration: [integration guide](docs/integration.md)
|
|
542
|
+
- Custom multi-agent runner:
|
|
543
|
+
[minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md),
|
|
544
|
+
then [custom runner integration](docs/guides/custom-agent-runner-integration.md)
|
|
545
|
+
|
|
546
|
+
Optional projections make state easier to inspect; they do not become the
|
|
547
|
+
source of truth.
|
|
548
|
+
|
|
549
|
+
### Operating and Recovery
|
|
550
|
+
|
|
551
|
+
Start daily inspection with:
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
loopx status
|
|
555
|
+
loopx history --goal-id your-project-goal
|
|
556
|
+
loopx quota should-run --goal-id your-project-goal
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
Automatic turns must check quota first and append spend only after validated
|
|
560
|
+
writeback. Quiet skips, preflight failures, and dry-run previews do not spend.
|
|
561
|
+
When a user gate blocks one lane, a separately audited safe fallback may
|
|
562
|
+
continue, but it must not bypass the gate.
|
|
563
|
+
|
|
564
|
+
Peer agents use `loopx todo claim` before delivery and `loopx todo update`
|
|
565
|
+
after validation so ownership and evidence remain visible.
|
|
566
|
+
|
|
567
|
+
Scheduler cadence follows `quota should-run.scheduler_hint`; installed Codex
|
|
568
|
+
App automations acknowledge the current hint through the returned
|
|
569
|
+
`ack_hint.cli_args`. Collision recovery, monitor semantics, self-repair, and
|
|
570
|
+
the exact operator commands are maintained in
|
|
571
|
+
[Getting Started](docs/guides/getting-started.md),
|
|
572
|
+
[Quota Allocation](docs/quota-allocation.md), and
|
|
573
|
+
[Long-Task Cadence Policy](docs/operations/long-task-cadence-policy.md).
|
|
574
|
+
|
|
575
|
+
Before publishing public docs or examples:
|
|
576
|
+
|
|
577
|
+
```bash
|
|
578
|
+
loopx check \
|
|
579
|
+
--scan-path README.md \
|
|
580
|
+
--scan-path docs/ \
|
|
581
|
+
--scan-path examples/
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
## Current Technical Directions
|
|
585
|
+
|
|
586
|
+
LoopX has three active strategic programs plus an architecture and research
|
|
587
|
+
incubator. These are direction signals, not delivery promises; `main`, released
|
|
588
|
+
artifacts, and stable reference contracts remain the source of shipped truth.
|
|
589
|
+
|
|
590
|
+
- **Long-Horizon Benchmarks and Evidence:** reproducible capability evidence
|
|
591
|
+
and controlled mechanism research across complementary benchmark
|
|
592
|
+
environments. [Direction tracker](https://github.com/huangruiteng/loopx/issues/3243)
|
|
593
|
+
- **Operator Surface and IM Integration:** an operator workspace, session
|
|
594
|
+
records, and bounded collaboration surfaces, currently incubating on a
|
|
595
|
+
dedicated integration branch with `@maxliux5` as implementation lead.
|
|
596
|
+
[Direction tracker](https://github.com/huangruiteng/loopx/issues/3244)
|
|
597
|
+
- **Shared Goal Authority and Cross-host Coordination:** provider-neutral
|
|
598
|
+
coordination for explicitly shared goals, with NoKV as an unpromoted
|
|
599
|
+
provider candidate rather than a new control-plane authority.
|
|
600
|
+
[Direction tracker](https://github.com/huangruiteng/loopx/issues/3245)
|
|
601
|
+
- **Architecture and Research Incubator:** Effect Program hardening,
|
|
602
|
+
TypeScript parity migration, hierarchical stride, research exploration,
|
|
603
|
+
human attention, artifact lifecycle, and memory utility work at explicitly
|
|
604
|
+
different maturity levels.
|
|
605
|
+
[Direction tracker](https://github.com/huangruiteng/loopx/issues/3246)
|
|
606
|
+
|
|
607
|
+
Read the canonical
|
|
608
|
+
[Technical Directions map](docs/project/technical-directions.md) for stages,
|
|
609
|
+
promotion gates, contributor-safe cuts, and ownership boundaries. Use the
|
|
610
|
+
pinned [GitHub Discussion](https://github.com/huangruiteng/loopx/discussions/2851)
|
|
611
|
+
for community discussion. Core control-plane reliability continues as the
|
|
612
|
+
shared foundation beneath these programs.
|
|
613
|
+
|
|
614
|
+
## Advanced Documentation
|
|
615
|
+
|
|
616
|
+
Start with the path that matches your current task. Use the hosted
|
|
617
|
+
[documentation portal](https://huangruiteng.github.io/loopx/docs/) for the
|
|
618
|
+
published docs site; the [documentation index](docs/README.md) remains the
|
|
619
|
+
complete source map. This list stays selective; each category index owns its
|
|
620
|
+
deeper documents and versioned protocols.
|
|
621
|
+
|
|
622
|
+
### Use and Operate
|
|
623
|
+
|
|
624
|
+
- [Getting Started](docs/guides/getting-started.md): install, connect,
|
|
625
|
+
diagnose, daily workflow, heartbeats, dashboard, development, and commands.
|
|
626
|
+
- [User Manual](https://my.feishu.cn/wiki/CaL5wMk9ui17ngkWzeUcMlAYnZg):
|
|
627
|
+
public onboarding, concepts, FAQ, and selected cases.
|
|
628
|
+
- [Operations](docs/operations/README.md): goal continuation, todo, cadence,
|
|
629
|
+
attention, and authority workflows.
|
|
630
|
+
- [Quota Allocation](docs/quota-allocation.md) and
|
|
631
|
+
[Heartbeat Automation Prompt](docs/heartbeat-automation-prompt.md): scheduler
|
|
632
|
+
eligibility, spend, and scheduled continuation.
|
|
633
|
+
- [Dashboard](apps/presentation/dashboard/README.md) and
|
|
634
|
+
[Status Data Contract](docs/status-data-contract.md): operator-facing state
|
|
635
|
+
and projection contracts.
|
|
636
|
+
- [Release Readiness](docs/product/release-readiness.md): install/update paths,
|
|
637
|
+
compatibility gates, release notes, and safe-to-depend-on surfaces.
|
|
638
|
+
|
|
639
|
+
### Understand the Control Plane
|
|
640
|
+
|
|
641
|
+
- [Architecture](docs/architecture.md): lifetime-goal invariant and kernel.
|
|
642
|
+
- [State Interaction Model](docs/state-interaction-model.md): actors, stores,
|
|
643
|
+
interaction contract, and writeback.
|
|
644
|
+
- [Concepts](docs/concepts/README.md): reusable routing, gate, evidence,
|
|
645
|
+
projection, and planning patterns.
|
|
646
|
+
- [Product Foundations](docs/product/foundations/README.md): Loop Engineering
|
|
647
|
+
principles, project-level reward, and reward-style replanning.
|
|
648
|
+
- [Product Vision](docs/product/vision.md): the broader Loop Agent direction.
|
|
649
|
+
|
|
650
|
+
### Integrate and Extend
|
|
651
|
+
|
|
652
|
+
- [Integration Guide](docs/integration.md)
|
|
653
|
+
- [Minimal Custom Runtime Example](docs/guides/minimal-custom-runtime-example.md)
|
|
654
|
+
- [Custom Agent Runner Integration](docs/guides/custom-agent-runner-integration.md)
|
|
655
|
+
- [Integrations](docs/integrations/README.md): runtime, host, collaboration, and
|
|
656
|
+
external-system adapters, including worker bridge and Lark.
|
|
657
|
+
- [Extensions and Capabilities](docs/reference/extensions.md)
|
|
658
|
+
|
|
659
|
+
### Build and Review LoopX
|
|
660
|
+
|
|
661
|
+
- [Developer Guide](docs/development/README.md): contributor workflows,
|
|
662
|
+
benchmark development, documentation layout, and quality gates.
|
|
663
|
+
- [Reference and Protocols](docs/reference/README.md): stable contracts and
|
|
664
|
+
versioned implementation protocols, including host command and reward memory
|
|
665
|
+
architecture.
|
|
666
|
+
- [Control-Plane Developer Course](docs/development/control-plane-course/README.md):
|
|
667
|
+
nine Chinese, code-led lectures.
|
|
668
|
+
- [Testing and Quality](docs/development/testing-and-quality.md): validation
|
|
669
|
+
layers and risk-based checks.
|
|
670
|
+
- [Public/Private Boundary](docs/public-private-boundary.md): safe fixtures,
|
|
671
|
+
examples, evidence, and publication.
|
|
672
|
+
|
|
673
|
+
### Inspect Outcomes
|
|
674
|
+
|
|
675
|
+
- [Showcase Catalog](docs/showcases/README.md): public-safe cases and evidence
|
|
676
|
+
labels.
|
|
677
|
+
- [Research and Evidence](docs/research/README.md): benchmark investigations
|
|
678
|
+
and source-backed findings.
|
|
679
|
+
- [Update Notes](docs/update-notes/README.md): public-safe progress notes.
|
|
680
|
+
|
|
681
|
+
### Project and Community
|
|
682
|
+
|
|
683
|
+
- [Current Technical Directions](docs/project/technical-directions.md)
|
|
684
|
+
- [Project Governance](.github/GOVERNANCE.md)
|
|
685
|
+
- [Contributing](CONTRIBUTING.md) and [Contributor Tasks](docs/development/contributor-tasks.md)
|
|
686
|
+
- [Authors and Contributors](docs/project/authors.md)
|
|
687
|
+
- [Project History](docs/project/history.md)
|
|
688
|
+
- [Name and Marks](docs/project/trademarks.md)
|
|
689
|
+
- [Brand Guide for External Use](docs/project/brand-guide.md): how projects and companies may reference LoopX, its integrations, and its artwork
|
|
690
|
+
- [ADOPTERS](ADOPTERS.md): voluntary self-attested adoption directory
|
|
691
|
+
- [Ecosystem Adoption](docs/community/ecosystem-adoption.md) - integrations,
|
|
692
|
+
sampling, and derivatives we observe and track
|
|
693
|
+
|
|
694
|
+
## Partner Projects
|
|
695
|
+
|
|
696
|
+
LoopX welcomes collaboration with other open-source projects to build the
|
|
697
|
+
long-running agent ecosystem. Our confirmed partners include:
|
|
698
|
+
|
|
699
|
+
- [OpenViking](https://github.com/volcengine/OpenViking) - Self-evolving
|
|
700
|
+
context database for AI agents
|
|
701
|
+
- [NoKV](https://github.com/NoKV-Lab/NoKV) - AI native distributed file system
|
|
702
|
+
|
|
703
|
+
<a id="community--feedback"></a>
|
|
704
|
+
|
|
705
|
+
## Community and Feedback
|
|
706
|
+
|
|
707
|
+
LoopX is already running real long-running agent goals and is under active
|
|
708
|
+
development. The most useful feedback comes from real long-running agent
|
|
709
|
+
projects: where the control plane helped, where it felt heavy, and which gates
|
|
710
|
+
or handoffs disappeared from view.
|
|
711
|
+
|
|
712
|
+
- Use [GitHub Issues](https://github.com/huangruiteng/loopx/issues) for
|
|
713
|
+
reproducible bugs, install problems, and feature requests.
|
|
714
|
+
- Open PRs for docs fixes, showcase writeups, and small public-safe examples.
|
|
715
|
+
- Join the [Discord community](https://discord.gg/XmGgQyCFZd), or use Lark or
|
|
716
|
+
WeChat below.
|
|
717
|
+
|
|
718
|
+
See [Support](.github/SUPPORT.md) for channel routing, service boundaries, and
|
|
719
|
+
official publication sources.
|
|
720
|
+
|
|
721
|
+
<p align="center">
|
|
722
|
+
<a href="docs/assets/loopx-lark-developer-group.png"><img src="docs/assets/loopx-lark-developer-group.png" alt="LoopX Lark developer group QR code" width="280"></a>
|
|
723
|
+
<a href="docs/assets/loopx-wechat-contact.png"><img src="docs/assets/loopx-wechat-contact.png" alt="LoopX WeChat contact QR code" width="220"></a>
|
|
724
|
+
</p>
|
|
725
|
+
<p align="center">
|
|
726
|
+
<sub><strong>Lark:</strong> scan to join directly<br><strong>WeChat: <code>huangrt00</code></strong> · mention LoopX in the friend request</sub>
|
|
727
|
+
</p>
|
|
728
|
+
|
|
729
|
+
## Contributing
|
|
730
|
+
|
|
731
|
+
External contributors should start with
|
|
732
|
+
[Contributor Tasks](docs/development/contributor-tasks.md) for public, claimable work and
|
|
733
|
+
[Contributing](CONTRIBUTING.md) for setup, validation, and boundary rules.
|
|
734
|
+
Project roles and public history are recorded in
|
|
735
|
+
[Governance](.github/GOVERNANCE.md),
|
|
736
|
+
[Authors and Contributors](docs/project/authors.md), and
|
|
737
|
+
[Project History](docs/project/history.md).
|
|
738
|
+
|
|
739
|
+
LoopX keeps local active state separate from the public repository. Do not
|
|
740
|
+
commit `.loopx/`, `.codex/goals/`, live `ACTIVE_GOAL_STATE.md`, raw benchmark
|
|
741
|
+
traces, credentials, private logs, or operator artifacts.
|
|
742
|
+
|
|
743
|
+
## Current Status
|
|
744
|
+
|
|
745
|
+
The v0.4.x line is a usable local control plane for long-running agent work and
|
|
746
|
+
is entering broader adoption. It is not a full agent platform, an agent runtime,
|
|
747
|
+
or an autonomous production controller.
|
|
748
|
+
|
|
749
|
+
Today LoopX ships a durable state kernel for goals, typed todos and decision
|
|
750
|
+
scopes, peer claims and leases, evidence and writeback, quota-aware scheduling,
|
|
751
|
+
and cross-turn continuation. Guided start, recurring heartbeat, isolated Codex
|
|
752
|
+
CLI turns, evidence-backed Issue-Fix admission, optional Explore and auto
|
|
753
|
+
research paths, public validation canaries, and a read-first multi-project
|
|
754
|
+
dashboard build on that shared control state.
|
|
755
|
+
|
|
756
|
+
Support levels remain explicit. The state and CLI contracts are the stable
|
|
757
|
+
center; several host integrations and advanced paths are optional, default-off,
|
|
758
|
+
or experimental. LoopX does not grant credentials, approve destructive or
|
|
759
|
+
production actions, publish on a user's behalf without authorization, or turn
|
|
760
|
+
an unverified run into evidence of success.
|
|
761
|
+
|
|
762
|
+
Current investment is organized through the
|
|
763
|
+
[Technical Directions map](docs/project/technical-directions.md): long-horizon
|
|
764
|
+
benchmark evidence, operator surface and IM integration, shared-goal cross-host
|
|
765
|
+
coordination, and an explicitly staged architecture and research incubator.
|
|
766
|
+
|
|
767
|
+
## Star History
|
|
768
|
+
|
|
769
|
+
<p align="center">
|
|
770
|
+
<a href="https://github.com/huangruiteng/loopx/stargazers"><img src="https://huangruiteng.github.io/loopx/site-assets/star-history.svg" alt="LoopX GitHub star history from verified snapshots" width="800"></a><br>
|
|
771
|
+
<sub>Generated every six hours from GitHub's official stargazer timestamps using a repository-authorized workflow. A snapshot is published only when the fetched rows match GitHub's current star count; GitHub's image cache may delay refreshes.</sub>
|
|
772
|
+
</p>
|
|
773
|
+
|
|
774
|
+
## License
|
|
775
|
+
|
|
776
|
+
Apache License 2.0 beginning with `v0.4.8`. See [LICENSE](LICENSE) and
|
|
777
|
+
[NOTICE](NOTICE). Releases through `v0.4.7` remain under their original MIT
|
|
778
|
+
terms; the historical text and notice are preserved in
|
|
779
|
+
[LICENSE-MIT](LICENSE-MIT). The [licensing policy](docs/project/licensing.md)
|
|
780
|
+
explains the version, contribution, patent-grant, and open-core boundaries.
|
|
781
|
+
|
|
782
|
+
[osai-verify: eb42dd9cf910399988f0]: #
|