loopx 0.4.9__tar.gz → 0.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {loopx-0.4.9/loopx.egg-info → loopx-0.5.1}/PKG-INFO +52 -4
- {loopx-0.4.9 → loopx-0.5.1}/README.md +50 -2
- {loopx-0.4.9 → loopx-0.5.1}/loopx/__init__.py +1 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/agent_onboarding.py +3 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/bootstrap.py +21 -2
- {loopx-0.4.9 → loopx-0.5.1}/loopx/bootstrap_command_pack.py +1 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/README.md +90 -8
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/__init__.py +40 -4
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/catalog_entry.py +100 -4
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/environment_access.py +62 -0
- loopx-0.5.1/loopx/capabilities/benchmark_toolkit/experiment_board.py +826 -0
- loopx-0.5.1/loopx/capabilities/benchmark_toolkit/source_revision_fence.py +154 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/catalog.py +18 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/repository_context.py +5 -2
- loopx-0.5.1/loopx/capabilities/repository_change_window/README.md +199 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/repository_change_window/__init__.py +6 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/repository_change_window/catalog_entry.py +10 -5
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/repository_change_window/cli.py +68 -2
- loopx-0.5.1/loopx/capabilities/repository_change_window/git_hook.py +976 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/repository_change_window/ledger.py +240 -27
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/repository_change_window/repository.py +82 -6
- loopx-0.5.1/loopx/chat.py +402 -0
- loopx-0.5.1/loopx/chat_acp.py +451 -0
- loopx-0.5.1/loopx/chat_action_store.py +535 -0
- loopx-0.5.1/loopx/chat_actions.py +1541 -0
- loopx-0.5.1/loopx/chat_agent.py +586 -0
- loopx-0.5.1/loopx/chat_attachments.py +74 -0
- loopx-0.5.1/loopx/chat_endpoints.py +265 -0
- loopx-0.5.1/loopx/chat_goal_lifecycle_actions.py +98 -0
- loopx-0.5.1/loopx/chat_lark_api.py +444 -0
- loopx-0.5.1/loopx/chat_monitor_actions.py +220 -0
- loopx-0.5.1/loopx/chat_providers.py +420 -0
- loopx-0.5.1/loopx/chat_runtime.py +992 -0
- loopx-0.5.1/loopx/chat_server.py +1477 -0
- loopx-0.5.1/loopx/chat_store.py +719 -0
- loopx-0.5.1/loopx/chat_todo_actions.py +82 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli.py +15 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/__init__.py +3 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/benchmark_boundary.py +65 -2
- loopx-0.5.1/loopx/cli_commands/benchmark_dispatch.py +109 -0
- loopx-0.5.1/loopx/cli_commands/benchmark_experiment_board.py +150 -0
- loopx-0.5.1/loopx/cli_commands/capability.py +288 -0
- loopx-0.5.1/loopx/cli_commands/dash.py +282 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/goal_channel.py +154 -0
- loopx-0.5.1/loopx/cli_commands/goal_lifecycle.py +72 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/lark_inbox.py +22 -5
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/quota.py +26 -63
- loopx-0.5.1/loopx/cli_commands/quota_host_poll.py +67 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/registry_admin.py +11 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/registry_admin_configure.py +7 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/support_control.py +230 -76
- loopx-0.5.1/loopx/cli_commands/support_control_backup.py +107 -0
- loopx-0.5.1/loopx/cli_commands/support_control_chat_endpoint.py +94 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/todo.py +28 -13
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/todo_argument_validation.py +12 -10
- {loopx-0.4.9 → loopx-0.5.1}/loopx/configure_goal.py +55 -4
- {loopx-0.4.9 → loopx-0.5.1}/loopx/contract.py +39 -24
- loopx-0.5.1/loopx/control_plane/goals/activation.py +66 -0
- loopx-0.5.1/loopx/control_plane/goals/activation_service.py +372 -0
- loopx-0.5.1/loopx/control_plane/goals/botmux_runtime.py +1475 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_frontier/__init__.py +30 -11
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/goal_boundary.py +11 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/heartbeat_receipt.py +11 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/live_decision.py +2 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/settlement.py +2 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/settlement_cli.py +5 -2
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/should_run.py +31 -10
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/should_run_packet.py +23 -4
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/should_run_prepare.py +30 -1
- loopx-0.5.1/loopx/control_plane/quota/states.py +53 -0
- loopx-0.5.1/loopx/control_plane/quota/usage_collector.py +83 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/usage_summary.py +83 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/public_safety.py +97 -5
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/run_history.py +2 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/time.py +1 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/automation_liveness.py +14 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/scheduler_hint.py +27 -8
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/state_transition_rules.py +4 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/collection.py +30 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/cli_output_budget.py +37 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/cli_output_differential.py +17 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/list_projection.py +75 -10
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/monitor_metadata.py +15 -12
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/succession_warning.py +1 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/attention_queue.py +5 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/autonomous_replan_ack.py +19 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/autonomous_replan_obligation.py +79 -7
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/interaction_contract.py +8 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/primary_action.py +10 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/progress_observation.py +6 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/semantic_replan_writeback.py +65 -10
- loopx-0.5.1/loopx/dash_server.py +215 -0
- loopx-0.5.1/loopx/dashboard_launcher.py +136 -0
- loopx-0.5.1/loopx/dsh_goal_mode/README.md +65 -0
- loopx-0.5.1/loopx/dsh_goal_mode/__init__.py +55 -0
- loopx-0.5.1/loopx/dsh_goal_mode/__main__.py +8 -0
- loopx-0.5.1/loopx/dsh_goal_mode/turn_host_adapter.py +465 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/event_sourced_state.py +1 -0
- loopx-0.5.1/loopx/extensions/capability_admission.py +613 -0
- loopx-0.5.1/loopx/extensions/lark/app_setup.py +185 -0
- loopx-0.5.1/loopx/extensions/lark/cli_resolution.py +286 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/docs/lark-event-inbox.md +6 -5
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/event_collector.py +2 -1
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/event_collector_runtime.py +89 -3
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/event_inbox.py +26 -0
- loopx-0.5.1/loopx/extensions/lark/goal_channel_notification.py +176 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/goal_channel_transport.py +58 -4
- loopx-0.5.1/loopx/extensions/lark/goal_topic_connections.py +1086 -0
- loopx-0.5.1/loopx/extensions/lark/goal_topic_runtime.py +838 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/inbox_reply.py +36 -6
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/manifest.py +172 -3
- {loopx-0.4.9 → loopx-0.5.1}/loopx/help_surface.py +14 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/history.py +32 -3
- {loopx-0.4.9 → loopx-0.5.1}/loopx/host_loop_activation.py +8 -4
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/README.md +2 -2
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/cli.py +3 -3
- {loopx-0.4.9 → loopx-0.5.1}/loopx/pi_goal_mode/README.md +13 -5
- {loopx-0.4.9 → loopx-0.5.1}/loopx/pi_goal_mode/loopx-goal.ts +17 -2
- {loopx-0.4.9 → loopx-0.5.1}/loopx/pi_goal_mode/pi-goal-loop-runtime.mjs +36 -1
- loopx-0.5.1/loopx/presentation/projections/__init__.py +11 -0
- loopx-0.5.1/loopx/presentation/projections/session_dash.py +360 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/public_safety.py +31 -0
- loopx-0.5.1/loopx/presentation/renderers/session_dash_html.py +405 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/static_site.py +5 -14
- {loopx-0.4.9 → loopx-0.5.1}/loopx/quota.py +32 -5
- {loopx-0.4.9 → loopx-0.5.1}/loopx/state_refresh.py +62 -24
- {loopx-0.4.9 → loopx-0.5.1}/loopx/status.py +6 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/status_server.py +1 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/todos.py +47 -11
- loopx-0.5.1/loopx/web/chat/assets/index-Cx2exrQv.css +1 -0
- loopx-0.5.1/loopx/web/chat/assets/index-DlTni1Yi.js +107 -0
- loopx-0.5.1/loopx/web/chat/index.html +27 -0
- loopx-0.5.1/loopx/web/chat/manifest.webmanifest +22 -0
- loopx-0.5.1/loopx/web/chat/pwa/icon-192.png +0 -0
- loopx-0.5.1/loopx/web/chat/pwa/icon-512.png +0 -0
- {loopx-0.4.9 → loopx-0.5.1/loopx.egg-info}/PKG-INFO +52 -4
- {loopx-0.4.9 → loopx-0.5.1}/loopx.egg-info/SOURCES.txt +55 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx.egg-info/requires.txt +1 -1
- {loopx-0.4.9 → loopx-0.5.1}/pyproject.toml +4 -2
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-self-repair/references/repair-patterns.md +6 -1
- loopx-0.5.1/tests/test_chat_image_attachments.py +72 -0
- loopx-0.5.1/tests/test_chat_lark_api_contract.py +500 -0
- loopx-0.5.1/tests/test_chat_server_cors.py +103 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_cli_argument_diagnostics.py +4 -2
- loopx-0.5.1/tests/test_dashboard_command.py +481 -0
- loopx-0.5.1/tests/test_dsh_goal_mode.py +239 -0
- loopx-0.5.1/tests/test_history_chronology.py +148 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_host_loop_activation.py +2 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_license_metadata.py +2 -2
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_pi_goal_mode.py +12 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_slash_command_install.py +2 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_state_file_containment.py +17 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_status_server_cors.py +48 -0
- loopx-0.5.1/tests/test_status_server_fast_path.py +69 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_worker_command_validation.py +17 -0
- loopx-0.4.9/loopx/capabilities/repository_change_window/README.md +0 -133
- loopx-0.4.9/loopx/capabilities/repository_change_window/git_hook.py +0 -458
- loopx-0.4.9/loopx/cli_commands/benchmark_dispatch.py +0 -43
- loopx-0.4.9/loopx/cli_commands/capability.py +0 -96
- loopx-0.4.9/loopx/control_plane/quota/states.py +0 -29
- {loopx-0.4.9 → loopx-0.5.1}/LICENSE +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/LICENSE-MIT +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/NOTICE +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/agent_registry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/ark_managed_agent_host.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/authority.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/boundary_authority.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/maintainability_ratchet.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/planner.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/premerge.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/qualification_profiles.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/quality_surface_catalog.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/release_profiles.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/runner.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/smoke_health.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/canary/smoke_profiles.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/agent_turn_recall/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/agent_turn_recall/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/agent_turn_recall/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/agent_turn_recall/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/agent_turn_recall/core.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/bootstrap_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/core.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/defaults.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/demo_e2e.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/demo_supervisor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/evidence_packet.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/human_view.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/kernel.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/knn_demo_workspace.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/live_evidence.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/preset.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/research_state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/role_profiles.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/rollout_append.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/terminal_result_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/terminal_result_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/terminal_result_query.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/terminal_results.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/user_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/worker_loop.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/worker_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/auto_research/worker_skill/SKILL.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/artifacts.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/container_binding.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/integrity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/native_codex_goal.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/native_codex_isolation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/native_codex_profile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/public_trajectory.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/benchmark_toolkit/run_permissions.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/context.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/oracles.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/receipt.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/result.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/scope.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/change_quality/shadow.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/connector_packets.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/item_lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/layout.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/schemas.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/social_browser_x.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/surface.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/content_ops/templates/layout-catalog-v0.json +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/context_providers/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/context_providers/base.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/context_providers/factory.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/context_providers/openviking.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/context_providers/service_ownership.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/README.zh-CN.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/architecture.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/assembler.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/cursor_commit.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/outcome_feedback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/packets.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/private_state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/profile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/providers.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/review_settlement.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/decision_context/sources.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/documentation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/README.zh-CN.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/activation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/adaptive_replay_planner.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/child_replay_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/composition_frontier.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/counterfactual_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/episode_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/harness_checkpoint.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/harness_gate.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/harness_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/replay_metrics.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/replay_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/resource_portfolio.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/result_log.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/router_state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/source_history_reconcile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/speculative_scheduler.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/todo_branch_plan.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/todo_evidence.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/trace_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/explore/worker_branch_plan.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/integration_branch/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/integration_branch/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/integration_branch/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/integration_branch/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/integration_branch/core.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/README.zh-CN.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/acceptance_loop.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/candidate_evidence.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/candidate_preflight.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/cli_input.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/content_ops_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/discovered_issue_promotion.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/openviking-pilot-handoff.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-acceptance-loop-v0.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-discovered-issue-promotion-v0.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-metrics-projection-v0.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-notification-sinks-v0.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-recommendation-v0.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-reviewer-request-v0.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/protocols/issue-fix-workflow-contract-v0.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/docs/state-kernel-domain-state-case-study.zh-CN.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/explore_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/feasibility.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/github_public.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/intake_surface.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/metadata_preview.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/metrics_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/metrics_supplement.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/metrics_supplement_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/outcome_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/periodic_report.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/pr_description.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/pr_gate_reconcile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/pr_gate_reconcile_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/pr_lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/pr_lifecycle_rollout.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/pr_monitor_materialization.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/pr_review_ack.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/provider_hooks.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/repository_commit_evidence.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/repository_memory.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/repository_memory_provider.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/repository_snapshot.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/reviewer_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/reviewer_notification.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/reviewer_notification_drain.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/reviewer_recommendation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/reviewer_request.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/reward_memory.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/issue_fix/workflow_plan.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/README.zh-CN.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/_validation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/apply.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/architecture.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/decision_planning.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/explore_execution.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/intake.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/inventory.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/preparation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/project_skill.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/ranking.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/readable_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/rebuild.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/material_lifecycle/settlement.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/adapters.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/archive.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/bindings.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/core.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/extension_envelope.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/presets.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/profile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/project_progress.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/periodic_report/triggers.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/pr_review_queue/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/pr_review_queue/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/pr_review_queue/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/pr_review_queue/core.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/pr_review_queue/review_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/project_skill_delivery/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/project_skill_delivery/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/project_skill_delivery/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/project_skill_delivery/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/project_skill_delivery/core.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/registry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/repository_change_window/policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/README.zh-CN.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/application.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/architecture.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/candidate_review.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/dogfood.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/evaluation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/evaluation_fixtures.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/experiment.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/health.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/ingestion.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/memory_utility.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/registry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/runtime_hooks.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/reward_memory/scoped_feedback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/semantic_preference/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/semantic_preference/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/semantic_preference/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/semantic_preference/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/semantic_preference/contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/semantic_preference/docs/openviking-project-peer.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/semantic_preference/reward_memory.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/catalog_entry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/docs/agent-reach-ops-source-map.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/docs/finance-market-snapshot-probe.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/finance_extension_migration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/install_check.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/planner.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/capabilities/value_connectors/source_map.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/hooks/goal_policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/hooks/goal_state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/mcp/loopx_mcp.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/scripts/connect.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/scripts/goalmode_cmd.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/scripts/install.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/claude_goal_mode/statusline/goal_status.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/_host_thread.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/bootstrap_connect.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/canary.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/canary_release_qualification.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/doctor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/dreaming.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/evidence_log.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/explore.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/explore_feishu_commands.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/explore_planning_commands.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/extension.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/first_run_report.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/handoff_mode.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/history.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/host_mode_plan.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/lark_kanban.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/ml_experiment.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/multi_agent.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/opencode2_goal_worker.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/pr_review.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/presentation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/preset.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/project.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/project_lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/quota_monitor_poll.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/quota_registration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/quota_request.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/ready_score.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/registry_admin_peer.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/registry_authority.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/review_batch.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/slash_commands.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/start_goal.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_bootstrap.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_bootstrap_registration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_runtime_idle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_scheduler.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_session_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_visible_common.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_visible_driver.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/starter_visible_pilot.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/status.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/status_registration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/summary_all.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/support_control_registry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/support_control_supervisor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/task_lease.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/todo_event.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/turn.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/version.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/worker_bridge.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_commands/workflow_skills.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/cli_rollout.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/codex_cli_probe.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/codex_cli_probe_markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/codex_cli_runtime_probe.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/codex_cli_scheduler.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/command_invocation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/configuration_catalog.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/agent_lane_recommendation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/agent_scope.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/agent_scope_frontier.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/capability_gate.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/identity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/legacy_migration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/management_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/material_frontier.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/material_handoff.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/codex_executable.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/collective_round_ledger.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/recipe.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/role_successor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/runtime_scripts.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/visible_launch_policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/multi_agent/visible_wake_scheduler.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/profile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/runtime_model.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/subagent_activity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/supervisor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/supervisor_events.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/supervisor_inject.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/work_mode.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/agents/workspace_guard.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/effect_program.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/active_state_event_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/active_state_metadata.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/active_state_sections.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/configure_goal_service.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/contract_health.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/dreaming.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/global_registry_health.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/global_registry_shadow.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_channel.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_channel_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_frontier/ack_policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_frontier/outcome_continuity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_frontier/replan_rules.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_frontier/semantic_history.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_frontier/terminal.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_vision.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_vision_policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_vision_state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/goal_vision_wait.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/path_resolution.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/start_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/goals/vision_checkpoint.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/handoff/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/handoff/cross_runtime_impl_review.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/handoff/delivery_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/handoff/handoff_runs.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/handoff/project_handoff.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/handoff/review_batch.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/handoff/review_packet_context.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/heartbeat/agent.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/heartbeat/budget.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/heartbeat/builder.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/heartbeat/host.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/heartbeat/rules.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/heartbeat/task_body.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/heartbeat/visible_goal.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/projects/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/projects/contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/projects/registry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/cli_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/decision_summary.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/effect_program.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/error_codes.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/heartbeat_recommendation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/host_poll_receipts.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/monitor_poll.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/policy_constants.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/projection_repair.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/recent_runs.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/scheduler_ack.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/selected_todo_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/settlement_validation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/settlement_workspace_causality.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/slot_accounting.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/spend_sources.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/stall_repair.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/task_orchestration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/task_orchestration_admission.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/quota/turn_envelope.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/reward_memory.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/agent_scoped_evidence_log.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/decision_freshness.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/event_ledger.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/event_store_migration_bridge.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/goal_project_route.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/local_state_write_correctness.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/promotion_readiness.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/run_artifacts.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/run_compaction.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/run_context_retention.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/run_index_duplicates.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/run_index_rebuild.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/runtime_projection_route.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/runtime_projection_writer.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/session_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/shared_runtime_material_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/shared_runtime_refresh_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/stale_latest_run.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/status_classifications.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/status_projection_cache.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/stride_observation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/trajectory_hygiene.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/runtime/validation_command.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/ack.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/arbitration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/execution_context.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/external_evidence_observation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/monitor_display.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/monitor_poll_policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/monitor_poll_writeback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/monitor_target.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/monitor_todo.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/monitor_wait.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/scheduler/time.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/settlement_driver.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/active_state_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/agent_lane_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/attention_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/autonomous_replan_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/contract_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/dreaming_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/goal_attention_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/lifecycle_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/monitor_display_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/registry_health_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/run_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/status/runtime_summaries.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/actual_default_model_behavior_portfolio.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/canary_harness.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/capability_monitor_repair_tool_behavior.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/cli_output_semantics.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/control_plane_composition_scenarios.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/decision_replay.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/doubao_model_behavior_actor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/model_behavior_corpus.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/model_behavior_qualification.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/model_behavior_retained_cases.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/model_tool_behavior.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/onboarding_model_behavior_qualification.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/quota_fixtures.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/quota_should_run_parity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/release_commit_qualification.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/replan_semantic_action_behavior.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/scoped_gate_successor_tool_behavior.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/selected_todo_tool_behavior.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/testing/terminal_settlement_tool_behavior.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/active_state_editing.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/active_state_todo_parser.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/active_state_todos.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/addition.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/claim_visibility.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/completed_archive.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/completion_fence.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/completion_policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/completion_state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/completion_validation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/completion_validation_accountability.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/completion_validation_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/decision_scope.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/deferred_resume.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/durable_completion.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/event_writeback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/frontier_deadline.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/handoff_gate.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/handoff_mode.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/handoff_note.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/line_update.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/mutation_authority.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/quota_summary.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/route_continuation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/summary_item.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/text.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/todo_index.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/todo_summary.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/unblock_resume.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/user_gate.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/write_hint.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/todos/write_policy.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/codex_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/driver.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/executor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/loop_controller.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/session_recovery.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/settlement.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/turn_driver/transaction.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/attention_fields.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/attention_item.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/attention_routing.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/autonomous_candidates.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/backlog_hygiene.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/capability_monitor_fallback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/delivery_batch_scale.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/delivery_outcome.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/delivery_signals.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/execution_obligation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/goal_route_hint.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/issue_meta_surface.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/operator_inbox.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/outcome_followthrough.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/project_asset.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/repair_delta.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/runtime_capability_reentry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/status_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/task_graph.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/task_lease.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/task_lease_settlement.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/work_lane.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/control_plane/work_items/work_lane_context.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/demo.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/diagnose.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/doctor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/domain_packs/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/domain_packs/issue_fix.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/domain_packs/ml_experiment.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/domain_state.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/dreaming.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/entrypoint.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/execution_profile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/experiments/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/experiments/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/experiments/planner_worker/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/experiments/planner_worker/contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/experiments/planner_worker/runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/experiments/planner_worker/traex.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/explore_graph.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/bundled.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/execution_envelope.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/extension.toml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/goal_channel.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/goal_channel_contracts.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/goal_channel_lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/goal_channel_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/goal_channel_setup.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/goal_channel_targets.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/inbox_reactions.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/explore_results.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/explore_singleflight.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/explore_source_guard.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/explore_stage_document.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/explore_visual_integrity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/explore_visual_readback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/explore_visual_styles.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/issue_fix_surface.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/kanban.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/message_card.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/periodic_report.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/projection_rows.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/record_io.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/presentation/sync_receipt.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/private_json.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/provider.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/lark/reviewer_notification.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_periodic_report/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_periodic_report/activation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_periodic_report/extension.toml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_periodic_report/provider.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_periodic_report/sink.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_semantic_preference/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_semantic_preference/extension.toml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_semantic_preference/history_export.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_semantic_preference/project_peer.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/openviking_semantic_preference/provider.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/presentation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/process_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/readiness.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/extensions/scaffold.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/feedback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/file_lock.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/global_registry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/global_risks.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/global_todos.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/goal_mode_context.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/goal_mode_mcp.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/handoff_budget.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/heartbeat_prequota.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/heartbeat_prompt.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/host_mode_planner.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/install_contract.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/interface_budget.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/app_server.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/context.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/control_plane.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/guards.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/kunluncode_goal_mode/server.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/long_task_cadence.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/materials.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/ml_experiment.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/onboarding.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/opencode2_goal_mode/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/opencode2_goal_mode/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/opencode2_goal_mode/opencode2-goal-worker.mjs +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/opencode_goal_mode/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/opencode_goal_mode/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/opencode_goal_mode/goal-bridge-runtime.mjs +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/opencode_goal_mode/loopx-goal.js +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/operator_gate.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/orchestration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/paths.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/pi_goal_mode/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/pr_review.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/README.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/explore_views.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/projection_source_reconcile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/goal_channel_html.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/periodic_report_html.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/periodic_report_markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/quota_event_markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/quota_markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/status_markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/trajectory_hygiene_markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/renderers/turn_envelope_markdown.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/sinks/__init__.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presentation/sinks/openviking_periodic_report.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/presets.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/project_alias.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/project_map.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/project_prompt.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/project_uninstall.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/promotion_gate.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/ready_score.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/registry.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/registry_writability.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/release_candidate.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/release_manifest.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/repository_identity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/review_packet.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/rollout_event_log.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/self_update.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/session_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/skill_install_readback.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/slash_command_install.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/slash_commands.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/state_backup.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/state_migration.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/state_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/summary_all.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/thread_agent_binding.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/todo_followups.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/todo_suggestion_prompt.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/turn_identity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/upgrade.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/visible_governance.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/visible_multi_agent_launcher.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/visible_multi_agent_tmux.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/windows_install.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/worker_bridge.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx/workflow_skill_install.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx.egg-info/dependency_links.txt +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx.egg-info/entry_points.txt +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/loopx.egg-info/top_level.txt +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/setup.cfg +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-doc-registry/SKILL.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-doc-registry/agents/openai.yaml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-pr-program/SKILL.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-pr-program/agents/openai.yaml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-pr-program/references/snapshot-contract.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-pr-program/scripts/diff_snapshot.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-pr-review/SKILL.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-pr-review/agents/openai.yaml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-project/SKILL.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-project/agents/openai.yaml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-self-repair/SKILL.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-self-repair/agents/openai.yaml +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/skills/loopx-self-repair/references/upstream-issue-escalation.md +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_agent_onboarding_pi_host.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_agent_onboarding_unconnected_project.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_ark_managed_agent_host.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_ark_managed_agent_issue_fix_matrix.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_auto_research_control.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_cli_entrypoint.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_codex_app_apply_rrule.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_command_invocation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_content_ops_item_lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_content_ops_lifecycle.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_content_ops_queue_status.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_contract_credential_pattern_precision.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_contract_scan_unreadable_files.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_decision_context_material.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_dependency_security_boundaries.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_doctor_install_freshness.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_counterfactual_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_episode_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_monitor_lane_budget.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_owner_board_views.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_presentation_views.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_replay_compatibility.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_replay_runtime.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_resource_portfolio.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_router_acceptance.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_source_history_reconcile.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_explore_worker_topic_affinity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_external_scheduler_worker.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_feedback_goal_id_validation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_file_lock.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_file_lock_cross_process.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_gemini_cursor_host_surfaces.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_global_registry_write_serialization.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_global_risks.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_global_todos.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_host_mode_planner.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_host_parity_smoke.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_host_poll_receipts.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_kunluncode_goal_mode.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_loop_turn_loop_controller.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_loopx_turn_codex_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_loopx_turn_driver.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_loopx_turn_executor.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_loopx_turn_journal_inspection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_loopx_turn_settlement_parity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_loopx_turn_transaction.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_ml_experiment_volc_packet.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_nokv_shadow_provider_probes.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_opencode2_goal_worker.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_opencode2_goal_worker_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_opencode_goal_bridge.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_operator_markdown_renderers.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_packaged_skill_metadata.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_pr_program_snapshot.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_pr_program_snapshot_diff.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_pr_review_github_scan.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_project_skill_cli.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_register_agent_fresh_identity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_release_smoke_archive_helpers.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_reward_memory_pipeline.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_self_update_runtime_activation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_skill_delivery_parity.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_smoke_suite.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_state_refresh_projections.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_static_site_presentation.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_status_server_extension_projection.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_summary_all.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_thread_agent_binding.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_trajectory_hygiene.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_turn_envelope.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_turn_loop_disposition.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_visible_goal_terminal_settlement.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_windows_install.py +0 -0
- {loopx-0.4.9 → loopx-0.5.1}/tests/test_workflow_skill_install.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: loopx
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.1
|
|
4
4
|
Summary: A lightweight Loop Engineering control plane for long-running agent goals.
|
|
5
5
|
Author: LoopX contributors
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -18,7 +18,7 @@ Provides-Extra: deepseek-harness
|
|
|
18
18
|
Requires-Dist: deepseek-harness-sdk>=0.1.0rc5; extra == "deepseek-harness"
|
|
19
19
|
Provides-Extra: test
|
|
20
20
|
Requires-Dist: jsonschema<5,>=4.23; extra == "test"
|
|
21
|
-
Requires-Dist: mcp==1.
|
|
21
|
+
Requires-Dist: mcp==1.28.1; extra == "test"
|
|
22
22
|
Requires-Dist: types-jsonschema<5,>=4.23; extra == "test"
|
|
23
23
|
Requires-Dist: pytest<9,>=8; extra == "test"
|
|
24
24
|
Requires-Dist: pytest-cov<7,>=5; extra == "test"
|
|
@@ -66,6 +66,51 @@ to hand off across turns, tools, and agents.
|
|
|
66
66
|
- **Getting started** - install, connect a project, and run your first governed loop. [Guide](docs/guides/getting-started.md)
|
|
67
67
|
- **Docs** - the full reference and operations site. [LoopX Docs](https://huangruiteng.github.io/loopx/docs/)
|
|
68
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
|
+
|
|
69
114
|
<a id="how-it-works"></a>
|
|
70
115
|
|
|
71
116
|
## Why LoopX
|
|
@@ -274,14 +319,16 @@ LoopX should reuse existing state rather than overwrite it. Keep `.loopx/`,
|
|
|
274
319
|
| KunlunCode | Run `loopx-kunluncode connect --project . --goal-id <goal-id> --agent-id <registered-agent-id>`, add a bounded todo, then run `loopx-kunluncode run --project .`. | Native Goal Pro through app-server; LoopX writes completion and quota only after strict verification |
|
|
275
320
|
| OpenCode | Install the static command facade; opt in to `--with-goal-bridge` for recurring goals. | OpenCode command facade and explicit goal bridge |
|
|
276
321
|
| 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) |
|
|
322
|
+
| 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` |
|
|
277
323
|
| Cursor, shell, or custom runner | Use the installer and `loopx doctor`; connect manually or call LoopX from your runner. | Your shell, scheduler, or runner |
|
|
278
324
|
|
|
279
325
|
The exact, copy-ready setup messages and host recovery paths live in
|
|
280
326
|
[Getting Started](docs/guides/getting-started.md). Host integrations can inspect
|
|
281
327
|
the [Codex App host command registry contract](docs/reference/protocols/codex-app-host-command-registry-v0.md),
|
|
282
328
|
the [Codex CLI packaged install path](docs/product/runtimes/codex-cli/codex-cli-packaged-install.md),
|
|
283
|
-
the [Claude Code adapter](loopx/claude_goal_mode/README.md),
|
|
284
|
-
[KunlunCode native Goal adapter](loopx/kunluncode_goal_mode/README.md)
|
|
329
|
+
the [Claude Code adapter](loopx/claude_goal_mode/README.md), the
|
|
330
|
+
[KunlunCode native Goal adapter](loopx/kunluncode_goal_mode/README.md), or the
|
|
331
|
+
[DeepSeek Harness turn adapter](loopx/dsh_goal_mode/README.md).
|
|
285
332
|
|
|
286
333
|
For custom runners, start with the
|
|
287
334
|
[minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md)
|
|
@@ -370,6 +417,7 @@ evidence → recovery; continuation → governance.
|
|
|
370
417
|
| Quota and interaction contract | Decides whether a turn should deliver, ask, wait, self-repair, or stay quiet. | `loopx quota should-run`, [quota allocation](docs/quota-allocation.md) |
|
|
371
418
|
| Agent runtime bridges | Keeps Codex App, Codex CLI, Claude Code, and generic workers aligned with the same guard. | `loopx heartbeat-prompt`, `loopx codex-cli-bootstrap-message`, `loopx worker-bridge` |
|
|
372
419
|
| Operator surfaces | Renders compact status without making the browser the state authority. | `loopx serve-status`, [dashboard](apps/presentation/dashboard/README.md) |
|
|
420
|
+
| 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) |
|
|
373
421
|
| External projections | Projects todos and gates into collaboration surfaces while LoopX remains authoritative. | `loopx lark-kanban`, [Lark Kanban adapter](docs/integrations/lark-kanban-control-plane-adapter.md) |
|
|
374
422
|
| Domain capabilities | Packages repeatable work lanes such as issue fixing, content operations, value connector planning, ML experiment advice, benchmark evidence, and Explore. | `loopx issue-fix`, `loopx content-ops`, `loopx value-connectors`, `loopx ml-experiment`, `loopx benchmark`, [Explore](loopx/capabilities/explore/README.md) |
|
|
375
423
|
| 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) |
|
|
@@ -37,6 +37,51 @@ to hand off across turns, tools, and agents.
|
|
|
37
37
|
- **Getting started** - install, connect a project, and run your first governed loop. [Guide](docs/guides/getting-started.md)
|
|
38
38
|
- **Docs** - the full reference and operations site. [LoopX Docs](https://huangruiteng.github.io/loopx/docs/)
|
|
39
39
|
|
|
40
|
+
## Meet the Personal Agent Workspace
|
|
41
|
+
|
|
42
|
+
Keep long-horizon goals in one local-first workspace. Goals, attention,
|
|
43
|
+
conversations, tasks, files, schedules, and recovery stay durable across days,
|
|
44
|
+
restarts, and harnesses, so work that began last week resumes exactly where
|
|
45
|
+
the last bounded turn stopped instead of living in chat memory.
|
|
46
|
+
|
|
47
|
+
<a href="docs/assets/personal-workspace/loopx-dashboard-launch.mp4">
|
|
48
|
+
<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">
|
|
49
|
+
</a>
|
|
50
|
+
|
|
51
|
+
The workspace gives you one place to:
|
|
52
|
+
|
|
53
|
+
- see what needs you, what is running, what is being watched, and what is
|
|
54
|
+
scheduled or stopped;
|
|
55
|
+
- continue across Codex, Claude Code, direct-model, and other registered Agent
|
|
56
|
+
sessions without losing Goal state or evidence;
|
|
57
|
+
- review protected changes through typed preview, explicit confirmation, and
|
|
58
|
+
receipts while LoopX state—not the browser—remains authoritative.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
loopx dashboard
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`loopx dashboard` is the supported browser/PWA launch path. For a native
|
|
65
|
+
window, the experimental source-built Tauri shell reuses the same loopback
|
|
66
|
+
status and Chat services without becoming another state authority:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
cd apps/desktop/loopx-control-plane
|
|
70
|
+
npm install
|
|
71
|
+
npm run dev
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
[Read the desktop shell guide](apps/desktop/loopx-control-plane/README.md).
|
|
75
|
+
Closing the window stops only the service processes that the shell started;
|
|
76
|
+
existing LoopX services and durable Goal state remain intact. Both entry
|
|
77
|
+
points share the same loopback services and can be started in either order:
|
|
78
|
+
`loopx dashboard` reuses an already-running LoopX Chat service instead of
|
|
79
|
+
starting a second one.
|
|
80
|
+
|
|
81
|
+
[Watch the full 32-second walkthrough](docs/assets/personal-workspace/loopx-dashboard-launch.mp4)
|
|
82
|
+
· [Read the workspace guide](docs/guides/personal-workspace-user-guide.md)
|
|
83
|
+
· [Try the five-minute tour](docs/guides/personal-workspace-trial-guide.md)
|
|
84
|
+
|
|
40
85
|
<a id="how-it-works"></a>
|
|
41
86
|
|
|
42
87
|
## Why LoopX
|
|
@@ -245,14 +290,16 @@ LoopX should reuse existing state rather than overwrite it. Keep `.loopx/`,
|
|
|
245
290
|
| 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 |
|
|
246
291
|
| OpenCode | Install the static command facade; opt in to `--with-goal-bridge` for recurring goals. | OpenCode command facade and explicit goal bridge |
|
|
247
292
|
| 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) |
|
|
293
|
+
| 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` |
|
|
248
294
|
| Cursor, shell, or custom runner | Use the installer and `loopx doctor`; connect manually or call LoopX from your runner. | Your shell, scheduler, or runner |
|
|
249
295
|
|
|
250
296
|
The exact, copy-ready setup messages and host recovery paths live in
|
|
251
297
|
[Getting Started](docs/guides/getting-started.md). Host integrations can inspect
|
|
252
298
|
the [Codex App host command registry contract](docs/reference/protocols/codex-app-host-command-registry-v0.md),
|
|
253
299
|
the [Codex CLI packaged install path](docs/product/runtimes/codex-cli/codex-cli-packaged-install.md),
|
|
254
|
-
the [Claude Code adapter](loopx/claude_goal_mode/README.md),
|
|
255
|
-
[KunlunCode native Goal adapter](loopx/kunluncode_goal_mode/README.md)
|
|
300
|
+
the [Claude Code adapter](loopx/claude_goal_mode/README.md), the
|
|
301
|
+
[KunlunCode native Goal adapter](loopx/kunluncode_goal_mode/README.md), or the
|
|
302
|
+
[DeepSeek Harness turn adapter](loopx/dsh_goal_mode/README.md).
|
|
256
303
|
|
|
257
304
|
For custom runners, start with the
|
|
258
305
|
[minimal custom runtime example](docs/guides/minimal-custom-runtime-example.md)
|
|
@@ -341,6 +388,7 @@ evidence → recovery; continuation → governance.
|
|
|
341
388
|
| 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) |
|
|
342
389
|
| 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` |
|
|
343
390
|
| Operator surfaces | Renders compact status without making the browser the state authority. | `loopx serve-status`, [dashboard](apps/presentation/dashboard/README.md) |
|
|
391
|
+
| 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) |
|
|
344
392
|
| 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) |
|
|
345
393
|
| 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) |
|
|
346
394
|
| 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) |
|
|
@@ -314,7 +314,9 @@ def _start_instruction(agent_type: str) -> str:
|
|
|
314
314
|
if agent_type == "deepseek-harness":
|
|
315
315
|
return (
|
|
316
316
|
"Install `loopx[deepseek-harness]`, prepare a dsh cordis.yml, and run "
|
|
317
|
-
"`loopx turn run-once` with `
|
|
317
|
+
"`loopx turn run-once` with the `loopx.dsh_goal_mode` adapter "
|
|
318
|
+
"(`python -m loopx.dsh_goal_mode`; the legacy "
|
|
319
|
+
"`scripts/dsh_turn_host_adapter.py` launcher still works) as the "
|
|
318
320
|
"generic-cli host adapter; every tick starts from `quota should-run`."
|
|
319
321
|
)
|
|
320
322
|
if agent_type == "ark-managed-agent":
|
|
@@ -307,9 +307,14 @@ def onboarding_next_action(
|
|
|
307
307
|
accept_onboarding_agent_todos: bool,
|
|
308
308
|
begin_autonomous_advance: bool,
|
|
309
309
|
codex_app_heartbeat: str,
|
|
310
|
+
include_connection_validation: bool = True,
|
|
310
311
|
) -> str:
|
|
311
312
|
if not onboarding_scan:
|
|
312
|
-
validation_action =
|
|
313
|
+
validation_action = (
|
|
314
|
+
onboarding_connection_validation_action(adapter_kind)
|
|
315
|
+
if include_connection_validation
|
|
316
|
+
else None
|
|
317
|
+
)
|
|
313
318
|
if validation_action:
|
|
314
319
|
return validation_action["text"]
|
|
315
320
|
return "Initial routing is owned by the connected domain adapter."
|
|
@@ -361,10 +366,15 @@ def apply_onboarding_todos_to_state(
|
|
|
361
366
|
accept_onboarding_agent_todos: bool,
|
|
362
367
|
begin_autonomous_advance: bool,
|
|
363
368
|
codex_app_heartbeat: str,
|
|
369
|
+
include_connection_validation: bool = True,
|
|
364
370
|
) -> str:
|
|
365
371
|
if not onboarding_scan:
|
|
366
372
|
lines = text.splitlines()
|
|
367
|
-
action =
|
|
373
|
+
action = (
|
|
374
|
+
onboarding_connection_validation_action(adapter_kind)
|
|
375
|
+
if include_connection_validation
|
|
376
|
+
else None
|
|
377
|
+
)
|
|
368
378
|
if action:
|
|
369
379
|
add_todo_to_lines(
|
|
370
380
|
lines,
|
|
@@ -437,6 +447,7 @@ def render_state_markdown(
|
|
|
437
447
|
accept_onboarding_agent_todos: bool = False,
|
|
438
448
|
begin_autonomous_advance: bool = False,
|
|
439
449
|
codex_app_heartbeat: str = "ask",
|
|
450
|
+
include_connection_validation: bool = True,
|
|
440
451
|
handoff_mode: str = HANDOFF_MODE_LEGACY,
|
|
441
452
|
) -> str:
|
|
442
453
|
safe_objective = objective.replace('"', '\\"')
|
|
@@ -454,6 +465,7 @@ def render_state_markdown(
|
|
|
454
465
|
accept_onboarding_agent_todos=accept_onboarding_agent_todos,
|
|
455
466
|
begin_autonomous_advance=begin_autonomous_advance,
|
|
456
467
|
codex_app_heartbeat=codex_app_heartbeat,
|
|
468
|
+
include_connection_validation=include_connection_validation,
|
|
457
469
|
)
|
|
458
470
|
# ``handoff_mode`` travels in the state front matter (RFC shared-goal
|
|
459
471
|
# authority, Appendix B). Legacy is the absent default and is never
|
|
@@ -524,6 +536,7 @@ adapter_id: {goal_id}
|
|
|
524
536
|
accept_onboarding_agent_todos=accept_onboarding_agent_todos,
|
|
525
537
|
begin_autonomous_advance=begin_autonomous_advance,
|
|
526
538
|
codex_app_heartbeat=codex_app_heartbeat,
|
|
539
|
+
include_connection_validation=include_connection_validation,
|
|
527
540
|
)
|
|
528
541
|
|
|
529
542
|
|
|
@@ -565,6 +578,7 @@ def build_goal_entry(
|
|
|
565
578
|
allowed_domains: list[str],
|
|
566
579
|
write_scope: list[str],
|
|
567
580
|
execution_profile: dict[str, Any] | None,
|
|
581
|
+
display_name: str | None = None,
|
|
568
582
|
) -> dict[str, Any]:
|
|
569
583
|
authority_sources = []
|
|
570
584
|
if goal_doc:
|
|
@@ -577,6 +591,7 @@ def build_goal_entry(
|
|
|
577
591
|
)
|
|
578
592
|
return {
|
|
579
593
|
"id": goal_id,
|
|
594
|
+
**({"display_name": display_name} if display_name else {}),
|
|
580
595
|
"domain": domain,
|
|
581
596
|
"status": "active",
|
|
582
597
|
"role": role,
|
|
@@ -676,6 +691,8 @@ def bootstrap_project(
|
|
|
676
691
|
onboarding_max_status_paths: int = 12,
|
|
677
692
|
onboarding_max_top_level_files: int = 24,
|
|
678
693
|
preserve_todos: bool = False,
|
|
694
|
+
display_name: str | None = None,
|
|
695
|
+
include_connection_validation: bool = True,
|
|
679
696
|
force: bool,
|
|
680
697
|
dry_run: bool,
|
|
681
698
|
sync_global: bool,
|
|
@@ -738,6 +755,7 @@ def bootstrap_project(
|
|
|
738
755
|
allowed_domains=allowed_domains or [],
|
|
739
756
|
write_scope=write_scope or [],
|
|
740
757
|
execution_profile=execution_profile,
|
|
758
|
+
display_name=display_name,
|
|
741
759
|
)
|
|
742
760
|
registry, registry_goal_action = merge_goal(registry, goal_entry, force=force)
|
|
743
761
|
|
|
@@ -914,6 +932,7 @@ def bootstrap_project(
|
|
|
914
932
|
accept_onboarding_agent_todos=accept_onboarding_agent_todos,
|
|
915
933
|
begin_autonomous_advance=begin_autonomous_advance,
|
|
916
934
|
codex_app_heartbeat=codex_app_heartbeat,
|
|
935
|
+
include_connection_validation=include_connection_validation,
|
|
917
936
|
handoff_mode=declared_handoff_mode,
|
|
918
937
|
),
|
|
919
938
|
encoding="utf-8",
|
|
@@ -323,7 +323,7 @@ def build_start_goal_host_surface_selection_packet(
|
|
|
323
323
|
"pi": "Pi LoopX goal extension",
|
|
324
324
|
"gemini-cli": "Gemini CLI driving its own loop through the LoopX skill facade",
|
|
325
325
|
"cursor-agent": "cursor-agent driving its own loop through the LoopX skill facade and MCP server",
|
|
326
|
-
"deepseek-harness": "DeepSeek Harness automation loop through scripts/dsh_turn_host_adapter.py",
|
|
326
|
+
"deepseek-harness": "DeepSeek Harness automation loop through loopx.dsh_goal_mode (compat: scripts/dsh_turn_host_adapter.py)",
|
|
327
327
|
"ark-managed-agent": "Ark Managed Agent with one-shot Goal submission",
|
|
328
328
|
"shell": "manual shell or an explicitly configured external scheduler",
|
|
329
329
|
"other-agent": "custom agent host using the returned activation contract",
|
|
@@ -5,6 +5,35 @@ artifact, integrity, and reusable agent-runtime boundaries around benchmark
|
|
|
5
5
|
experiments. It does not own benchmark-family runners, result ledgers, or scoring
|
|
6
6
|
adapters.
|
|
7
7
|
|
|
8
|
+
## Source revision admission
|
|
9
|
+
|
|
10
|
+
A long-running campaign can keep launching from an old installed checkout after
|
|
11
|
+
the tracked branch advances. Pinning the source once at controller startup does
|
|
12
|
+
not prevent that drift. Immediately before each new benchmark admission, obtain
|
|
13
|
+
the current reference head through the runner's provider or network boundary,
|
|
14
|
+
then compare it with the clean local checkout and intended pin:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
loopx benchmark source-revision-fence \
|
|
18
|
+
--source-checkout /path/to/pinned-source \
|
|
19
|
+
--expected-revision "$PINNED_REVISION" \
|
|
20
|
+
--observed-reference-revision "$OBSERVED_REFERENCE_REVISION" \
|
|
21
|
+
--require-admitted \
|
|
22
|
+
--format json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The command succeeds only when all three identities match and the source root has
|
|
26
|
+
no tracked or untracked changes. Its compact receipt records equality, cleanliness,
|
|
27
|
+
and a stable reason code without recording the checkout path or any revision value.
|
|
28
|
+
Invalid input is also reduced to a path-free fail-closed receipt.
|
|
29
|
+
|
|
30
|
+
The fence is an admission boundary, not a live-run mutation mechanism. A run that
|
|
31
|
+
already passed the fence keeps its immutable revision even if the reference moves
|
|
32
|
+
later; the new head blocks only subsequent admissions until the runner installs and
|
|
33
|
+
pins an updated source. The caller owns the freshness and authority of the observed
|
|
34
|
+
reference value. This capability performs no fetch, provider API call, checkout,
|
|
35
|
+
install, process launch, score write, or submission.
|
|
36
|
+
|
|
8
37
|
## Native Codex Goal runtime
|
|
9
38
|
|
|
10
39
|
Benchmark adapters that use the Codex app-server Goal API should import
|
|
@@ -309,14 +338,18 @@ receipt.
|
|
|
309
338
|
|
|
310
339
|
A countable experiment uses the toolkit in this order:
|
|
311
340
|
|
|
312
|
-
1.
|
|
313
|
-
2.
|
|
314
|
-
3.
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
341
|
+
1. Read the project experiment board before selecting or launching another case.
|
|
342
|
+
2. Declare a `run_permission_policy_v0` and preflight the runner boundary.
|
|
343
|
+
3. Upsert the planned or running row, then launch one frozen case/arm; do not expose
|
|
344
|
+
evaluator sources or official feedback.
|
|
345
|
+
4. Capture ATIF tool evidence and a runner-owned runtime attestation.
|
|
346
|
+
5. Run `integrity-qualification`; stop on any blocker.
|
|
347
|
+
6. Run the independent verifier only after the agent phase.
|
|
348
|
+
7. Reduce the official result through the benchmark-owned scoring path.
|
|
349
|
+
8. Upsert terminal score, countability, effort, treatment fidelity, and insight
|
|
350
|
+
status, then read the matched-comparison projection.
|
|
351
|
+
9. Apply attempt-countability, treatment-fidelity, and matched-pair gates before any
|
|
352
|
+
comparison claim.
|
|
320
353
|
|
|
321
354
|
Integrity qualification is necessary but not sufficient for a score claim. It does
|
|
322
355
|
not establish task correctness, official score authority, experiment parity, or a
|
|
@@ -324,6 +357,55 @@ LoopX advantage. `score_claim_eligible=true` only permits the official score and
|
|
|
324
357
|
matched-pair gates to run; `score_claim_countable` and `matched_pair_countable` stay
|
|
325
358
|
false in this receipt. Those remain separate verifier and comparison contracts.
|
|
326
359
|
|
|
360
|
+
## Experiment board
|
|
361
|
+
|
|
362
|
+
The project-local experiment board keeps baseline, standard control or treatment,
|
|
363
|
+
and diagnostic explore runs in one compact projection. It is not a second score
|
|
364
|
+
authority and never stores raw task text, trajectories, logs, hidden evaluation,
|
|
365
|
+
verifier output, credentials, or local paths.
|
|
366
|
+
|
|
367
|
+
An agent using this capability should start or resume a study by reading the board:
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
loopx benchmark experiment-board-show \
|
|
371
|
+
--goal-id <goal-id> \
|
|
372
|
+
--format json
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
Preview and then execute an idempotent row update when a run starts or reaches a
|
|
376
|
+
terminal state:
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
loopx benchmark experiment-board-upsert \
|
|
380
|
+
--goal-id <goal-id> \
|
|
381
|
+
--row-json <compact-row.json> \
|
|
382
|
+
--format json
|
|
383
|
+
|
|
384
|
+
loopx benchmark experiment-board-upsert \
|
|
385
|
+
--goal-id <goal-id> \
|
|
386
|
+
--row-json <compact-row.json> \
|
|
387
|
+
--execute \
|
|
388
|
+
--format json
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
The default ledger is locked, atomically updated, and keyed by benchmark, study,
|
|
392
|
+
case, and run identity. A compact row carries arm role, exact and comparison
|
|
393
|
+
protocol ids, model, score metrics, countability, treatment fidelity, bounded
|
|
394
|
+
effort, and an optional insight status or public-safe handle. Unknown fields and
|
|
395
|
+
path-like references fail closed.
|
|
396
|
+
|
|
397
|
+
Every non-baseline row names an exact `comparison_anchor_run_id`. Standard control
|
|
398
|
+
or treatment rows anchor to a baseline. Explore rows use `diagnostic_only` claim
|
|
399
|
+
scope and may anchor to the baseline or fixed standard arm they are examining.
|
|
400
|
+
Matched comparisons require compatible benchmark, study, case, model, primary
|
|
401
|
+
metric, comparison protocol, score countability, and treatment fidelity. Exact
|
|
402
|
+
protocol revisions remain visible as a warning even when a declared comparison
|
|
403
|
+
protocol says an older credible score remains semantically comparable.
|
|
404
|
+
|
|
405
|
+
Full post-run analysis stays in private `benchmark_case_insight_v0` storage. The
|
|
406
|
+
board records only its compact status or handle, so reading the board cannot widen
|
|
407
|
+
the solving agent's evidence boundary.
|
|
408
|
+
|
|
327
409
|
## Post-run case insight monitor
|
|
328
410
|
|
|
329
411
|
Benchmark startup should create one `continuous_monitor` todo. Whenever a case
|
|
@@ -15,6 +15,19 @@ from .container_binding import (
|
|
|
15
15
|
compact_docker_container_binding_receipt,
|
|
16
16
|
select_exact_docker_container,
|
|
17
17
|
)
|
|
18
|
+
from .experiment_board import (
|
|
19
|
+
BENCHMARK_EXPERIMENT_BOARD_LEDGER_FILENAME,
|
|
20
|
+
BENCHMARK_EXPERIMENT_BOARD_ROW_SCHEMA_VERSION,
|
|
21
|
+
BENCHMARK_EXPERIMENT_BOARD_SCHEMA_VERSION,
|
|
22
|
+
benchmark_experiment_board_row_key,
|
|
23
|
+
build_benchmark_experiment_board,
|
|
24
|
+
default_benchmark_experiment_board_path,
|
|
25
|
+
normalize_benchmark_experiment_board_row,
|
|
26
|
+
preview_benchmark_experiment_board_upsert,
|
|
27
|
+
read_benchmark_experiment_board_rows,
|
|
28
|
+
render_benchmark_experiment_board_markdown,
|
|
29
|
+
upsert_benchmark_experiment_board_row,
|
|
30
|
+
)
|
|
18
31
|
from .integrity import (
|
|
19
32
|
BENCHMARK_INTEGRITY_POLICY_SCHEMA_VERSION,
|
|
20
33
|
BENCHMARK_INTEGRITY_QUALIFICATION_SCHEMA_VERSION,
|
|
@@ -82,23 +95,37 @@ from .run_permissions import (
|
|
|
82
95
|
compact_run_permission_policy_for_quota,
|
|
83
96
|
validate_run_permission_policy,
|
|
84
97
|
)
|
|
98
|
+
from .source_revision_fence import (
|
|
99
|
+
BENCHMARK_SOURCE_REVISION_FENCE_SCHEMA_VERSION,
|
|
100
|
+
BenchmarkSourceRevisionFence,
|
|
101
|
+
BenchmarkSourceRevisionFenceError,
|
|
102
|
+
compact_benchmark_source_revision_fence_receipt,
|
|
103
|
+
inspect_benchmark_source_revision_fence,
|
|
104
|
+
)
|
|
85
105
|
|
|
86
106
|
__all__ = [
|
|
87
107
|
"BENCHMARK_CANDIDATE_SOURCE_BOUNDARY_SCHEMA_VERSION",
|
|
88
108
|
"BENCHMARK_EXACT_CONTAINER_BINDING_SCHEMA_VERSION",
|
|
109
|
+
"BENCHMARK_EXPERIMENT_BOARD_LEDGER_FILENAME",
|
|
110
|
+
"BENCHMARK_EXPERIMENT_BOARD_ROW_SCHEMA_VERSION",
|
|
111
|
+
"BENCHMARK_EXPERIMENT_BOARD_SCHEMA_VERSION",
|
|
89
112
|
"BENCHMARK_INTEGRITY_POLICY_SCHEMA_VERSION",
|
|
90
113
|
"BENCHMARK_INTEGRITY_QUALIFICATION_SCHEMA_VERSION",
|
|
91
114
|
"BENCHMARK_RUNTIME_INTEGRITY_ATTESTATION_SCHEMA_VERSION",
|
|
115
|
+
"BENCHMARK_SOURCE_REVISION_FENCE_SCHEMA_VERSION",
|
|
92
116
|
"DEFAULT_RUN_PERMISSION_ALLOWED_ACTIONS",
|
|
93
117
|
"DEFAULT_RUN_PERMISSION_FORBIDDEN_ACTIONS",
|
|
94
118
|
"INTEGRITY_EVIDENCE_CATEGORIES",
|
|
95
119
|
"NATIVE_CODEX_GOAL_PROMPT_SCHEMA_VERSION",
|
|
96
|
-
"NATIVE_GOAL_LIFECYCLE_SCHEMA_VERSION",
|
|
97
120
|
"NATIVE_CODEX_PROFILE_REQUIRED_SKILL_IDS",
|
|
98
121
|
"NATIVE_CODEX_PROFILE_SCHEMA_VERSION",
|
|
122
|
+
"NATIVE_GOAL_LIFECYCLE_SCHEMA_VERSION",
|
|
123
|
+
"PUBLIC_TRAJECTORY_SUMMARY_SCHEMA_VERSION",
|
|
99
124
|
"REQUIRED_RUNTIME_ATTESTATIONS",
|
|
100
125
|
"RUN_PERMISSION_POLICY_SCHEMA_VERSION",
|
|
101
126
|
"RUN_PERMISSION_QUOTA_PROJECTION_SCHEMA_VERSION",
|
|
127
|
+
"BenchmarkSourceRevisionFence",
|
|
128
|
+
"BenchmarkSourceRevisionFenceError",
|
|
102
129
|
"DockerContainerBinding",
|
|
103
130
|
"DockerContainerBindingError",
|
|
104
131
|
"NativeCodexGoalPrompt",
|
|
@@ -108,39 +135,47 @@ __all__ = [
|
|
|
108
135
|
"NativeCodexProfile",
|
|
109
136
|
"NativeCodexProfileError",
|
|
110
137
|
"NativeGoalConfig",
|
|
111
|
-
"NativeGoalLifecycleFacts",
|
|
112
138
|
"NativeGoalEventTransport",
|
|
139
|
+
"NativeGoalLifecycleFacts",
|
|
113
140
|
"NativeGoalProtocolError",
|
|
114
141
|
"NativeGoalTransport",
|
|
115
142
|
"NativeGoalTurn",
|
|
116
|
-
"RunPermissionAction",
|
|
117
|
-
"PUBLIC_TRAJECTORY_SUMMARY_SCHEMA_VERSION",
|
|
118
143
|
"PublicTrajectoryLifecycleState",
|
|
119
144
|
"PublicTrajectorySummaryError",
|
|
145
|
+
"RunPermissionAction",
|
|
120
146
|
"StdioNativeGoalTransport",
|
|
121
147
|
"attach_native_goal",
|
|
148
|
+
"benchmark_experiment_board_row_key",
|
|
122
149
|
"build_benchmark_candidate_source_boundary",
|
|
150
|
+
"build_benchmark_experiment_board",
|
|
123
151
|
"build_benchmark_integrity_qualification",
|
|
124
152
|
"build_native_codex_isolation_envelope",
|
|
125
153
|
"build_native_goal_public_trajectory_summary",
|
|
126
154
|
"build_run_permission_policy",
|
|
127
155
|
"classify_benchmark_artifact_path",
|
|
128
156
|
"classify_benchmark_candidate_source_path",
|
|
157
|
+
"compact_benchmark_source_revision_fence_receipt",
|
|
129
158
|
"compact_docker_container_binding_receipt",
|
|
130
159
|
"compact_native_codex_goal_prompt_receipt",
|
|
131
160
|
"compact_native_codex_profile_receipt",
|
|
132
161
|
"compact_native_goal_receipt",
|
|
133
162
|
"compact_run_permission_policy_for_quota",
|
|
163
|
+
"default_benchmark_experiment_board_path",
|
|
134
164
|
"filter_public_benchmark_artifact_paths",
|
|
165
|
+
"inspect_benchmark_source_revision_fence",
|
|
135
166
|
"inspect_native_codex_profile",
|
|
136
167
|
"install_native_codex_profile",
|
|
137
168
|
"materialize_public_benchmark_artifacts",
|
|
138
169
|
"native_codex_app_server_environment",
|
|
139
170
|
"native_codex_profile_environment",
|
|
171
|
+
"normalize_benchmark_experiment_board_row",
|
|
140
172
|
"observe_native_goal_event",
|
|
173
|
+
"preview_benchmark_experiment_board_upsert",
|
|
141
174
|
"probe_native_goal_process",
|
|
175
|
+
"read_benchmark_experiment_board_rows",
|
|
142
176
|
"rebase_native_codex_loopx_workspace_state",
|
|
143
177
|
"refresh_native_goal_status",
|
|
178
|
+
"render_benchmark_experiment_board_markdown",
|
|
144
179
|
"render_native_codex_goal_prompt",
|
|
145
180
|
"run_native_goal_process",
|
|
146
181
|
"run_native_goal_process_until_terminal",
|
|
@@ -148,6 +183,7 @@ __all__ = [
|
|
|
148
183
|
"run_native_goal_until_terminal",
|
|
149
184
|
"select_exact_docker_container",
|
|
150
185
|
"start_native_goal_turn",
|
|
186
|
+
"upsert_benchmark_experiment_board_row",
|
|
151
187
|
"validate_run_permission_policy",
|
|
152
188
|
"wait_native_goal_turn",
|
|
153
189
|
]
|