execweave 0.8.25__tar.gz → 0.8.27__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.
- {execweave-0.8.25 → execweave-0.8.27}/PKG-INFO +1 -1
- {execweave-0.8.25 → execweave-0.8.27}/pyproject.toml +2 -2
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/__init__.py +1 -1
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/collector.py +9 -1
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/framework_adapters/base.py +1 -1
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/framework_adapters/camel.py +37 -3
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/strace_backend.py +6 -0
- {execweave-0.8.25 → execweave-0.8.27}/.gitignore +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/LICENSE +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/README.md +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/__main__.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/_conversation_records_core.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/_dashboard_shell_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/_http_proxy_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/_http_proxy_bounded.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/_http_proxy_stage.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/agent_bootstrap.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/agent_topology.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/agent_trace.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/agy_preview_sanitize.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/analysis.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/anthropic.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/anthropic_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/anthropic_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_adapter.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_adapter_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_full_fidelity_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_full_fidelity_collaboration_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_hook_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_record.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_subagent_linkage.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_trace_capability.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/auto_specialized.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/backends.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/benchmark.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_adapter.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_child_transcript.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_delegation.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_hook_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_hook_contract.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_model_observer.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/claude_record.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_adapter.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_conversation.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_hook_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_hook_entry.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_hook_lifecycle.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_message_diagnostics.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_message_transport_diagnostics.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_record.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_rollout_structures.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_rollout_trace.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/codex_rollout_trace_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/command.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/content_evidence.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/content_store.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_archive.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_message_identity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview_antigravity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview_claude.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview_codex.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview_common.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview_generic.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview_lines.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_preview_transcript.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_records.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_records_antigravity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_records_codex.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_records_common.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/conversation_records_ollama.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/correlation.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_adapter.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_delegation.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_delegation_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_hook_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_hook_contract.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_lifecycle.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/cursor_record.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/dashboard_shell.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/entry.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/evidence_availability.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/evidence_grade.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/filesystem.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/focus.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/framework_adapters/__init__.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/framework_adapters/autogen.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/framework_adapters/metagpt.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/framework_adapters/registry.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/graph.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/graph_ops.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/http_proxy.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/http_proxy_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/inference_gateway.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/inference_gateway_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/inference_gateway_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/inference_identity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/inference_identity_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/integrity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/integrity_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/litellm_callback.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/litellm_callback_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_core.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_extra_style.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_markup.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_process_layout.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_readability.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_script_a.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_script_b.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_script_c.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_script_d.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/live_view_style.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/model_runtime.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/model_runtime_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/model_runtime_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/openai_compatible.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/openai_compatible_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/openai_compatible_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/opencode_adapter.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/opencode_event_contract.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/opencode_full_fidelity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/opencode_hook_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/opencode_plugin_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/opencode_record.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/opencode_task_linkage.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/overhead_benchmark.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/provider_capability.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/provider_lifecycle.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/provider_record.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/rule_pack.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/rule_pack_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/runtime_endpoint_availability.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/scalability_benchmark.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/schema.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/scope.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/semantic.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/sink.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/stream_assembly.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/theme.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/top.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/top_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/validate.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/vendor/dagre.min.js +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/view_cli.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_antigravity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_claude.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_codex.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_cursor.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_default.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_ollama.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_opencode.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_agent_panel_registry.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_content_inspector.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_dashboard_clean.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_dashboard_focus.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_dashboard_hardening.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_dashboard_hardening_v2.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_dashboard_pr70.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_edge_decross.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_execution_flow.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_execution_flow_provider_normalization.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_execution_flow_safety.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_external_endpoints.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_flow_canvas.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_flow_layout.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_gif.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_layout_geometry.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_layout_v2.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_layout_v2_detached.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_limits.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_live_layout.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_projection.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_projection_base.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_projection_bridges.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_semantic_projection.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_tool_mirror_identity.py +0 -0
- {execweave-0.8.25 → execweave-0.8.27}/src/execweave/workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: execweave
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.27
|
|
4
4
|
Summary: Turn AI-agent runtime behavior into a local interactive execution graph.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Irish-kw/ExecWeave
|
|
6
6
|
Project-URL: Repository, https://github.com/Irish-kw/ExecWeave
|
|
@@ -4,8 +4,8 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "execweave"
|
|
7
|
-
# ExecWeave v0.8.
|
|
8
|
-
version = "0.8.
|
|
7
|
+
# ExecWeave v0.8.27 release metadata
|
|
8
|
+
version = "0.8.27"
|
|
9
9
|
description = "Turn AI-agent runtime behavior into a local interactive execution graph."
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.10"
|
|
@@ -75,7 +75,15 @@ def _safe_process_snapshot(proc: psutil.Process) -> ProcessSnapshot | None:
|
|
|
75
75
|
exe=exe,
|
|
76
76
|
create_time=proc.create_time(),
|
|
77
77
|
)
|
|
78
|
-
except (
|
|
78
|
+
except (
|
|
79
|
+
psutil.NoSuchProcess,
|
|
80
|
+
psutil.AccessDenied,
|
|
81
|
+
psutil.ZombieProcess,
|
|
82
|
+
# macOS can surface protected-process cmdline denial as a SystemError
|
|
83
|
+
# from psutil's C extension instead of AccessDenied. Treat that process
|
|
84
|
+
# as unobservable, just like the other permission-race cases.
|
|
85
|
+
SystemError,
|
|
86
|
+
):
|
|
79
87
|
return None
|
|
80
88
|
|
|
81
89
|
|
|
@@ -34,7 +34,7 @@ CANONICAL_EVENT_TYPES = frozenset(
|
|
|
34
34
|
"AGENT_CREATED", "AGENT_STARTED", "AGENT_STOPPED",
|
|
35
35
|
"TASK_CREATED", "TASK_ASSIGNED", "TASK_STARTED", "TASK_UPDATED",
|
|
36
36
|
"TASK_COMPLETED", "TASK_FAILED",
|
|
37
|
-
"MESSAGE_SENT", "MESSAGE_RECEIVED",
|
|
37
|
+
"MESSAGE_SENT", "MESSAGE_RECEIVED", "MESSAGE_UNROUTED",
|
|
38
38
|
"MODEL_REQUEST", "MODEL_RESPONSE", "MODEL_FAILURE",
|
|
39
39
|
"TOOL_CALL", "TOOL_RESULT", "TOOL_FAILURE",
|
|
40
40
|
"MESSAGE_CONTENT_RECORDED", "MODEL_CONTENT_RECORDED", "TOOL_CONTENT_RECORDED",
|
|
@@ -11,10 +11,10 @@ from .base import AdapterCapabilities, AdapterContext, AgentRecord, EntityRef, F
|
|
|
11
11
|
class CAMELAdapter(FrameworkAdapter):
|
|
12
12
|
framework_name = "camel"
|
|
13
13
|
capabilities = AdapterCapabilities(
|
|
14
|
-
events=("AGENT_CREATED", "AGENT_STARTED", "AGENT_STOPPED", "TASK_CREATED", "TASK_ASSIGNED", "TASK_STARTED", "TASK_UPDATED", "TASK_COMPLETED", "TASK_FAILED", "MESSAGE_SENT", "MESSAGE_RECEIVED", "MODEL_REQUEST", "MODEL_RESPONSE", "MODEL_FAILURE"),
|
|
14
|
+
events=("AGENT_CREATED", "AGENT_STARTED", "AGENT_STOPPED", "TASK_CREATED", "TASK_ASSIGNED", "TASK_STARTED", "TASK_UPDATED", "TASK_COMPLETED", "TASK_FAILED", "MESSAGE_SENT", "MESSAGE_RECEIVED", "MESSAGE_UNROUTED", "MODEL_REQUEST", "MODEL_RESPONSE", "MODEL_FAILURE"),
|
|
15
15
|
content_modes=("metadata_only", "content_ref_only", "prompt_only", "prompt_and_response"),
|
|
16
16
|
authoritative_surfaces=("camel.societies.workforce.WorkforceCallback", "camel.models.BaseModelBackend.run", "camel.models.BaseModelBackend.arun"),
|
|
17
|
-
known_limitations=("WorkforceCallback LogEvent does not expose the emitting worker or recipient; those log messages
|
|
17
|
+
known_limitations=("WorkforceCallback LogEvent does not expose the emitting worker or recipient; those log messages are explicitly marked MESSAGE_UNROUTED and correlated to the observed process instead of being assigned to a guessed agent.", "A created worker is not treated as assigned until CAMEL reports a task assignment."),
|
|
18
18
|
)
|
|
19
19
|
|
|
20
20
|
def __init__(self, context: AdapterContext) -> None:
|
|
@@ -73,6 +73,32 @@ class CAMELAdapter(FrameworkAdapter):
|
|
|
73
73
|
self.context.record_message(MessageRecord(message, source, target, role=role, task=task, content=content, direction="received" if received else "sent", attributes=attributes))
|
|
74
74
|
return message
|
|
75
75
|
|
|
76
|
+
def message_unrouted(self, message: EntityRef, *, callback_name: str, missing_sender: bool, missing_recipient: bool, reason: str = "callback_payload_missing_agent_boundary") -> None:
|
|
77
|
+
"""Keep callback messages visible without inventing an agent route.
|
|
78
|
+
|
|
79
|
+
CAMEL's WorkforceCallback log surface can emit a message without a
|
|
80
|
+
worker or recipient. The process is the only authoritative boundary
|
|
81
|
+
available in that case, so record that boundary explicitly rather
|
|
82
|
+
than leaving the message looking like a dropped graph node.
|
|
83
|
+
"""
|
|
84
|
+
process = self.context.process
|
|
85
|
+
if process is None:
|
|
86
|
+
return
|
|
87
|
+
self.emit(
|
|
88
|
+
"MESSAGE_UNROUTED",
|
|
89
|
+
"OBSERVED_AT_PROCESS",
|
|
90
|
+
source=message,
|
|
91
|
+
target=process.to_entity(),
|
|
92
|
+
attributes={
|
|
93
|
+
"callback_name": callback_name,
|
|
94
|
+
"routing_status": "unrouted",
|
|
95
|
+
"routing_reason": reason,
|
|
96
|
+
"missing_sender": missing_sender,
|
|
97
|
+
"missing_recipient": missing_recipient,
|
|
98
|
+
"routing_basis": "authoritative_process_boundary",
|
|
99
|
+
},
|
|
100
|
+
)
|
|
101
|
+
|
|
76
102
|
def model_call(self, call_id: str | int, agent: EntityRef | None, model_id: str | int, *, model_name: str | None = None, request: Any | None = None, response: Any | None = None, status: str = "request", task: EntityRef | None = None, **attributes: Any) -> EntityRef:
|
|
77
103
|
model = self.model(model_id, name=model_name, provider="camel", **attributes)
|
|
78
104
|
call = self.entity("model_call", call_id, name="CAMEL model call", attributes={"provider": "camel"})
|
|
@@ -103,7 +129,7 @@ class CAMELAdapter(FrameworkAdapter):
|
|
|
103
129
|
source = self._agents.get(str(worker_id)) if worker_id is not None else None
|
|
104
130
|
target_id = _value(payload, "target_worker_id", "recipient_worker_id", "target_agent_id", "recipient_agent_id", "receiver_id")
|
|
105
131
|
target = self._agents.get(str(target_id)) if target_id is not None else None
|
|
106
|
-
|
|
132
|
+
message = self.message(
|
|
107
133
|
message_id,
|
|
108
134
|
source,
|
|
109
135
|
target,
|
|
@@ -116,6 +142,14 @@ class CAMELAdapter(FrameworkAdapter):
|
|
|
116
142
|
"message_id_source": "provider" if native_message_id is not None else "execweave_derived",
|
|
117
143
|
},
|
|
118
144
|
)
|
|
145
|
+
if source is None or target is None:
|
|
146
|
+
self.message_unrouted(
|
|
147
|
+
message,
|
|
148
|
+
callback_name=name,
|
|
149
|
+
missing_sender=source is None,
|
|
150
|
+
missing_recipient=target is None,
|
|
151
|
+
)
|
|
152
|
+
return message
|
|
119
153
|
if name == "log_task_decomposed":
|
|
120
154
|
parent_key = _native(payload, "parent_task_id", "task_id", "id")
|
|
121
155
|
parent = self._tasks.get(str(parent_key)) or self.task_created(parent_key)
|
|
@@ -49,6 +49,12 @@ def _iso_timestamp(value: float) -> str:
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
def _decode_quoted(value: str) -> str:
|
|
52
|
+
# Synthetic Windows traces carry native drive paths with single
|
|
53
|
+
# backslashes (for example ``C:\\tmp``). Treating those as Python string
|
|
54
|
+
# escapes turns ``\\t`` into a tab and corrupts the observed path. Real
|
|
55
|
+
# Linux strace paths still use the normal C-style decoding below.
|
|
56
|
+
if re.match(r"^[A-Za-z]:[\\/]", value):
|
|
57
|
+
return value.replace(r'\"', '"').replace(r"\\", "\\")
|
|
52
58
|
try:
|
|
53
59
|
return str(ast.literal_eval(f'"{value}"'))
|
|
54
60
|
except (SyntaxError, ValueError):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{execweave-0.8.25 → execweave-0.8.27}/src/execweave/antigravity_full_fidelity_collaboration_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{execweave-0.8.25 → execweave-0.8.27}/src/execweave/viewer_execution_flow_provider_normalization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|