bazaar-compute-node 0.1.30__tar.gz → 0.1.31__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.
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/PKG-INFO +1 -1
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/pyproject.toml +1 -1
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/pyproject.toml.orig +1 -1
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/client.py +3 -1
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/process.py +24 -3
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/protocol.py +9 -1
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/codec.py +3 -2
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/__init__.py +2 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/registry.py +2 -0
- bazaar_compute_node-0.1.31/src/bazaar_compute_node/contrib/sqlite/migrations/v23_persist_sender_identity.py +11 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/repository/messages.py +14 -8
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/LICENSE +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/README.md +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/agent.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/agent_management.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/application.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/attachments.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/command.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/config.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/registry.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/resource_dispatch.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/system_service.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/transport.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/windows_pipe.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/wrapper.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/bcc.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/cli.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/approval.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/events.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/plugin.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/claude/runtime.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/approval.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/client.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/events.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/plugin.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/process.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/protocol.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/codex/runtime.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/api.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/approval.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/attachments.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/channel.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/frame.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/identity.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/outbound.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/plugin.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/lark/transport.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/logging/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/logging/audit.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/logging/plugin.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/database.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/executor.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/model.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v01_initial_node_schema.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v02_session_mapping_indexes.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v03_message_log_indexes.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v04_runtime_attempt_facts.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v05_inbound_message_references.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v06_inbound_message_reference_integrity.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v07_inbound_provider_identity.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v08_transient_stream_events.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v09_remove_runtime_events.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v10_add_outbound_attachments.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v11_remove_runtime_session_mapping.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v12_add_reminders.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v13_add_agent_ownership.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v14_add_inbox_discovery_indexes.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v15_add_handoffs.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v16_remove_outbound_drafts.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v17_remove_agent_identity_triggers.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v18_unify_messages.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v19_reminder_system_messages.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v20_remove_freshness_persistence.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v21_remove_handoffs.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/migrations/v22_readable_targets.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/plugin.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/reminder_codec.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/repository/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/repository/base.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/repository/facade.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/repository/reminders.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/repository/sessions.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/sqlite/storage.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/api.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/approval.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/attachments.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/channel.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/identity.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/markdown.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/outbound.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/telegram/plugin.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/wecom/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/wecom/channel.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/wecom/markdown.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/wecom/outbound.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/contrib/wecom/plugin.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/approval.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/audit.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/channel.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/client.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/command.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/concurrency.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/correlation.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/inbox.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/instruction.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/lifecycle.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/models/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/models/entities.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/models/reminder.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/models/reminder_owner.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/models/states.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/observability.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/command.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/delivery.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/error_feedback.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/reminder.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/reminder_command.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/services.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/session.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/orchestration/turn.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/outcomes.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/paths.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/reminder.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/reminder_schedule.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/runtime.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/storage.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/timerwheel.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/utils/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/utils/line_reader.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/i18n/__init__.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/i18n/catalog.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/rendering.py +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/developer_instructions.md +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/locales/en.toml +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/locales/zh-CN.toml +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/system_service/launchd.plist +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/system_service/launchd.sh +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/system_service/systemd.service +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/system_service/windows.ps1 +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/system_service/windows.vbs +0 -0
- {bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/resources/system_service/windows.xml +0 -0
|
@@ -288,7 +288,9 @@ class Client:
|
|
|
288
288
|
task.cancel()
|
|
289
289
|
await asyncio.gather(task, return_exceptions=True)
|
|
290
290
|
error = ClaudeProcessExited(
|
|
291
|
-
self._supervisor.returncode,
|
|
291
|
+
self._supervisor.returncode,
|
|
292
|
+
self._supervisor.stderr_tail,
|
|
293
|
+
self._supervisor.result_error_tail,
|
|
292
294
|
)
|
|
293
295
|
self._fail_pending(error)
|
|
294
296
|
self._publish_failure(error)
|
|
@@ -111,6 +111,7 @@ class ProcessSupervisor:
|
|
|
111
111
|
self._returncode: int | None = None
|
|
112
112
|
self._fatal_error: ClaudeTransportError | None = None
|
|
113
113
|
self._stderr_tail: deque[str] = deque(maxlen=stderr_tail_limit)
|
|
114
|
+
self._result_error_tail: deque[str] = deque(maxlen=stderr_tail_limit)
|
|
114
115
|
self._incoming: asyncio.Queue[JsonObject | object] = asyncio.Queue()
|
|
115
116
|
self._stdout_task: asyncio.Task[None] | None = None
|
|
116
117
|
self._stderr_task: asyncio.Task[None] | None = None
|
|
@@ -139,6 +140,10 @@ class ProcessSupervisor:
|
|
|
139
140
|
def stderr_tail(self) -> tuple[str, ...]:
|
|
140
141
|
return tuple(self._stderr_tail)
|
|
141
142
|
|
|
143
|
+
@property
|
|
144
|
+
def result_error_tail(self) -> tuple[str, ...]:
|
|
145
|
+
return tuple(self._result_error_tail)
|
|
146
|
+
|
|
142
147
|
async def start(self, *, timeout: float) -> None:
|
|
143
148
|
async with self._lifecycle_lock:
|
|
144
149
|
if self.is_running:
|
|
@@ -186,7 +191,9 @@ class ProcessSupervisor:
|
|
|
186
191
|
await process.stdin.drain()
|
|
187
192
|
except (BrokenPipeError, ConnectionError, OSError) as error:
|
|
188
193
|
raise ClaudeProcessExited(
|
|
189
|
-
process.returncode,
|
|
194
|
+
process.returncode,
|
|
195
|
+
self.stderr_tail,
|
|
196
|
+
self.result_error_tail,
|
|
190
197
|
) from error
|
|
191
198
|
|
|
192
199
|
async def receive(self) -> JsonObject:
|
|
@@ -194,7 +201,11 @@ class ProcessSupervisor:
|
|
|
194
201
|
if item is _CLOSED:
|
|
195
202
|
if self._fatal_error is not None:
|
|
196
203
|
raise self._fatal_error
|
|
197
|
-
raise ClaudeProcessExited(
|
|
204
|
+
raise ClaudeProcessExited(
|
|
205
|
+
self._returncode,
|
|
206
|
+
self.stderr_tail,
|
|
207
|
+
self.result_error_tail,
|
|
208
|
+
)
|
|
198
209
|
return cast(JsonObject, item)
|
|
199
210
|
|
|
200
211
|
async def wait(self, *, timeout: float | None = None) -> int | None:
|
|
@@ -242,6 +253,12 @@ class ProcessSupervisor:
|
|
|
242
253
|
payload = decode_stdout_line(line.removesuffix(b"\n"))
|
|
243
254
|
if payload is None:
|
|
244
255
|
continue
|
|
256
|
+
if payload["type"] == "result":
|
|
257
|
+
errors = payload.get("errors")
|
|
258
|
+
if isinstance(errors, list):
|
|
259
|
+
for error in errors:
|
|
260
|
+
if isinstance(error, str) and error.strip():
|
|
261
|
+
self._result_error_tail.append(error.strip())
|
|
245
262
|
await self._incoming.put(payload)
|
|
246
263
|
except asyncio.CancelledError:
|
|
247
264
|
raise
|
|
@@ -280,7 +297,11 @@ class ProcessSupervisor:
|
|
|
280
297
|
task.cancel()
|
|
281
298
|
await asyncio.gather(*readers, return_exceptions=True)
|
|
282
299
|
if self._returncode and self._fatal_error is None:
|
|
283
|
-
self._fatal_error = ClaudeProcessExited(
|
|
300
|
+
self._fatal_error = ClaudeProcessExited(
|
|
301
|
+
self._returncode,
|
|
302
|
+
self.stderr_tail,
|
|
303
|
+
self.result_error_tail,
|
|
304
|
+
)
|
|
284
305
|
self._state = (
|
|
285
306
|
ProcessState.FAILED
|
|
286
307
|
if self._fatal_error is not None
|
|
@@ -19,13 +19,21 @@ class ClaudeProcessNotRunning(ClaudeTransportError):
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class ClaudeProcessExited(ClaudeTransportError):
|
|
22
|
-
def __init__(
|
|
22
|
+
def __init__(
|
|
23
|
+
self,
|
|
24
|
+
returncode: int | None,
|
|
25
|
+
stderr_tail: tuple[str, ...],
|
|
26
|
+
result_error_tail: tuple[str, ...] = (),
|
|
27
|
+
) -> None:
|
|
23
28
|
message = f"Claude CLI exited with code {returncode}"
|
|
24
29
|
if stderr_tail:
|
|
25
30
|
message = f"{message}: {stderr_tail[-1]}"
|
|
31
|
+
elif result_error_tail:
|
|
32
|
+
message = f"{message}: {result_error_tail[-1]}"
|
|
26
33
|
super().__init__(message)
|
|
27
34
|
self.returncode = returncode
|
|
28
35
|
self.stderr_tail = stderr_tail
|
|
36
|
+
self.result_error_tail = result_error_tail
|
|
29
37
|
|
|
30
38
|
|
|
31
39
|
class ClaudeControlError(ClaudeProtocolError):
|
|
@@ -100,13 +100,14 @@ def message_from_row(
|
|
|
100
100
|
) -> Message[InboundAttachment | OutboundAttachment]:
|
|
101
101
|
direction = MessageDirection(_required_text(row["direction"], "direction"))
|
|
102
102
|
sender = _optional_text(row["sender"], "sender")
|
|
103
|
+
sender_id = _optional_text(row["sender_id"], "sender_id")
|
|
103
104
|
metadata = _decode_metadata(row["metadata_json"], "metadata_json")
|
|
104
105
|
sender_identity = None
|
|
105
|
-
if sender is not None:
|
|
106
|
+
if sender is not None or sender_id is not None:
|
|
106
107
|
sender_identity = (
|
|
107
108
|
SenderIdentity(id="system", name="system")
|
|
108
109
|
if metadata.get("sender_kind") == SenderKind.SYSTEM.value
|
|
109
|
-
else SenderIdentity(name=sender)
|
|
110
|
+
else SenderIdentity(id=sender_id, name=sender)
|
|
110
111
|
)
|
|
111
112
|
common = {
|
|
112
113
|
"direction": direction,
|
|
@@ -30,6 +30,7 @@ from .v16_remove_outbound_drafts import OUTBOUND_DRAFT_REMOVAL_MIGRATION
|
|
|
30
30
|
from .v17_remove_agent_identity_triggers import STORAGE_ACCESS_MIGRATION
|
|
31
31
|
from .v18_unify_messages import MESSAGE_UNIFICATION_MIGRATION
|
|
32
32
|
from .v19_reminder_system_messages import REMINDER_SYSTEM_MESSAGE_MIGRATION
|
|
33
|
+
from .v23_persist_sender_identity import SENDER_IDENTITY_MIGRATION
|
|
33
34
|
|
|
34
35
|
__all__ = [
|
|
35
36
|
"AGENT_OWNERSHIP_MIGRATION",
|
|
@@ -49,6 +50,7 @@ __all__ = [
|
|
|
49
50
|
"RUNTIME_EVENTS_REMOVAL_MIGRATION",
|
|
50
51
|
"RUNTIME_SESSION_MAPPING_REMOVAL_MIGRATION",
|
|
51
52
|
"SCHEMA_MIGRATION",
|
|
53
|
+
"SENDER_IDENTITY_MIGRATION",
|
|
52
54
|
"SESSION_MAPPING_INDEX_MIGRATION",
|
|
53
55
|
"STORAGE_ACCESS_MIGRATION",
|
|
54
56
|
"TRANSIENT_STREAM_EVENT_MIGRATION",
|
|
@@ -33,6 +33,7 @@ from .v20_remove_freshness_persistence import (
|
|
|
33
33
|
)
|
|
34
34
|
from .v21_remove_handoffs import HANDOFF_REMOVAL_MIGRATION
|
|
35
35
|
from .v22_readable_targets import READABLE_TARGET_MIGRATION
|
|
36
|
+
from .v23_persist_sender_identity import SENDER_IDENTITY_MIGRATION
|
|
36
37
|
|
|
37
38
|
if TYPE_CHECKING:
|
|
38
39
|
from ..executor import SqliteSession
|
|
@@ -80,6 +81,7 @@ MIGRATIONS = _migration_ledger(
|
|
|
80
81
|
FRESHNESS_PERSISTENCE_REMOVAL_MIGRATION,
|
|
81
82
|
HANDOFF_REMOVAL_MIGRATION,
|
|
82
83
|
READABLE_TARGET_MIGRATION,
|
|
84
|
+
SENDER_IDENTITY_MIGRATION,
|
|
83
85
|
)
|
|
84
86
|
|
|
85
87
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from .model import Migration
|
|
4
|
+
|
|
5
|
+
SENDER_IDENTITY_MIGRATION = Migration(
|
|
6
|
+
version=23,
|
|
7
|
+
name="persist_sender_identity",
|
|
8
|
+
statements=("ALTER TABLE messages ADD COLUMN sender_id TEXT",),
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
__all__ = ["SENDER_IDENTITY_MIGRATION"]
|
|
@@ -41,7 +41,7 @@ from .base import RepositoryBase
|
|
|
41
41
|
_MESSAGE_COLUMNS = (
|
|
42
42
|
"message_id, seq, direction, agent_id, session_id, channel_session_id, "
|
|
43
43
|
"channel, provider_thread_id, provider_message_id, provider_time_ms, "
|
|
44
|
-
"received_at_ms, sender, message_type, target, target_kind, "
|
|
44
|
+
"received_at_ms, sender, sender_id, message_type, target, target_kind, "
|
|
45
45
|
"reply_to_message_id, body, mentions_agent, notifies_runtime, "
|
|
46
46
|
"provider_payload_ref, command_id, delivery_state, provider_receipt_ref, created_at_ms, "
|
|
47
47
|
"provider_attempted_at_ms, completed_at_ms, error_kind, error_message, "
|
|
@@ -55,6 +55,7 @@ WITH latest_message_ranked AS (
|
|
|
55
55
|
message_id,
|
|
56
56
|
target,
|
|
57
57
|
sender,
|
|
58
|
+
sender_id,
|
|
58
59
|
provider_time_ms,
|
|
59
60
|
COALESCE(received_at_ms, created_at_ms) AS activity_at_ms,
|
|
60
61
|
ROW_NUMBER() OVER (
|
|
@@ -77,6 +78,7 @@ latest_message AS (
|
|
|
77
78
|
message_id,
|
|
78
79
|
target,
|
|
79
80
|
sender,
|
|
81
|
+
sender_id,
|
|
80
82
|
provider_time_ms,
|
|
81
83
|
activity_at_ms
|
|
82
84
|
FROM latest_message_ranked
|
|
@@ -114,6 +116,7 @@ target_catalog AS (
|
|
|
114
116
|
) AS last_activity_at_ms,
|
|
115
117
|
latest.message_id AS latest_message_id,
|
|
116
118
|
latest.sender AS latest_sender,
|
|
119
|
+
latest.sender_id AS latest_sender_id,
|
|
117
120
|
latest.provider_time_ms AS latest_provider_time_ms,
|
|
118
121
|
latest.activity_at_ms AS latest_received_at_ms
|
|
119
122
|
FROM bcn_sessions AS bcn
|
|
@@ -162,6 +165,7 @@ def _append_message_filters(
|
|
|
162
165
|
def _inbox_target_summary_from_row(row: aiosqlite.Row) -> InboxTargetSummary:
|
|
163
166
|
latest_message_id = cast(str | None, row["latest_message_id"])
|
|
164
167
|
latest_sender_name = cast(str | None, row["latest_sender"])
|
|
168
|
+
latest_sender_id = cast(str | None, row["latest_sender_id"])
|
|
165
169
|
return InboxTargetSummary(
|
|
166
170
|
target=cast(str, row["target"]),
|
|
167
171
|
session_id=cast(str, row["session_id"]),
|
|
@@ -171,8 +175,8 @@ def _inbox_target_summary_from_row(row: aiosqlite.Row) -> InboxTargetSummary:
|
|
|
171
175
|
last_activity_at_ms=cast(int, row["last_activity_at_ms"]),
|
|
172
176
|
latest_message_id=latest_message_id,
|
|
173
177
|
latest_sender=(
|
|
174
|
-
SenderIdentity(name=latest_sender_name)
|
|
175
|
-
if latest_sender_name is not None
|
|
178
|
+
SenderIdentity(id=latest_sender_id, name=latest_sender_name)
|
|
179
|
+
if latest_sender_name is not None or latest_sender_id is not None
|
|
176
180
|
else None
|
|
177
181
|
),
|
|
178
182
|
latest_provider_time_ms=cast(int | None, row["latest_provider_time_ms"]),
|
|
@@ -266,7 +270,7 @@ class MessageOperations(RepositoryBase):
|
|
|
266
270
|
rows = await self.fetchall(
|
|
267
271
|
_INBOX_TARGET_CATALOG_CTE
|
|
268
272
|
+ "SELECT target, session_id, target_kind, pending_count, "
|
|
269
|
-
"last_activity_at_ms, latest_message_id, latest_sender, "
|
|
273
|
+
"last_activity_at_ms, latest_message_id, latest_sender, latest_sender_id, "
|
|
270
274
|
"latest_provider_time_ms, latest_received_at_ms "
|
|
271
275
|
"FROM target_catalog "
|
|
272
276
|
"ORDER BY last_activity_at_ms DESC, session_id "
|
|
@@ -659,10 +663,10 @@ class MessageOperations(RepositoryBase):
|
|
|
659
663
|
"INSERT INTO messages ("
|
|
660
664
|
"message_id, seq, direction, agent_id, session_id, channel_session_id, "
|
|
661
665
|
"channel, provider_thread_id, provider_message_id, provider_time_ms, "
|
|
662
|
-
"received_at_ms, sender, message_type, target, target_kind, "
|
|
666
|
+
"received_at_ms, sender, sender_id, message_type, target, target_kind, "
|
|
663
667
|
"reply_to_message_id, body, mentions_agent, notifies_runtime, "
|
|
664
668
|
"provider_payload_ref, metadata_json"
|
|
665
|
-
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
669
|
+
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
666
670
|
(
|
|
667
671
|
canonical.message_id,
|
|
668
672
|
canonical.seq,
|
|
@@ -680,6 +684,7 @@ class MessageOperations(RepositoryBase):
|
|
|
680
684
|
if canonical.sender is not None
|
|
681
685
|
else None
|
|
682
686
|
),
|
|
687
|
+
canonical.sender.id if canonical.sender is not None else None,
|
|
683
688
|
canonical.message_type,
|
|
684
689
|
canonical.target,
|
|
685
690
|
canonical.target_kind.value,
|
|
@@ -880,11 +885,11 @@ class MessageOperations(RepositoryBase):
|
|
|
880
885
|
"INSERT INTO messages ("
|
|
881
886
|
"message_id, seq, direction, agent_id, session_id, "
|
|
882
887
|
"channel_session_id, channel, provider_thread_id, "
|
|
883
|
-
"provider_message_id, sender, message_type, target, target_kind, "
|
|
888
|
+
"provider_message_id, sender, sender_id, message_type, target, target_kind, "
|
|
884
889
|
"reply_to_message_id, body, command_id, delivery_state, "
|
|
885
890
|
"provider_receipt_ref, created_at_ms, provider_attempted_at_ms, completed_at_ms, "
|
|
886
891
|
"error_kind, error_message, metadata_json, attachments_json"
|
|
887
|
-
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
892
|
+
") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
888
893
|
(
|
|
889
894
|
canonical.message_id,
|
|
890
895
|
canonical.seq,
|
|
@@ -896,6 +901,7 @@ class MessageOperations(RepositoryBase):
|
|
|
896
901
|
canonical.provider_thread_id,
|
|
897
902
|
canonical.provider_message_id,
|
|
898
903
|
sender.display_name,
|
|
904
|
+
sender.id,
|
|
899
905
|
canonical.message_type,
|
|
900
906
|
canonical.target,
|
|
901
907
|
canonical.target_kind.value,
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/agent.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/application.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/attachments.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/command.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/config.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/transport.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/app/wrapper.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
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/approval.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/audit.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/channel.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/client.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/inbox.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/lifecycle.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
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/outcomes.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/paths.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/reminder.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/runtime.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/storage.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/core/timerwheel.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/i18n/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/i18n/catalog.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.30 → bazaar_compute_node-0.1.31}/src/bazaar_compute_node/rendering.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
|