bazaar-compute-node 0.2.1rc15__tar.gz → 0.2.2rc1__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.2.1rc15 → bazaar_compute_node-0.2.2rc1}/PKG-INFO +1 -1
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/pyproject.toml +1 -1
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/pyproject.toml.orig +1 -1
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/attachments.py +6 -26
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/wecom/channel.py +83 -32
- bazaar_compute_node-0.2.2rc1/src/bazaar_compute_node/contrib/wecom/identity.py +71 -0
- bazaar_compute_node-0.2.2rc1/src/bazaar_compute_node/contrib/wecom/topic.py +703 -0
- bazaar_compute_node-0.2.2rc1/src/bazaar_compute_node/contrib/wecom/topic_api.py +364 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/orchestrator.py +14 -2
- bazaar_compute_node-0.2.1rc15/src/bazaar_compute_node/contrib/wecom/identity.py +0 -23
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/LICENSE +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/README.md +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/agent.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/agent_management.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/application.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/command.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/config.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/health_report.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/resource_dispatch.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/server_management.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/system_service.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/transport.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/upgrade.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/usage.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/version_check.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/windows_pipe.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/app/wrapper.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/bcc.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cli.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/_client.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/_format.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/inbox.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/message.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/node.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcc/thread.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcn/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcn/_options.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcn/_runner.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcn/agent.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcn/node.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcn/server.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/cmd/bcn/service.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/client.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/events.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/inspect.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/process.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/protocol.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/claude/runtime.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/client.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/events.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/inspect.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/process.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/protocol.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/codex/runtime.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/api.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/attachments.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/channel.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/frame.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/identity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/outbound.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/lark/transport.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/logging/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/logging/audit.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/logging/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/server/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/server/audit.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/server/control.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/server/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/codec.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/database.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/executor.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/model.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v01_initial_node_schema.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v02_session_mapping_indexes.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v03_message_log_indexes.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v04_runtime_attempt_facts.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v05_inbound_message_references.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v06_inbound_message_reference_integrity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v07_inbound_provider_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v08_transient_stream_events.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v09_remove_runtime_events.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v10_add_outbound_attachments.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v11_remove_runtime_session_mapping.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v12_add_reminders.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v13_add_agent_ownership.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v14_add_inbox_discovery_indexes.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v15_add_handoffs.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v16_remove_outbound_drafts.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v17_remove_agent_identity_triggers.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v18_unify_messages.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v19_reminder_system_messages.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v20_remove_freshness_persistence.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v21_remove_handoffs.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v22_readable_targets.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v23_persist_sender_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v24_persist_sender_display_name.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v25_rename_sessions_to_threads.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v26_remove_handoff_messages.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v27_name_dms_by_the_peer_id.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v28_channel_session_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v29_backfill_channel_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v30_remove_command_id.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v31_channel_session_review.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/migrations/v32_message_search.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/reminder_codec.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/base.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/facade.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/messages.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/reminders.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/search.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/sessions.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/repository/settings.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/sqlite/storage.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/api.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/attachments.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/channel.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/identity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/markdown.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/outbound.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/telegram/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/wecom/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/wecom/outbound.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/contrib/wecom/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/actor.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/agent.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/audit.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/channel.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/client.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/command.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/concurrency.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/control.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/correlation.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/inbox.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/instruction.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/lifecycle.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/models/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/models/entities.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/models/events.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/models/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/models/reminder_owner.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/models/states.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/observability.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/commands/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/commands/base.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/commands/messages.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/commands/reminders.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/commands/review.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/delivery.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/error_feedback.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/services.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/turn.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/orchestration/upgrade_notice.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/outcomes.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/paths.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/reminder_schedule.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/review.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/runtime.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/serialize.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/storage.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/timerwheel.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/children.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/clock.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/command.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/line_reader.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/markdown.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/sanitization.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/core/utils/text.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/i18n/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/i18n/catalog.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/rendering.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/approval_no_person.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/check.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/error.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/inbox_check.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/read.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/reminder_list.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/reminder_mutation.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/reminder_schedule.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/search.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/unfollow.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/upgrade.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/bcc/version.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/command/attachment_suffix.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/command/check_message.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/command/freshness_hold.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/command/read_message.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/command/send_result.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/command/sender.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/developer_instructions.md +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/inbox_notice.tpl +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/locales/en.toml +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/locales/zh-CN.toml +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/system_service/launchd.plist +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/system_service/launchd.sh +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/system_service/supervisor.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/system_service/systemd.service +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/system_service/windows.ps1 +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/system_service/windows.vbs +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_node/resources/system_service/windows.xml +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/access.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/accounts.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/activity.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/app.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/cli.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/clock.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/config.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/configure.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/consumers.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contacts.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/model.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/v01_initial_server_schema.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/v02_refs.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/v03_roles_oidc.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/v04_login_order.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/v05_provider_description.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/v06_provider_default_role.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/migrations/v07_oidc_session_settings.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/contrib/sqlite/storage.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/control.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/fleet.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/gate.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/history.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/i18n.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/images.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/markdown.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/accounts.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/agents.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/computers.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/login.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/oidc.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/oidc_login.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/poll.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/profile.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/roles.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/settings.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/pages/shares.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/permissions.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/poll_rendering.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/polling.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/protocol.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/reauth.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/refs.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/rendering.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/locales/en.toml +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/locales/zh-CN.toml +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/THIRD_PARTY.md +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/agent-form.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/alpine-3.17.4.min.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/alpine-LICENSE.txt +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/alpine-collapse-3.17.4.min.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/alpine-collapse-LICENSE.txt +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/alpine-focus-3.17.4.min.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/alpine-focus-LICENSE.txt +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/app.css +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/app.webmanifest +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/apple-touch-icon.png +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/components.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/favicon.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/htmx-LICENSE.txt +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/htmx.min.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/hx-alpine-compat-4.0.0.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/icon-192.png +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/icon-512.png +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/static/poll.js +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/activity_card.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_contacts_head.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_form.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_kinds.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_list.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_models.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_new.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_activity.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_config.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_events.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_files.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_head.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_sharing.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_skills.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_status.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_profile_workspace.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_remove.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_row.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agent_rows.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/agents.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/board.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/chat.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/code.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/components.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/computer_detail.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/computer_list.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/computer_row.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/computer_rows.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/computers.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/contact_rows.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/contacts.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/conversation_reminders.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/enrol_form.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/enrolled.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/error.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/history.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/history_end.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/history_rows.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/history_tail.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/alarm-clock.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/arrow-down.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/arrow-left.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/arrow-right.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/arrow-up.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/calendar.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/check.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/chevron-down.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/chevron-left.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/chevron-right.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/chevron-up.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/chevrons-down.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/copy.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/file.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/folder.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/grid-2x2.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/key-round.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/languages.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/lark.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/loader.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/log-out.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/message-circle.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/message-square-text.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/monitor.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/openai.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/paperclip.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/pencil.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/plus.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/repeat.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/rotate-cw.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/search.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/settings.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/si-apple.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/si-claude.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/si-linux.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/si-telegram.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/sun-moon.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/trash-2.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/triangle-alert.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/unplug.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/user-plus.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/users.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/wecom.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/icons/x.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/image.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/login.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/login_form.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/password_form.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/presence.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/profile.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/rail.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/remove_ask.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/remove_form.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/review_card.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/scripts.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/search.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/search_results.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/settings.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/settings_accounts.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/settings_appearance.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/settings_oidc.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/settings_roles.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/settings_security.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/shares.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/shell.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/sign.svg +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/resources/templates/unreachable.html +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/review.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/search.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/secrets.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/sessions.py +0 -0
- {bazaar_compute_node-0.2.1rc15 → bazaar_compute_node-0.2.2rc1}/src/bazaar_compute_server/storage.py +0 -0
|
@@ -21,12 +21,10 @@ class AttachmentMaterializer:
|
|
|
21
21
|
referenced_paths: Callable[[], Awaitable[set[str]]],
|
|
22
22
|
*,
|
|
23
23
|
max_file_bytes: int = 25 * 1024 * 1024,
|
|
24
|
-
max_workspace_bytes: int = 1024 * 1024 * 1024,
|
|
25
24
|
) -> None:
|
|
26
25
|
self._workspace = workspace
|
|
27
26
|
self._referenced_paths = referenced_paths
|
|
28
27
|
self._max_file_bytes = max_file_bytes
|
|
29
|
-
self._max_workspace_bytes = max_workspace_bytes
|
|
30
28
|
self._lock = asyncio.Lock()
|
|
31
29
|
|
|
32
30
|
async def reconcile(self) -> None:
|
|
@@ -66,11 +64,9 @@ class AttachmentMaterializer:
|
|
|
66
64
|
source: bytes | AsyncIterable[bytes],
|
|
67
65
|
temporary: Path,
|
|
68
66
|
destination: Path,
|
|
69
|
-
root: Path,
|
|
70
67
|
) -> int:
|
|
71
68
|
"""Write an attachment aside, then move it into place once it is whole."""
|
|
72
69
|
|
|
73
|
-
current_size = await asyncio.to_thread(self._stored_size, root)
|
|
74
70
|
descriptor: int | None = None
|
|
75
71
|
try:
|
|
76
72
|
descriptor = await asyncio.to_thread(
|
|
@@ -80,7 +76,7 @@ class AttachmentMaterializer:
|
|
|
80
76
|
0o600,
|
|
81
77
|
)
|
|
82
78
|
try:
|
|
83
|
-
size = await self._write(descriptor, source
|
|
79
|
+
size = await self._write(descriptor, source)
|
|
84
80
|
await asyncio.to_thread(os.fsync, descriptor)
|
|
85
81
|
stored = await asyncio.to_thread(os.fstat, descriptor)
|
|
86
82
|
if stored.st_size != size:
|
|
@@ -107,12 +103,12 @@ class AttachmentMaterializer:
|
|
|
107
103
|
self,
|
|
108
104
|
descriptor: int,
|
|
109
105
|
source: bytes | AsyncIterable[bytes],
|
|
110
|
-
current_size: int,
|
|
111
106
|
) -> int:
|
|
112
107
|
"""Write the source through, refusing it the moment it goes over a limit."""
|
|
113
108
|
|
|
114
109
|
if isinstance(source, bytes):
|
|
115
|
-
|
|
110
|
+
if len(source) > self._max_file_bytes:
|
|
111
|
+
raise ValueError("attachment exceeds the per-file size limit")
|
|
116
112
|
await asyncio.to_thread(_write_all, descriptor, source)
|
|
117
113
|
return len(source)
|
|
118
114
|
size = 0
|
|
@@ -120,16 +116,11 @@ class AttachmentMaterializer:
|
|
|
120
116
|
if not isinstance(chunk, bytes):
|
|
121
117
|
raise TypeError("attachment stream must yield bytes")
|
|
122
118
|
size += len(chunk)
|
|
123
|
-
self.
|
|
119
|
+
if size > self._max_file_bytes:
|
|
120
|
+
raise ValueError("attachment exceeds the per-file size limit")
|
|
124
121
|
await asyncio.to_thread(_write_all, descriptor, chunk)
|
|
125
122
|
return size
|
|
126
123
|
|
|
127
|
-
def _check_room(self, size: int, current_size: int) -> None:
|
|
128
|
-
if size > self._max_file_bytes:
|
|
129
|
-
raise ValueError("attachment exceeds the per-file size limit")
|
|
130
|
-
if current_size + size > self._max_workspace_bytes:
|
|
131
|
-
raise ValueError("attachment workspace quota exceeded")
|
|
132
|
-
|
|
133
124
|
async def materialize(
|
|
134
125
|
self,
|
|
135
126
|
source: bytes | AsyncIterable[bytes],
|
|
@@ -153,7 +144,7 @@ class AttachmentMaterializer:
|
|
|
153
144
|
await asyncio.to_thread(
|
|
154
145
|
staging.mkdir, parents=True, exist_ok=True, mode=0o700
|
|
155
146
|
)
|
|
156
|
-
size = await self._stage(source, temporary, destination
|
|
147
|
+
size = await self._stage(source, temporary, destination)
|
|
157
148
|
return InboundAttachment(
|
|
158
149
|
attachment_id=attachment_id,
|
|
159
150
|
name=Path(name).name,
|
|
@@ -181,17 +172,6 @@ class AttachmentMaterializer:
|
|
|
181
172
|
error=error,
|
|
182
173
|
)
|
|
183
174
|
|
|
184
|
-
@staticmethod
|
|
185
|
-
def _stored_size(root: Path) -> int:
|
|
186
|
-
if not root.exists():
|
|
187
|
-
return 0
|
|
188
|
-
return sum(
|
|
189
|
-
path.stat().st_size
|
|
190
|
-
for pattern in ("*/content", "*/content.*")
|
|
191
|
-
for path in root.glob(pattern)
|
|
192
|
-
if path.is_file() and not path.is_symlink()
|
|
193
|
-
)
|
|
194
|
-
|
|
195
175
|
|
|
196
176
|
def _write_all(descriptor: int, payload: bytes) -> None:
|
|
197
177
|
view = memoryview(payload)
|
|
@@ -43,7 +43,7 @@ from ...core.timerwheel import TimerWheel
|
|
|
43
43
|
from ...core.utils.clock import remaining
|
|
44
44
|
from ...core.utils.markdown import split_markdown, utf8_bytes
|
|
45
45
|
from ...i18n import ENGLISH, Translator, create_translator
|
|
46
|
-
from .identity import conversation_thread_id, parse_provider_thread_id
|
|
46
|
+
from .identity import TopicAddress, conversation_thread_id, parse_provider_thread_id
|
|
47
47
|
from .outbound import (
|
|
48
48
|
AttachmentReader,
|
|
49
49
|
PreparedAttachment,
|
|
@@ -52,6 +52,7 @@ from .outbound import (
|
|
|
52
52
|
prepare_attachments,
|
|
53
53
|
visible_message_body,
|
|
54
54
|
)
|
|
55
|
+
from .topic import TopicConversations
|
|
55
56
|
|
|
56
57
|
_STOP = object()
|
|
57
58
|
_MAX_MEDIA_BYTES = 25 * 1024 * 1024
|
|
@@ -198,6 +199,13 @@ class WeComChannel(IChannel):
|
|
|
198
199
|
self._logger.addHandler(logging.StreamHandler())
|
|
199
200
|
self._logger.setLevel(logging.INFO)
|
|
200
201
|
self._logger.propagate = False
|
|
202
|
+
self._topics = TopicConversations(
|
|
203
|
+
context,
|
|
204
|
+
bot_id=bot_id,
|
|
205
|
+
secret=secret,
|
|
206
|
+
emit=self._inbound.put,
|
|
207
|
+
logger=self._logger,
|
|
208
|
+
)
|
|
201
209
|
|
|
202
210
|
@property
|
|
203
211
|
def name(self) -> str:
|
|
@@ -241,6 +249,7 @@ class WeComChannel(IChannel):
|
|
|
241
249
|
self._startup_finished.clear()
|
|
242
250
|
self._startup_error = None
|
|
243
251
|
self._state = "connecting"
|
|
252
|
+
self._topics.start()
|
|
244
253
|
self._runner = asyncio.create_task(self._run(), name="bcn-wecom-channel")
|
|
245
254
|
try:
|
|
246
255
|
await asyncio.wait_for(self._startup_finished.wait(), timeout=timeout)
|
|
@@ -249,46 +258,57 @@ class WeComChannel(IChannel):
|
|
|
249
258
|
self._runner.cancel()
|
|
250
259
|
await asyncio.gather(self._runner, return_exceptions=True)
|
|
251
260
|
self._runner = None
|
|
261
|
+
await self._topics.stop(timeout=timeout)
|
|
252
262
|
self._state = "stopped"
|
|
253
263
|
raise
|
|
254
264
|
if self._startup_error is not None:
|
|
265
|
+
await self._topics.stop(timeout=timeout)
|
|
255
266
|
raise self._startup_error
|
|
256
267
|
|
|
257
268
|
async def stop(self, *, timeout: float) -> None:
|
|
258
269
|
self._stopping.set()
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
ApprovalResult(
|
|
264
|
-
request_id=pending.request.approval.request_id,
|
|
265
|
-
decision=ApprovalDecision.REJECTED,
|
|
266
|
-
decided_at_ms=decided_at_ms,
|
|
267
|
-
reason="channel_stopped",
|
|
268
|
-
)
|
|
269
|
-
)
|
|
270
|
-
self._pending_approvals.clear()
|
|
271
|
-
self._approval_task_ids_by_request.clear()
|
|
272
|
-
await self._cancel_approval_card_updates()
|
|
270
|
+
deadline = asyncio.get_running_loop().time() + timeout
|
|
271
|
+
shutdown = asyncio.create_task(
|
|
272
|
+
self._topics.stop(timeout=timeout), name="bcn-wecom-topics-stop"
|
|
273
|
+
)
|
|
273
274
|
try:
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
275
|
+
decided_at_ms = time_ns() // 1_000_000
|
|
276
|
+
for pending in tuple(self._pending_approvals.values()):
|
|
277
|
+
if not pending.future.done():
|
|
278
|
+
pending.future.set_result(
|
|
279
|
+
ApprovalResult(
|
|
280
|
+
request_id=pending.request.approval.request_id,
|
|
281
|
+
decision=ApprovalDecision.REJECTED,
|
|
282
|
+
decided_at_ms=decided_at_ms,
|
|
283
|
+
reason="channel_stopped",
|
|
284
|
+
)
|
|
285
|
+
)
|
|
286
|
+
self._pending_approvals.clear()
|
|
287
|
+
self._approval_task_ids_by_request.clear()
|
|
288
|
+
await self._cancel_approval_card_updates()
|
|
284
289
|
try:
|
|
285
|
-
await asyncio.wait_for(
|
|
290
|
+
await asyncio.wait_for(
|
|
291
|
+
self._send_lock.acquire(), timeout=remaining(deadline)
|
|
292
|
+
)
|
|
286
293
|
except TimeoutError:
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
294
|
+
pass
|
|
295
|
+
else:
|
|
296
|
+
self._send_lock.release()
|
|
297
|
+
connection = self._connection
|
|
298
|
+
if connection is not None:
|
|
299
|
+
await connection.close()
|
|
300
|
+
runner = self._runner
|
|
301
|
+
if runner is not None:
|
|
302
|
+
try:
|
|
303
|
+
await asyncio.wait_for(runner, timeout=remaining(deadline))
|
|
304
|
+
except TimeoutError:
|
|
305
|
+
runner.cancel()
|
|
306
|
+
await asyncio.gather(runner, return_exceptions=True)
|
|
307
|
+
finally:
|
|
308
|
+
self._runner = None
|
|
309
|
+
await shutdown
|
|
310
|
+
self._state = "stopped"
|
|
311
|
+
await self._inbound.put(_STOP)
|
|
292
312
|
|
|
293
313
|
async def receive(self) -> AsyncIterator[Message]:
|
|
294
314
|
while True:
|
|
@@ -510,6 +530,24 @@ class WeComChannel(IChannel):
|
|
|
510
530
|
async def send(
|
|
511
531
|
self, request: ChannelSendRequest, *, timeout: float
|
|
512
532
|
) -> ProviderCallResult[ChannelDeliveryReceipt]:
|
|
533
|
+
try:
|
|
534
|
+
address = TopicAddress.parse(request.provider_thread_id)
|
|
535
|
+
if address is not None and address.bot_id != self._bot_id:
|
|
536
|
+
raise ValueError("WeCom topic belongs to another bot")
|
|
537
|
+
except ValueError as error:
|
|
538
|
+
return ProviderCallResult(
|
|
539
|
+
status=ProviderCallStatus.FAILED,
|
|
540
|
+
error_kind="invalid_topic_target",
|
|
541
|
+
error_message=str(error),
|
|
542
|
+
)
|
|
543
|
+
if address is not None:
|
|
544
|
+
if self._stopping.is_set():
|
|
545
|
+
return ProviderCallResult(
|
|
546
|
+
status=ProviderCallStatus.FAILED,
|
|
547
|
+
error_kind="channel_stopped",
|
|
548
|
+
error_message="WeCom channel is stopping",
|
|
549
|
+
)
|
|
550
|
+
return await self._topics.send(request, address, timeout=timeout)
|
|
513
551
|
_, target_id = parse_provider_thread_id(request.provider_thread_id)
|
|
514
552
|
try:
|
|
515
553
|
batches = (
|
|
@@ -945,6 +983,13 @@ class WeComChannel(IChannel):
|
|
|
945
983
|
async def request_approval(
|
|
946
984
|
self, request: ChannelApprovalRequest, *, timeout: float
|
|
947
985
|
) -> ApprovalResult:
|
|
986
|
+
if TopicAddress.parse(request.provider_thread_id) is not None:
|
|
987
|
+
return ApprovalResult(
|
|
988
|
+
request_id=request.approval.request_id,
|
|
989
|
+
decision=ApprovalDecision.REJECTED,
|
|
990
|
+
decided_at_ms=time_ns() // 1_000_000,
|
|
991
|
+
reason="WeCom native topics do not support approval cards",
|
|
992
|
+
)
|
|
948
993
|
request_id = request.approval.request_id
|
|
949
994
|
if timeout <= 0:
|
|
950
995
|
raise TimeoutError("WeCom approval card delivery timed out")
|
|
@@ -1375,7 +1420,7 @@ class WeComChannel(IChannel):
|
|
|
1375
1420
|
return False
|
|
1376
1421
|
|
|
1377
1422
|
async def _receive_event(self, frame: Mapping[str, object]) -> None:
|
|
1378
|
-
"""
|
|
1423
|
+
"""Route native topic events and ordinary chat approval decisions."""
|
|
1379
1424
|
|
|
1380
1425
|
body = frame.get("body")
|
|
1381
1426
|
event = body.get("event") if isinstance(body, dict) else None
|
|
@@ -1387,6 +1432,8 @@ class WeComChannel(IChannel):
|
|
|
1387
1432
|
"wecom.event.received",
|
|
1388
1433
|
event_type=self._last_event_type,
|
|
1389
1434
|
)
|
|
1435
|
+
if isinstance(body, dict) and self._topics.receive(body):
|
|
1436
|
+
return
|
|
1390
1437
|
if (
|
|
1391
1438
|
self._last_event_type == "template_card_event"
|
|
1392
1439
|
and isinstance(event, dict)
|
|
@@ -1408,6 +1455,10 @@ class WeComChannel(IChannel):
|
|
|
1408
1455
|
if not isinstance(body, dict):
|
|
1409
1456
|
self._filter_message("invalid_body")
|
|
1410
1457
|
return
|
|
1458
|
+
compatibility = body.get("compat_info")
|
|
1459
|
+
if isinstance(compatibility, dict) and compatibility.get("source") == "channel":
|
|
1460
|
+
self._filter_message("native_topic_projection")
|
|
1461
|
+
return
|
|
1411
1462
|
route = self._route(body)
|
|
1412
1463
|
if route is None:
|
|
1413
1464
|
return
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from urllib.parse import quote, unquote
|
|
5
|
+
|
|
6
|
+
_PROVIDER_PREFIX = "wecom"
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def conversation_thread_id(bot_id: str, conversation: str) -> str:
|
|
10
|
+
"""Address a conversation by the bot it lives on and WeCom's own chat id."""
|
|
11
|
+
|
|
12
|
+
return f"{_PROVIDER_PREFIX}:{bot_id}:{conversation}"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def parse_provider_thread_id(value: str) -> tuple[str, str]:
|
|
16
|
+
"""Split a provider thread id back into the bot id and the WeCom chat id."""
|
|
17
|
+
|
|
18
|
+
if not isinstance(value, str) or not value:
|
|
19
|
+
raise ValueError("WeCom provider_thread_id must be non-empty")
|
|
20
|
+
parts = value.split(":", 2)
|
|
21
|
+
if len(parts) != 3 or parts[0] != _PROVIDER_PREFIX or not parts[1] or not parts[2]:
|
|
22
|
+
raise ValueError("WeCom provider_thread_id has invalid format")
|
|
23
|
+
return parts[1], parts[2]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@dataclass(frozen=True, slots=True)
|
|
27
|
+
class TopicAddress:
|
|
28
|
+
bot_id: str
|
|
29
|
+
topic_id: str
|
|
30
|
+
post_id: str | None = None
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def provider_thread_id(self) -> str:
|
|
34
|
+
value = (
|
|
35
|
+
f"wecom:{quote(self.bot_id, safe='')}:topic:{quote(self.topic_id, safe='')}"
|
|
36
|
+
)
|
|
37
|
+
if self.post_id is not None:
|
|
38
|
+
value += f":post:{quote(self.post_id, safe='')}"
|
|
39
|
+
return value
|
|
40
|
+
|
|
41
|
+
@classmethod
|
|
42
|
+
def parse(cls, value: str) -> TopicAddress | None:
|
|
43
|
+
parts = value.split(":")
|
|
44
|
+
if len(parts) not in {4, 6} or parts[0] != "wecom" or parts[2] != "topic":
|
|
45
|
+
return None
|
|
46
|
+
if not parts[1] or not parts[3]:
|
|
47
|
+
raise ValueError("WeCom topic address requires a bot and channel")
|
|
48
|
+
if len(parts) == 6 and (parts[4] != "post" or not parts[5]):
|
|
49
|
+
raise ValueError("WeCom topic address requires a post id")
|
|
50
|
+
return cls(
|
|
51
|
+
unquote(parts[1]),
|
|
52
|
+
unquote(parts[3]),
|
|
53
|
+
unquote(parts[5]) if len(parts) == 6 else None,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def post_message_id(post_id: str) -> str:
|
|
58
|
+
return "post:" + quote(post_id, safe="")
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def reply_message_id(post_id: str, reply_id: str) -> str:
|
|
62
|
+
return "reply:" + quote(post_id, safe="") + ":" + quote(reply_id, safe="")
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
__all__ = [
|
|
66
|
+
"TopicAddress",
|
|
67
|
+
"conversation_thread_id",
|
|
68
|
+
"parse_provider_thread_id",
|
|
69
|
+
"post_message_id",
|
|
70
|
+
"reply_message_id",
|
|
71
|
+
]
|