polyrob 1.0.1__tar.gz → 1.0.2__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.
- {polyrob-1.0.1/polyrob.egg-info → polyrob-1.0.2}/PKG-INFO +1 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/llm_runner.py +6 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/step.py +21 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/prompts.py +9 -8
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/autonomy_marker.py +22 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/run_as_session.py +8 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/feed.py +2 -11
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/task_agent_delivery.py +5 -6
- polyrob-1.0.2/cli/commands/browser.py +541 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/chat.py +5 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/doctor.py +15 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/gateway.py +5 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/run.py +6 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/wallet.py +9 -7
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/x.py +7 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/x_account.py +150 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/polyrob.py +2 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/banner.py +2 -2
- polyrob-1.0.2/cli/ui/log_squelch.py +135 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/bootstrap.py +19 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/spend_lane.py +19 -5
- polyrob-1.0.2/core/cron_rearm.py +38 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/flags_catalog.py +7 -5
- {polyrob-1.0.1 → polyrob-1.0.2}/core/logging.py +49 -25
- {polyrob-1.0.1 → polyrob-1.0.2}/core/owner_remedy.py +1 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/core/prefs.py +51 -3
- polyrob-1.0.2/core/security/browser_rail.py +214 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/status_snapshot.py +31 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/binding.py +24 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/outbound_mirror.py +0 -58
- polyrob-1.0.2/core/surfaces/turn_reply.py +75 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/user_delivery.py +5 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/core/version.py +1 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/agent_wallet.py +1 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/config.py +84 -14
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/factory.py +1 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/policy.py +37 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/jobs.py +9 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/runner.py +1 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/references/configuration.md +5 -3
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/references/money-and-safety.md +9 -5
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/CONFIGURATION.md +23 -5
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/configuration.md +8 -4
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/security-model.md +14 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/self-hosting.md +77 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/x-twitter.md +30 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/gemini_client.py +4 -4
- polyrob-1.0.2/modules/llm/gemini_parts.py +22 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/renderer.py +10 -1
- {polyrob-1.0.1 → polyrob-1.0.2/polyrob.egg-info}/PKG-INFO +1 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/polyrob.egg-info/SOURCES.txt +6 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/pyproject.toml +1 -1
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/x/client.py +44 -3
- polyrob-1.0.2/tests/test_browser_launch_ratchet.py +55 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_version_consistency.py +2 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/browser.py +40 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/browser_manager.py +10 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/context.py +31 -6
- polyrob-1.0.2/tools/browser/launch_security.py +57 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/action_registration.py +6 -21
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/approval_queue.py +59 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/oauth/file_store.py +48 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/tool_disclosure.py +24 -2
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/twitter_tool.py +39 -1
- polyrob-1.0.2/tools/x_oauth2.py +338 -0
- polyrob-1.0.1/cli/ui/log_squelch.py +0 -71
- polyrob-1.0.1/core/surfaces/turn_reply.py +0 -131
- polyrob-1.0.1/tools/browser/launch_security.py +0 -23
- {polyrob-1.0.1 → polyrob-1.0.2}/LICENSE +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/MANIFEST.in +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/base_agent.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/personality/character.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/personality/character_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/personality/characters/polyrob.character.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/personality/persona_render.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/personality/persona_resolver.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/prompt/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/prompt/base_prompt.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/prompt/system.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/README_PATH_MANAGEMENT.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/agent_state.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/async_delegation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/autonomy_state.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/conversation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/background_review.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/construction.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/conversational_exit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/correspondent_gate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/curator.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/env_context.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/episodic_digest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/error_recovery.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/history_io.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/live_health.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/llm_provisioning.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/logging_io.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/loop_detection.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/memory_prefetch.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/memory_writer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/metering_failure_log.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/model_introspection.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/model_swap.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/next_action_internal.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/output_validation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/project_context.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/resources.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/result_offload.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/result_processing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/run_budget.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/run_loop.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/runtime_catalog.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/safety_lifecycle.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/self_wake.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/session_control.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/session_metadata.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/step_execution.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/step_telemetry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/tool_availability.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/turn_input.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/untrusted_render.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/core/user_ingress.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/hitl_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/log_sanitize.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/message_manager/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/message_manager/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/message_manager/tool_call_builder.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/message_manager/tool_message_repair.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/message_manager/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/builders.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/compactor.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/context_references.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/filters.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/guidance.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/persistence.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/retrieval.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/sqlite_persistence.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/messages/token_counter.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/orchestrator.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/profile_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/profile_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/profile_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/session.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/skill_discovery.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/skill_frontmatter.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/skill_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/skill_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/skill_validation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/skill_writer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/sub_agent_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/tool_call_tracker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/agent/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/constants.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/conversation_resume.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/board.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/claim_liveness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/completion_judge.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/context.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/deliverables.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/dispatcher.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/escalation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/goal_tool_gates.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/group_service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/planner.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/goals/streams.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/logging_config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/path.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/robust_parse_config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/acceptance_checks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/acceptance_schema.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/edit_verify.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/evidence.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/metering_gate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/runtime/run_outcome.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/browser_pool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/cleanup.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/execution.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/hitl_ingress.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/hooks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session/workspace.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/session_route.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/sqlite_session_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/task_agent_chat.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/task_agent_control.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/task_agent_lifecycle.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/task_agent_support.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/agent_graph.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/feed_reads.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/formatters.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/live_progress.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/memory_events.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/narrate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/run_activity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/sequence.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/service_detect.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/telemetry/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/templates.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/tool_defaults.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/utils.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/utils_json.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/utils_webview.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task/workspace_context.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/agents/task_agent_lite.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/TASK_API_DOCS.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/a2a/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/a2a/agent_card.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/a2a/endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/a2a/models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/a2a/streaming.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/a2a/task_handler.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/admin_endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/app.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/auth_constants.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/auth_endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/auth_state.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/chat_via_task.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/dependencies.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/eip8004_endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/hyperliquid_models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/hyperliquid_routes.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/jwt_middleware.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/kb/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/kb/endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/mcp_models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/mcp_routes.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/mcp_serve/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/mcp_serve/handlers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/mcp_serve/router.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/middleware.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/openai_compat/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/openai_compat/model_map.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/openai_compat/models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/openai_compat/router.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/payment_endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/payment_verification.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/polymarket_models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/polymarket_routes.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/pricing_endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/request_limits.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/server_boot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/session_routing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/skill_endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/task_http_api.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/webhooks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/api/x402_endpoints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/assets/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/assets/fonts/dejavu/DejaVuSans-Bold.ttf +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/assets/fonts/dejavu/DejaVuSans.ttf +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/assets/fonts/dejavu/LICENSE +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/config/rob.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/mindprint.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/renders/rob.meta.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/renders/rob.png +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/studio.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/avatar/webview/avatar-live.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/_admin_home.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/_flag_warn.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/attachments.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/_bootstrap.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/_errors.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/_grouped.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/_options.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/_session_control.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/_surface_runner.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/approvals.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/apps.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/auth.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/autonomy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/cron.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/dashboard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/datagen.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/discord.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/email.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/finance.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/goals.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/identity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/init.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/journey.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/kb.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/keys.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/knowledge.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/model.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/owner.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/persona.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/pfp.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/profile.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/profile_dist.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/profile_transfer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/serve.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/session.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/signal.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/skill_install.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/skills.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/slack.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/soul.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/subagents.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/telegram.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/todos.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/tools.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/update.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/wallet_lp.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/commands/whatsapp.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/config_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/delegation_receipts.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/git_child_env.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/gitignore.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/inventory.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/keys.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/persona.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/session_paths.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/toolset.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/activity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/app.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/approval_prompt.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/autonomy_poll.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/blocks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/bootstrap_notice.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/candy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_a23.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_approve.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_attach.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_autonomy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_context.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_cron.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_diag.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_files.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_finance.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_goal_one.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_help.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_inbox.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_journey.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_kb.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_learn.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_mcp.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_mode.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_money_verbs.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_owner.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_pending.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_persona.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_pfp.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_prefs.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_profile.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_reject.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_self.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_skills.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_steer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/h_token.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/handlers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/commands/window.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/config_picker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/dialog.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/event_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/event_specs.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/events.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/first_run_notice.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/hints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/history.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/identity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/input_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/json_renderer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/lifecycle.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/line_layout.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/literal.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/live_hooks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/model_selector.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/persistent_loop.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/plain_renderer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/renderer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/rich_renderer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/secrets.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/slash_highlight.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/state.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/statusbar.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/streaming.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/terminal_render.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/terminal_title.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/ui/theme.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/context.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/detect.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/engine.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/migrate_guarded.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/process_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/runners.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/snapshot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cli/update/versions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/config/.env.development.template +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/action_receipt.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/activity_class.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/activity_evidence.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/admin_data_home.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/egress.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/env_scan.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/fingerprint.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/nginx.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/owner_ops.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/snapshot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/app_service/supervisor.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/approval_input.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/artifacts.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/assets.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/async_bridge.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/autonomy_control.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/autonomy_runtime.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/backoff.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/base_component.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/book.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/bot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/capability_verdict.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/_env.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/autonomy_config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/autonomy_mode.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/autonomy_posture.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/builder_mode.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/capability_toggles.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/compute_posture.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/flag_defaults.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/flag_enums.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/goal_flags.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/local_profile.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/memory_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/payment_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/payment_tools.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/posture_card.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_policy/runtime_gates.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/config_service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/constants.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/container.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/container_hardening.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/contract_writer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/copy/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/copy/_engine.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/copy/en.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/credit_sentinel.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/dapp_session_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/db_manifest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/embedding.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/env.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/env_file.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/error_classifier.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/eval_manifest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/event_kinds.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/event_log.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/exceptions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/exec_identity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/flags.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/gitignore.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/goal_board_render.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/goal_vocab.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/home_migration.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/identity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/initialization.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/instance.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/interactive_gate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/knowledge_export.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/errors.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/flows/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/flows/base.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/flows/device_code.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/flows/loopback_pkce.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/flows/manual_paste_pkce.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/flows/registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/health.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/resolve.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/llm_auth/store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/maintenance_proposals.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/mcp_admin.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/open_positions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/optional_extras.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/owner_create.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/owner_doc_writer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/pairing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/path_safety.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/paths.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/payment_config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/payments/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/payments/assets.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/payments/quote.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/position_ledger.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/profiles.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/publish.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/rate_limit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/recap.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/runtime_config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/runtime_paths.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/seams.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/secret_patterns.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/secret_scan.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/secret_scrub.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/secrets.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/confined_read.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/confined_write.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/document_archive.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/encryption.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/forged_turns.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/host_execution.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/http_probe.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/owner_turn.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/redaction.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/refusals.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/secret_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/session_tokens.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/threat_report.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/untrusted_wrap.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security/url_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security_digest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security_flags.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/security_logging_filter.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/self_context_writer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/self_events.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/self_evolution.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/session_control.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/ship_tree.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/sidecar_relocate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/sqlite_util.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/status_liquidity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/status_live.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/status_render.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/access.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/access_log.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/act.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/address_key.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/attachments.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/bootstrap.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/chat_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/circuit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/command_reply.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/continuity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/conversations.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/correspondents.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/dead_targets.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/deep_link.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/dispatcher.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/envelopes.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/error_notices.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/gc.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/group_admin.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/group_allowlist.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/group_ledger.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/group_roles.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/group_turn.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/health.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/idempotency.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/inbound_attachments.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/inbound_webhook.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/inbox.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/inbox_render.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/ledger_ingest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/llm_outage_notice.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/media.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/message_router.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/missed.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/outbound_allowlist.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/outbound_dispatcher.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/outbound_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/outbound_queue.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/outbound_target.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/owner_address.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/owner_admin.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/owner_intent.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/owner_target.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/path_links.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/poll_health.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/proactive.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/progress.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/quiet_hours.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/recap.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/rendering.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/room_action_admin.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/room_action_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/room_actions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/room_caps.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/room_focus.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/room_keys.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/room_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/seed.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/send_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/serialize.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/session_chat_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/session_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/spill.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/tappable.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/transcription.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/voice_echo.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/surfaces/voice_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/tickers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/token_denylist.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/tool_capabilities.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/tool_catalog.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/verbs.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wake_queue.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/abi.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/addresses.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/audit_sink.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/authority.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/balance_cache.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/bridge_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/bridge_status.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/bridge_watcher.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/broadcast/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/broadcast/evm.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/broadcast/receipt_validation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/chains.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/contracts/FixedSupplyToken.sol +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/deploy_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/derivation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/dex_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/erc8004.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/liquidity_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/onchain.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/public_identity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/relay_svm.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/rpc_response.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/signer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/simulation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/solana_onchain.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/solana_rail.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/solana_signer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/solana_simulation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/solana_strays.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/solana_tx_inspect.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/solana_x402.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/spl_token.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/submission_journal.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/submission_recovery.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/submission_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/token_template.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/tokens.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/trade_index.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/tx_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/tx_notify.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/univ3_math.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/core/wallet/view.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/approval_defer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/delivery.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/digest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/room_service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/schedule.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/scheduler.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/cron/wake_gate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/characters/analyst.character.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/characters/coder.character.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/characters/default.character.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/characters/ops.character.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/characters/researcher.character.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/characters/writer.character.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/autov2_prompts.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/browser-automation/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/coding-workflow/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/crypto-trading-safety/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/document-writing/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/email-comms/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/file-data-ops/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/hyperliquid-account-review/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/hyperliquid-market-data/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/hyperliquid-trading/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/lead-research/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/market-research-brief/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/person-analyzer/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polymarket-market-research/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polymarket-portfolio-review/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polymarket-trading/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/references/autonomy.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/references/setup-interview.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/references/skills-and-learning.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/references/surfaces.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/polyrob-user-guide/references/wallet-and-identity.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/presentation-creator/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/project-analyzer/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/rules.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/secret-handling/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/self-deploy/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/skill-authoring/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/skill-security-review/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/social-discovery/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/task-planning/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/treasury-trading/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/verified-tooling/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/web-research/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/web-scraping/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/skills/x-engagement/SKILL.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/prompts/system_prompts.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/data/subscription_channels.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/assemble.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/batch_runner.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/bulk_export.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/capture.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/formats.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/record.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/scrub.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/datagen/toolset_distributions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/api.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/architecture.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/cli.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/console.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/deployment-postures.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/getting-started.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/groups.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/instances.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/migration/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/migration/from-hermes.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/migration/from-openclaw.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/owner-controls.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/payments.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/profiles.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/skills.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/streams.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/docs/guide/upgrading.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/boot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/migrate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/version_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_0_0_baseline.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_1_0_user_mcp_servers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_2_0_den_token_bonuses.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_3_0_billing_failures.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_4_0_polymarket_credentials.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_5_0_usage_records_request_id.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_6_0_x402_tx_hash_unique.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_7_0_x402_subscription_pending_unique.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_8_0_x402_tx_hash_case_normalize.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/migrations/versions/v1_9_0_x402_payment_asset_columns.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/auth/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/auth/api_key_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/auth/identity_mapper.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/auth/siwe_auth.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/auth/tier_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/base_module.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/balance_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/balances.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/cost_utils.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/pricing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/unified_ledger.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/usage_rollup.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/credits/usage_tracker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/audit_log.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/auth_tables.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/connection.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/conversation_contexts.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/database_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/hyperliquid.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/polymarket.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/user_mcp_servers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/user_profiles.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/database/x402_tables.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/contracts.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/payment_proof.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/registration.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/reputation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/eip8004/validation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/adapters.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/anthropic_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/aux_metering.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/available_models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/brain_scrubber.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/cache_hints.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/compat_clients.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/deepseek_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/llm_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/llm_client_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/llm_factory.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/llm_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/manager_inventory.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/messages.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/model_catalog.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/model_catalog_recent.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/model_pricing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/model_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/model_types.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/nvidia_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/openai_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/openrouter_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/profiles.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/provider_spec.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/responses_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/retry_log.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/sdk_caps.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/think_scrubber.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/token_counter.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/llm/usage_extract.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/backend_factory.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/cache_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/episodic.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/local_vector_memory_provider.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/memory_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/provider.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/sqlite_curated_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/sqlite_episodes_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/sqlite_kb_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/sqlite_memory_provider.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/compaction_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/context_retriever.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/hierarchical_memory.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/lexical_retriever.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/null_context_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/phase_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/reflection_service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/semantic_retriever.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/task_context_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/task/threat_scan.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/memory/wikilinks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/payments/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/payments/deposit_monitor.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/payments/networks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/payments/price_oracle.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/payments/treasury_sweeper.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/payments/wallet_generator.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/cards.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/identity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/mesh.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/push.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/still.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/pfp/voice.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/skills/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/skills/skill_usage.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/transcription/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/transcription/base.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/transcription/faster_whisper_transcriber.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/_db.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/artifact.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/invoice_assets.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/invoice_jitter.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/invoice_sizing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/invoicing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/invoicing_note.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/middleware.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/onchain_probe.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/settlement_notify.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/settlement_reputation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/settlement_scan.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/settlement_subscriptions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/settlement_watcher.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/solana_settlement.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/subscriptions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/modules/x402/x402_integration.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/polyrob.egg-info/dependency_links.txt +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/polyrob.egg-info/entry_points.txt +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/polyrob.egg-info/requires.txt +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/polyrob.egg-info/top_level.txt +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/setup.cfg +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/_shared.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/discord/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/discord/client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/discord/gateway.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/discord/harness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/discord/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/email/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/email/dedup.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/email/fetchers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/email/harness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/email/inbound.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/email/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/inbox_sources.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/signal/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/signal/client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/signal/harness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/signal/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/slack/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/slack/client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/slack/harness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/slack/socket_mode.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/slack/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/apps_ops.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/dedup.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/dev_rail.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/group_ops.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/harness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/inbound.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/interactive_tools.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/lp_ops.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/media.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/moderation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/owner_intent_gate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/owner_ops.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/rate_limit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/room_moderator.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/room_turn.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/token_ops.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/triggers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/telegram/voice.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/whatsapp/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/whatsapp/client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/whatsapp/harness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/whatsapp/inbound.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/whatsapp/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/whatsapp/window.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/x/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/x/chat_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/x/harness.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/x/poller.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/surfaces/x/surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_a2a_protocol.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_accessibility_snapshot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_autonomy_control_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_bool_env_parse_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_changelog_release.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_conftest_operator_env_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_core_platform_boundary.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_core_server_boundary.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_dynamic_pricing.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_effect_classification_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_embedder_needed.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_event_kind_contract.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_file_size_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_gemini_fixes.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_home_binding_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_import_layering.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_layering_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_lazy_embedder.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_llm_timeout_ssot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_mcp_tool_fix.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_numeric_env_parse_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_paid_room_action_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_path_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_private_cleanup_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_provider_registry_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_public_docs_links.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_public_files_present.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_public_release_surface.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_rate_limiter_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_rename_tail.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_room_safety_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_schema_version.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tests/test_status_silence_ratchet.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/alchemy/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/alchemy/alchemy_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/anysite/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/anysite/client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/anysite/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/app_service/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/app_service/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/base_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/_flags.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/actions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/child_env.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/playwright_utils.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/browser/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/SANDBOX_SECURITY.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backend.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backend_cache.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backends/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backends/_proc.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backends/bounded_capture.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backends/docker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backends/local_subprocess.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/backends/ssh.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/env_policy.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/limits.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/result.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/sandbox_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/code_exec/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/coding/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/coding/edit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/coding/lsp.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/coding/search.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/coding/snapshot.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/coding/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/collabland/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/collabland/collabland_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/_helpers.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/agent_status_action.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/approval.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/approval_interactive.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/autonomy_control_action.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/avatar_action.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/delegation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/doc_authoring.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/emit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/execution.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/execution_context.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/grant_card.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/hooks.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/insights_action.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/introspection.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/mcp_registrar.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/message_send.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/registry/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/registry/schema_generators.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/registry/schema_sanitizer.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/registry/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/registry/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/room_read_action.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/tool_load_report.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/tool_management.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/tool_search_actions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/turn_origin.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/types.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/controller/wallet_authority.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/credential_cache.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/cronjob_tools.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/crypto_trade_gate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dapp_browser/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dapp_browser/bridge.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dapp_browser/js.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dapp_browser/registration.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dapp_browser/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/agent_registration.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/book.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/bridge_evm_leg.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/bridge_verb.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/call_verb.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/data_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/deploy_verb.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/lp_abi.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/lp_reads.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/lp_receipts.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/lp_valuation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/lp_verbs.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/nft_verbs.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/payment_quote.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/pool_screen.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/_http.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/alchemy_index.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/base.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/dexscreener.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/geckoterminal.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/goplus.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/jupiter.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/relay_bridge.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/routes/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/routes/lifi.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/routes/univ3_route.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/providers/univ3.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/reconcile.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/spl_deploy_verb.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/defi/trade_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/descriptors.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/document_parser.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/document_worker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dom/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dom/buildDomTree.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dom/history_tree_processor/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dom/history_tree_processor/view.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dom/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/dom/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/email_providers/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/email_providers/agentmail.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/email_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/exceptions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/filesystem.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/filesystem_docproc.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/filesystem_pdf.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/git/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/git/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/github/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/github/client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/github/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/goal_tools.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hf_deploy/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hf_deploy/broker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hf_deploy/digest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hf_deploy/reconcile.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hf_deploy/registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hf_deploy/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hyperliquid/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hyperliquid/models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/hyperliquid/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/knowledge_ingest.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/knowledge_inventory.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/launchpad/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/launchpad/execute.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/launchpad/pons.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/launchpad/pons_abi.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/launchpad/registration.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/launchpad/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/catalog.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/child_env.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/config.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/mcp_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/oauth_bridge.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/param_coercion.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/protocol.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/rate_limit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/security.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/self_install.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/server_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/subscriptions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/user_mcp_service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/validation_tracker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/mcp/views.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/oauth/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/oauth/manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/oauth/provider.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/oauth/providers/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/oauth/providers/generic_oauth2.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/perplexity_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/polymarket/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/polymarket/clob_adapter.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/polymarket/models.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/polymarket/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/publish/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/publish/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/self_env/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/self_env/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/backend_pool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/discipline.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/executor.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/loopback_allow.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/process_registry.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/process_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/state.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/shell/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/ship_common.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/task_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/tool_search.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/user_directory.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/wallet_holder.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/web_fetch/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/web_fetch/fetcher.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/web_fetch/render.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/web_fetch/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/discovery.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/invoice_tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/net_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/real_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x402/spend_gate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_browser/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_browser/driver.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_browser/escalation.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_browser/registration.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_browser/session_store.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_browser/signup.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_browser/tool.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/tools/x_chat_client.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/README.md +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/auth_utils.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/bounded_collections.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/circuit_breaker.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/gif_utils.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/path_validator.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/rate_limit_manager.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/result_size.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/time_utils.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/utils/user_utils.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/activity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/apps_routes.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/artifacts_api.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/audit.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/chat_open.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/config_view.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/console_commands.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/copy/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/copy/en.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/cors.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/dev/package-lock.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/dev/package.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/emit_api.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/inbox.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/knowledge.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/owner_auth.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/owner_login_flow.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/pages.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/pages_new.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/posture_guard.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/posture_routes.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/repair_sessions.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/serve_tokens.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/server.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/server_launcher.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/session_access.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/session_catalog.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/session_identity.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/socket_auth.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/agent.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/app.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/chat-open.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/chats.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/http.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/inbox.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/live.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/money.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/palette.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/settings-control.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/socket-client.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/transcript.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/verbs.en.json +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/work-apps.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/work-create.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/work-now.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/worklog.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/app/workpane.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/activity.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/chat.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/components.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/config-panel.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/fonts.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/pages/admin.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/pages/profile.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/pages/settings.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/pages/signin.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/style.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/variables.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/webgate.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/css/workspace-fullwidth-fix.css +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/fonts/JetBrainsMono-Medium.woff2 +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/fonts/JetBrainsMono-Regular.woff2 +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/fonts/LICENSE-JetBrainsMono +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/fonts/LICENSE-VT323 +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/fonts/VT323-Regular.woff2 +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/img/favicon.ico +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/admin/activity.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/admin/dashboard.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/admin/user_detail.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/admin/users.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/admin/utils.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/constants.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/error-handler.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/error-page.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/ethers.min.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/event-filter.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/event-store.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/file-attachments.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/index.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/pending.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/performance-utils.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/profile.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/screenshot.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/sidebar-data.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/signin.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/socket.io.min.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/socketio-loader.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/stats.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/status-uptime.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/theme.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/static/js/ui-utils.js +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/stats_service.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/template_globals.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/__init__.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/admin/activity.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/admin/dashboard.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/admin/user_detail.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/admin/users.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/agent.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/chat.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/error.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/inbox.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/layout.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/money.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/owner_login.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/pending.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/profile.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/shell.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/signin.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/status.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/templates/work.html +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/theme.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/wallet_reader.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/webgate.py +0 -0
- {polyrob-1.0.1 → polyrob-1.0.2}/webview/worklog_api.py +0 -0
|
@@ -129,8 +129,12 @@ class LLMRunnerMixin:
|
|
|
129
129
|
return False
|
|
130
130
|
|
|
131
131
|
if not model_output.action:
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
# The CALLER decides what an empty list means: the first one is the
|
|
133
|
+
# bounded planning turn ALLOWED_REASONING_TURNS grants, and it logs
|
|
134
|
+
# the warning either way. Shouting "violates the contract" at ERROR
|
|
135
|
+
# here painted two red lines on the REPL for every allowed
|
|
136
|
+
# reasoning turn (2026-09-17).
|
|
137
|
+
self.logger.debug("Model output has empty action list")
|
|
134
138
|
return False
|
|
135
139
|
|
|
136
140
|
# Check each action is valid
|
|
@@ -260,6 +260,20 @@ class StepMixin:
|
|
|
260
260
|
|
|
261
261
|
raise
|
|
262
262
|
|
|
263
|
+
def _browser_rail_usable(self) -> bool:
|
|
264
|
+
"""False when a custody process has no usable remote browser; warns ONCE."""
|
|
265
|
+
try:
|
|
266
|
+
from core.security.browser_rail import browser_rail_status
|
|
267
|
+
status = browser_rail_status()
|
|
268
|
+
except Exception:
|
|
269
|
+
return True # fail open: let the real launch decide
|
|
270
|
+
if status.usable:
|
|
271
|
+
return True
|
|
272
|
+
if not getattr(self, "_browser_rail_warned", False):
|
|
273
|
+
self._browser_rail_warned = True
|
|
274
|
+
self.logger.warning(f"Browser rail unavailable this session: {status.line()}")
|
|
275
|
+
return False
|
|
276
|
+
|
|
263
277
|
async def _prepare_step(self, step_info: Optional[AgentStepInfo] = None):
|
|
264
278
|
"""Phase 1: pre-LLM setup — refresh context, build the state message, return (state, input_messages)."""
|
|
265
279
|
# Check cancellation before starting step execution
|
|
@@ -385,7 +399,13 @@ class StepMixin:
|
|
|
385
399
|
# Get fresh browser context from orchestrator
|
|
386
400
|
browser_context = await self.get_browser_context()
|
|
387
401
|
|
|
388
|
-
# Only get browser state if we have a browser context
|
|
402
|
+
# Only get browser state if we have a browser context — and only if
|
|
403
|
+
# the rail can actually open one. In a custody process with no (or an
|
|
404
|
+
# unreachable) remote browser, get_state() would try to launch, refuse,
|
|
405
|
+
# and log three ERRORs on EVERY step (prod 2026-09-17: ~200/h). Say it
|
|
406
|
+
# once per agent and observe nothing.
|
|
407
|
+
if browser_context and not self._browser_rail_usable():
|
|
408
|
+
browser_context = None
|
|
389
409
|
if browser_context:
|
|
390
410
|
try:
|
|
391
411
|
# FIX (Dec 2025): Only capture screenshots when vision is enabled
|
|
@@ -475,7 +475,8 @@ whose text the user reads. Everything you want them to know goes here.
|
|
|
475
475
|
- wait_for_response=False: they read it and you continue immediately.
|
|
476
476
|
|
|
477
477
|
done(text) ENDS the task. Its text is your internal completion record — what you
|
|
478
|
-
finished, for the run log.
|
|
478
|
+
finished, for the run log. The user NEVER sees it: it is not delivered on any
|
|
479
|
+
surface, so an answer written only into done(text) is an answer nobody receives.
|
|
479
480
|
- Never restate a message you already sent. If you already answered with
|
|
480
481
|
send_message, done(text) is bookkeeping, not a repeat of the answer.
|
|
481
482
|
- Never write done(text) in the third person about yourself ("Answered the owner's
|
|
@@ -701,8 +702,9 @@ Paths relative to workspace root (NO 'workspace/' prefix):
|
|
|
701
702
|
- Bad: 'workspace/report.md'
|
|
702
703
|
|
|
703
704
|
Task Completion:
|
|
704
|
-
- done(text="...") - Ends the task. The text is your internal completion record
|
|
705
|
-
|
|
705
|
+
- done(text="...") - Ends the task. The text is your internal completion record;
|
|
706
|
+
the user never sees it.
|
|
707
|
+
- Speak to the user with send_message; done is not a message to them."""
|
|
706
708
|
else:
|
|
707
709
|
return """Respond with JSON containing brain state and actions:
|
|
708
710
|
```json
|
|
@@ -804,11 +806,10 @@ Task Completion:
|
|
|
804
806
|
"config, goals, owner facts or any owner-only state here; the owner "
|
|
805
807
|
"can ask you privately. If nothing needs an answer, reply exactly "
|
|
806
808
|
"[SILENT].")
|
|
807
|
-
# 2026-09-16: `done` does NOT publish in a room (
|
|
808
|
-
#
|
|
809
|
-
#
|
|
810
|
-
#
|
|
811
|
-
# NOTHING. And `done`'s summary is an internal completion record; the
|
|
809
|
+
# 2026-09-16: `done` does NOT publish in a room (and since 2026-09-17
|
|
810
|
+
# nowhere else either — it has no delivery path). Saying so is
|
|
811
|
+
# load-bearing, not a courtesy: a `done()`-only turn — the majority
|
|
812
|
+
# shape in a DM — would otherwise leave the room with NOTHING. And `done`'s summary is an internal completion record; the
|
|
812
813
|
# turn it was published into a live room it read as a status report
|
|
813
814
|
# to nobody present, quoting the owner's private question back at it.
|
|
814
815
|
lines.append(
|
|
@@ -23,15 +23,28 @@ _MAX = 512
|
|
|
23
23
|
#: has no goal row). Membership is what `is_autonomous` answers; the value is
|
|
24
24
|
#: only ever a hint for re-arming, never an authority check.
|
|
25
25
|
_SESSIONS: "OrderedDict[str, Optional[str]]" = OrderedDict()
|
|
26
|
+
#: session_id -> the cron job id it is running (2026-09-18). The approval queue
|
|
27
|
+
#: needs it for the same reason it needs the goal id: an owner-queue ask raised
|
|
28
|
+
#: by a cron run must name its job so an approval re-arms THAT job to run on
|
|
29
|
+
#: the next tick. Without it the approval woke the finished run's session as a
|
|
30
|
+
#: self-wake — a forged turn the money guard refuses — and the agent told the
|
|
31
|
+
#: owner to "trigger it from your seat" for a trade the owner had just approved.
|
|
32
|
+
_CRON_JOBS: "OrderedDict[str, str]" = OrderedDict()
|
|
26
33
|
|
|
27
34
|
|
|
28
|
-
def mark_autonomous(session_id: str, goal_id: Optional[str] = None
|
|
35
|
+
def mark_autonomous(session_id: str, goal_id: Optional[str] = None,
|
|
36
|
+
*, cron_job_id: Optional[str] = None) -> None:
|
|
29
37
|
if not session_id:
|
|
30
38
|
return
|
|
31
39
|
_SESSIONS[session_id] = goal_id
|
|
32
40
|
_SESSIONS.move_to_end(session_id)
|
|
33
41
|
while len(_SESSIONS) > _MAX:
|
|
34
42
|
_SESSIONS.popitem(last=False)
|
|
43
|
+
if cron_job_id:
|
|
44
|
+
_CRON_JOBS[session_id] = cron_job_id
|
|
45
|
+
_CRON_JOBS.move_to_end(session_id)
|
|
46
|
+
while len(_CRON_JOBS) > _MAX:
|
|
47
|
+
_CRON_JOBS.popitem(last=False)
|
|
35
48
|
|
|
36
49
|
|
|
37
50
|
def is_autonomous(session_id: Optional[str]) -> bool:
|
|
@@ -47,3 +60,11 @@ def goal_for_session(session_id: Optional[str]) -> Optional[str]:
|
|
|
47
60
|
if not session_id:
|
|
48
61
|
return None
|
|
49
62
|
return _SESSIONS.get(session_id)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def cron_job_for_session(session_id: Optional[str]) -> Optional[str]:
|
|
66
|
+
"""The cron job this autonomous session is running, or None (a goal or
|
|
67
|
+
planner run, or an interactive session). None is a real answer."""
|
|
68
|
+
if not session_id:
|
|
69
|
+
return None
|
|
70
|
+
return _CRON_JOBS.get(session_id)
|
|
@@ -104,6 +104,7 @@ async def run_task_to_outcome(
|
|
|
104
104
|
autonomous: bool = False,
|
|
105
105
|
goal_id: str | None = None,
|
|
106
106
|
creator: str | None = None,
|
|
107
|
+
cron_job_id: str | None = None,
|
|
107
108
|
):
|
|
108
109
|
"""The primary run entry (§2): create_session → run_session → RunOutcome.
|
|
109
110
|
|
|
@@ -121,6 +122,11 @@ async def run_task_to_outcome(
|
|
|
121
122
|
goal that raised it — otherwise the owner presses /approve and nothing
|
|
122
123
|
happens (039).
|
|
123
124
|
|
|
125
|
+
*cron_job_id* (2026-09-18) is the cron twin of *goal_id*: the approval queue
|
|
126
|
+
stamps it on an owner-queue ask so approving the ask re-arms the JOB to run
|
|
127
|
+
on the next tick — the run that redeems the grant is a genuine cron turn,
|
|
128
|
+
where a self-wake into the finished session could never spend.
|
|
129
|
+
|
|
124
130
|
*creator* (043 A17): the session-creator display label. This helper is
|
|
125
131
|
shared by BOTH the goal dispatcher and cron runner, which resolve to
|
|
126
132
|
different labels ("goal" vs "cron") — so the CALLER must pass it
|
|
@@ -175,7 +181,7 @@ async def run_task_to_outcome(
|
|
|
175
181
|
pre_sid = None
|
|
176
182
|
if autonomous and pre_sid:
|
|
177
183
|
from agents.task.goals.autonomy_marker import mark_autonomous
|
|
178
|
-
mark_autonomous(pre_sid, goal_id)
|
|
184
|
+
mark_autonomous(pre_sid, goal_id, cron_job_id=cron_job_id)
|
|
179
185
|
|
|
180
186
|
kwargs = {"session_id": pre_sid} if pre_sid else {}
|
|
181
187
|
if creator is not None and create_session_accepts(task_agent.create_session, "creator"):
|
|
@@ -188,7 +194,7 @@ async def run_task_to_outcome(
|
|
|
188
194
|
return RunOutcome(session_id=None)
|
|
189
195
|
if autonomous:
|
|
190
196
|
from agents.task.goals.autonomy_marker import mark_autonomous
|
|
191
|
-
mark_autonomous(session_id, goal_id)
|
|
197
|
+
mark_autonomous(session_id, goal_id, cron_job_id=cron_job_id)
|
|
192
198
|
status = await task_agent.run_session(user_id, session_id)
|
|
193
199
|
outcome = await build_run_outcome(task_agent, session_id, status)
|
|
194
200
|
if autonomous:
|
|
@@ -9,7 +9,7 @@ _logger = logging.getLogger(__name__)
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def build_stream_publish(
|
|
12
|
-
router: Any, session_key: Optional[str],
|
|
12
|
+
router: Any, session_key: Optional[str],
|
|
13
13
|
) -> Callable[..., Awaitable[None]]:
|
|
14
14
|
"""Return an async ``(chunk, step) -> None`` that mirrors a streamed chunk into
|
|
15
15
|
the unified outbound seam (``MessageRouter.publish``) as a partial OutboundMessage.
|
|
@@ -29,7 +29,7 @@ def build_stream_publish(
|
|
|
29
29
|
try:
|
|
30
30
|
from core.surfaces.envelopes import OutboundMessage
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
await router.publish(OutboundMessage(
|
|
33
33
|
session_key=session_key,
|
|
34
34
|
text=chunk,
|
|
35
35
|
partial=True,
|
|
@@ -40,14 +40,6 @@ def build_stream_publish(
|
|
|
40
40
|
# and never finalize. `step` is retained for callers but no longer keys.
|
|
41
41
|
stream_id=session_key,
|
|
42
42
|
))
|
|
43
|
-
# A live stream is already the agent's visible reply. Claim the
|
|
44
|
-
# same per-turn latch as send_message so a following done() cannot
|
|
45
|
-
# publish its internal completion recap as a second chat bubble.
|
|
46
|
-
# Buffered streams deliberately return False: their text still
|
|
47
|
-
# needs the final discrete message to reach the user.
|
|
48
|
-
if delivered_live is True and orchestrator is not None:
|
|
49
|
-
from core.surfaces.turn_reply import mark_reply_published
|
|
50
|
-
mark_reply_published(orchestrator)
|
|
51
43
|
except Exception as e: # fail-open: streaming mirror is non-critical
|
|
52
44
|
_logger.debug("stream publish mirror failed: %s", e)
|
|
53
45
|
|
|
@@ -171,7 +163,6 @@ class FeedMixin:
|
|
|
171
163
|
_mirror = build_stream_publish(
|
|
172
164
|
getattr(self, "_message_router", None),
|
|
173
165
|
getattr(self, "_chat_session_key", None),
|
|
174
|
-
self,
|
|
175
166
|
)
|
|
176
167
|
if callback is None:
|
|
177
168
|
# Even with no legacy callback, the unified mirror may be active.
|
|
@@ -420,12 +420,11 @@ class TaskAgentDeliveryMixin:
|
|
|
420
420
|
# the previous turn would make this turn's `send_message` look
|
|
421
421
|
# like a SECOND reply. `reset_turn` is the same call
|
|
422
422
|
# `_drain_user_messages` makes for a drained batch.
|
|
423
|
-
# ⚠️ 2026-09-16: this reset
|
|
424
|
-
# fallback — `
|
|
425
|
-
#
|
|
426
|
-
#
|
|
427
|
-
#
|
|
428
|
-
# logged by the mirror), not a hole to be plugged with `done`.
|
|
423
|
+
# ⚠️ 2026-09-16/17: this reset does not re-arm `done()` as a room
|
|
424
|
+
# fallback — `done` has no delivery path any more, because the text
|
|
425
|
+
# it was falling back to is an internal completion record and
|
|
426
|
+
# publishing it leaked an owner question into a public group. A room
|
|
427
|
+
# turn that says nothing is CORRECT, not a hole to be plugged.
|
|
429
428
|
# Safe: the push above already succeeded, so neither can be left
|
|
430
429
|
# stale behind a rejected submission (the hazard the
|
|
431
430
|
# `set_turn_reply_to` docstring warns about).
|