bazaar-compute-node 0.1.32__tar.gz → 0.1.33__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.32 → bazaar_compute_node-0.1.33}/PKG-INFO +1 -1
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/pyproject.toml +1 -1
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/pyproject.toml.orig +1 -1
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/repository/reminders.py +54 -58
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/reminder.py +66 -39
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/storage.py +9 -6
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/LICENSE +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/README.md +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/agent.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/agent_management.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/application.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/attachments.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/command.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/config.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/registry.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/resource_dispatch.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/system_service.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/transport.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/windows_pipe.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/wrapper.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/bcc.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/cli.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/approval.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/client.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/events.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/plugin.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/process.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/protocol.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/claude/runtime.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/approval.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/client.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/events.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/plugin.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/process.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/protocol.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/codex/runtime.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/api.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/approval.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/attachments.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/channel.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/frame.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/identity.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/outbound.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/plugin.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/lark/transport.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/logging/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/logging/audit.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/logging/plugin.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/codec.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/database.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/executor.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/model.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/registry.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v01_initial_node_schema.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v02_session_mapping_indexes.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v03_message_log_indexes.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v04_runtime_attempt_facts.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v05_inbound_message_references.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v06_inbound_message_reference_integrity.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v07_inbound_provider_identity.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v08_transient_stream_events.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v09_remove_runtime_events.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v10_add_outbound_attachments.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v11_remove_runtime_session_mapping.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v12_add_reminders.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v13_add_agent_ownership.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v14_add_inbox_discovery_indexes.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v15_add_handoffs.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v16_remove_outbound_drafts.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v17_remove_agent_identity_triggers.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v18_unify_messages.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v19_reminder_system_messages.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v20_remove_freshness_persistence.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v21_remove_handoffs.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v22_readable_targets.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/migrations/v23_persist_sender_identity.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/plugin.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/reminder_codec.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/repository/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/repository/base.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/repository/facade.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/repository/messages.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/repository/sessions.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/sqlite/storage.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/api.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/approval.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/attachments.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/channel.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/identity.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/markdown.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/outbound.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/telegram/plugin.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/wecom/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/wecom/channel.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/wecom/markdown.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/wecom/outbound.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/contrib/wecom/plugin.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/approval.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/audit.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/channel.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/client.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/command.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/concurrency.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/correlation.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/inbox.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/instruction.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/lifecycle.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/models/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/models/entities.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/models/reminder.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/models/reminder_owner.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/models/states.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/observability.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/command.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/delivery.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/error_feedback.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/reminder_command.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/services.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/session.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/orchestration/turn.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/outcomes.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/paths.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/reminder.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/reminder_schedule.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/runtime.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/timerwheel.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/utils/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/utils/line_reader.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/i18n/__init__.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/i18n/catalog.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/rendering.py +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/developer_instructions.md +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/locales/en.toml +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/locales/zh-CN.toml +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/system_service/launchd.plist +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/system_service/launchd.sh +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/system_service/systemd.service +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/system_service/windows.ps1 +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/system_service/windows.vbs +0 -0
- {bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/resources/system_service/windows.xml +0 -0
|
@@ -10,10 +10,8 @@ from ....core.models import (
|
|
|
10
10
|
OwnedReminder,
|
|
11
11
|
Reminder,
|
|
12
12
|
ReminderState,
|
|
13
|
-
SenderKind,
|
|
14
|
-
SystemMessageKind,
|
|
15
13
|
)
|
|
16
|
-
from ....core.reminder import canonical_id_reference
|
|
14
|
+
from ....core.reminder import canonical_id_reference
|
|
17
15
|
from ..codec import (
|
|
18
16
|
_required_text,
|
|
19
17
|
)
|
|
@@ -196,6 +194,49 @@ class ReminderOperations(RepositoryBase):
|
|
|
196
194
|
await self._update_reminder(reminder)
|
|
197
195
|
return reminder
|
|
198
196
|
|
|
197
|
+
async def save_owned_reminder_transition(
|
|
198
|
+
self,
|
|
199
|
+
expected_revision: int,
|
|
200
|
+
reminder: OwnedReminder,
|
|
201
|
+
) -> Reminder | None:
|
|
202
|
+
"""Retire one Reminder, or report that its state moved before the write."""
|
|
203
|
+
|
|
204
|
+
incoming = reminder.reminder
|
|
205
|
+
existing_owned = await self.get_owned_reminder(
|
|
206
|
+
reminder.agent_id,
|
|
207
|
+
incoming.owner_session_id,
|
|
208
|
+
incoming.reminder_id,
|
|
209
|
+
)
|
|
210
|
+
if existing_owned is None:
|
|
211
|
+
return None
|
|
212
|
+
existing = existing_owned.reminder
|
|
213
|
+
if existing.revision != expected_revision:
|
|
214
|
+
return None
|
|
215
|
+
if existing.state is ReminderState.CANCELED:
|
|
216
|
+
return None
|
|
217
|
+
await self.execute(
|
|
218
|
+
"UPDATE reminders SET title = ?, state = ?, next_fire_at_ms = ?, "
|
|
219
|
+
"repeat_rule = ?, timezone = ?, revision = ?, last_occurrence_no = ?, "
|
|
220
|
+
"updated_at_ms = ?, last_fired_at_ms = ?, canceled_at_ms = ? "
|
|
221
|
+
"WHERE agent_id = ? AND reminder_id = ? AND owner_session_id = ?",
|
|
222
|
+
(
|
|
223
|
+
incoming.title,
|
|
224
|
+
incoming.state.value,
|
|
225
|
+
incoming.next_fire_at_ms,
|
|
226
|
+
incoming.repeat_rule,
|
|
227
|
+
incoming.timezone,
|
|
228
|
+
incoming.revision,
|
|
229
|
+
incoming.last_occurrence_no,
|
|
230
|
+
incoming.updated_at_ms,
|
|
231
|
+
incoming.last_fired_at_ms,
|
|
232
|
+
incoming.canceled_at_ms,
|
|
233
|
+
reminder.agent_id,
|
|
234
|
+
incoming.reminder_id,
|
|
235
|
+
incoming.owner_session_id,
|
|
236
|
+
),
|
|
237
|
+
)
|
|
238
|
+
return incoming
|
|
239
|
+
|
|
199
240
|
async def get_owned_reminder(
|
|
200
241
|
self,
|
|
201
242
|
agent_id: str,
|
|
@@ -214,7 +255,7 @@ class ReminderOperations(RepositoryBase):
|
|
|
214
255
|
return self._owned_reminder_from_row(row) if row is not None else None
|
|
215
256
|
|
|
216
257
|
async def get_next_scheduled_owned_reminder(self) -> OwnedReminder | None:
|
|
217
|
-
predicates = ["state = ?"]
|
|
258
|
+
predicates = ["state = ?", "next_fire_at_ms IS NOT NULL"]
|
|
218
259
|
parameters: list[object] = [ReminderState.SCHEDULED.value]
|
|
219
260
|
bound_agent_id = self._bound_agent_id()
|
|
220
261
|
if bound_agent_id is not None:
|
|
@@ -253,7 +294,9 @@ class ReminderOperations(RepositoryBase):
|
|
|
253
294
|
expected_revision: int,
|
|
254
295
|
reminder: OwnedReminder,
|
|
255
296
|
system_message: Message[InboundAttachment],
|
|
256
|
-
) -> Message[InboundAttachment]:
|
|
297
|
+
) -> Message[InboundAttachment] | None:
|
|
298
|
+
"""Fire one Reminder, or report that its state moved before the write."""
|
|
299
|
+
|
|
257
300
|
incoming = reminder.reminder
|
|
258
301
|
existing_owned = await self.get_owned_reminder(
|
|
259
302
|
reminder.agent_id,
|
|
@@ -261,48 +304,16 @@ class ReminderOperations(RepositoryBase):
|
|
|
261
304
|
incoming.reminder_id,
|
|
262
305
|
)
|
|
263
306
|
if existing_owned is None:
|
|
264
|
-
|
|
307
|
+
return None
|
|
265
308
|
existing = existing_owned.reminder
|
|
266
|
-
|
|
267
|
-
|
|
309
|
+
if existing.revision != expected_revision:
|
|
310
|
+
return None
|
|
268
311
|
if existing.state is not ReminderState.SCHEDULED:
|
|
269
|
-
|
|
270
|
-
if incoming.revision != expected_revision + 1:
|
|
271
|
-
raise ValueError("reminder revision must advance by exactly one")
|
|
272
|
-
if incoming.last_occurrence_no != existing.last_occurrence_no + 1:
|
|
273
|
-
raise ValueError("reminder occurrence number must advance by exactly one")
|
|
274
|
-
if incoming.last_fired_at_ms is None:
|
|
275
|
-
raise ValueError("fired reminder requires a fire time")
|
|
276
|
-
scheduled_for_ms = existing.next_fire_at_ms
|
|
277
|
-
if scheduled_for_ms is None:
|
|
278
|
-
raise RuntimeError("scheduled reminder has no next fire time")
|
|
279
|
-
if incoming.last_fired_at_ms < scheduled_for_ms:
|
|
280
|
-
raise ValueError("reminder fire time precedes its scheduled slot")
|
|
281
|
-
if (
|
|
282
|
-
incoming.repeat_rule is not None
|
|
283
|
-
and incoming.next_fire_at_ms is not None
|
|
284
|
-
and incoming.next_fire_at_ms <= scheduled_for_ms
|
|
285
|
-
):
|
|
286
|
-
raise ValueError("recurring next fire must follow the scheduled slot")
|
|
287
|
-
if incoming.updated_at_ms != incoming.last_fired_at_ms:
|
|
288
|
-
raise ValueError("reminder update time does not match fire time")
|
|
289
|
-
if incoming.title != existing.title:
|
|
290
|
-
raise ValueError("fire cannot change reminder title")
|
|
291
|
-
if incoming.repeat_rule != existing.repeat_rule:
|
|
292
|
-
raise ValueError("fire cannot change reminder cadence")
|
|
293
|
-
if system_message.sender_kind is not SenderKind.SYSTEM:
|
|
294
|
-
raise ValueError("reminder fire requires a system message")
|
|
295
|
-
if system_message.system_message_kind is not SystemMessageKind.REMINDER:
|
|
296
|
-
raise ValueError("reminder fire requires reminder system metadata")
|
|
297
|
-
if system_message.session_id != incoming.owner_session_id:
|
|
298
|
-
raise ValueError("system message owner binding does not match reminder")
|
|
299
|
-
if system_message.received_at_ms != incoming.last_fired_at_ms:
|
|
300
|
-
raise ValueError("system message time does not match reminder fire")
|
|
312
|
+
return None
|
|
301
313
|
anchor = await self.fetchone(
|
|
302
314
|
"SELECT channel_session_id, channel, provider_thread_id, target, "
|
|
303
315
|
"target_kind FROM messages WHERE agent_id = ? AND session_id = ? "
|
|
304
|
-
"AND message_id = ? AND direction = 'inbound'
|
|
305
|
-
"AND provider_message_id IS NOT NULL",
|
|
316
|
+
"AND message_id = ? AND direction = 'inbound'",
|
|
306
317
|
(
|
|
307
318
|
reminder.agent_id,
|
|
308
319
|
incoming.owner_session_id,
|
|
@@ -310,22 +321,7 @@ class ReminderOperations(RepositoryBase):
|
|
|
310
321
|
),
|
|
311
322
|
)
|
|
312
323
|
if anchor is None:
|
|
313
|
-
|
|
314
|
-
if (
|
|
315
|
-
system_message.channel_session_id != anchor["channel_session_id"]
|
|
316
|
-
or system_message.channel != anchor["channel"]
|
|
317
|
-
or system_message.provider_thread_id != anchor["provider_thread_id"]
|
|
318
|
-
or system_message.target != anchor["target"]
|
|
319
|
-
or system_message.target_kind.value != anchor["target_kind"]
|
|
320
|
-
):
|
|
321
|
-
raise ValueError("system message binding does not match reminder anchor")
|
|
322
|
-
expected_body = render_reminder_fire_body(
|
|
323
|
-
incoming,
|
|
324
|
-
system_message.target,
|
|
325
|
-
incoming.next_fire_at_ms,
|
|
326
|
-
)
|
|
327
|
-
if system_message.body != expected_body:
|
|
328
|
-
raise ValueError("system message body does not match reminder fire")
|
|
324
|
+
return None
|
|
329
325
|
|
|
330
326
|
await self.execute(
|
|
331
327
|
"UPDATE reminders SET title = ?, state = ?, next_fire_at_ms = ?, "
|
|
@@ -13,6 +13,7 @@ from ..models import (
|
|
|
13
13
|
Message,
|
|
14
14
|
MessageDirection,
|
|
15
15
|
OwnedReminder,
|
|
16
|
+
Reminder,
|
|
16
17
|
ReminderState,
|
|
17
18
|
SenderIdentity,
|
|
18
19
|
SenderKind,
|
|
@@ -28,6 +29,7 @@ from ..timerwheel import (
|
|
|
28
29
|
)
|
|
29
30
|
|
|
30
31
|
_WALL_CLOCK_RECHECK_MS = 60_000
|
|
32
|
+
_CYCLE_RETRY_MS = 5_000
|
|
31
33
|
_DUE_BATCH_SIZE = 100
|
|
32
34
|
|
|
33
35
|
|
|
@@ -123,8 +125,8 @@ class ReminderScheduler(IAsyncLifecycle):
|
|
|
123
125
|
await self._failure.wait()
|
|
124
126
|
|
|
125
127
|
async def _run(self) -> None:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
while not self._stopping:
|
|
129
|
+
try:
|
|
128
130
|
await self._materialize_due_batches()
|
|
129
131
|
if self._stopping:
|
|
130
132
|
return
|
|
@@ -135,9 +137,9 @@ class ReminderScheduler(IAsyncLifecycle):
|
|
|
135
137
|
continue
|
|
136
138
|
next_fire_at_ms = frontier.reminder.next_fire_at_ms
|
|
137
139
|
if next_fire_at_ms is None:
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
140
|
+
await self._poke.wait()
|
|
141
|
+
self._poke.clear()
|
|
142
|
+
continue
|
|
141
143
|
remaining_ms = next_fire_at_ms - self._clock()
|
|
142
144
|
if remaining_ms <= 0:
|
|
143
145
|
await asyncio.sleep(0)
|
|
@@ -148,11 +150,18 @@ class ReminderScheduler(IAsyncLifecycle):
|
|
|
148
150
|
_WALL_CLOCK_RECHECK_MS,
|
|
149
151
|
)
|
|
150
152
|
await self._wait_for_frontier(delay_ms)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
except asyncio.CancelledError:
|
|
154
|
+
raise
|
|
155
|
+
except Exception:
|
|
156
|
+
self._logger.exception("reminder cycle failed; retrying")
|
|
157
|
+
try:
|
|
158
|
+
await asyncio.wait_for(
|
|
159
|
+
self._poke.wait(),
|
|
160
|
+
_CYCLE_RETRY_MS / 1_000,
|
|
161
|
+
)
|
|
162
|
+
except TimeoutError:
|
|
163
|
+
pass
|
|
164
|
+
self._poke.clear()
|
|
156
165
|
|
|
157
166
|
async def _wait_for_frontier(self, delay_ms: int) -> None:
|
|
158
167
|
timer = self._timer_wheel.create(delay_ms)
|
|
@@ -234,7 +243,7 @@ class ReminderScheduler(IAsyncLifecycle):
|
|
|
234
243
|
return None
|
|
235
244
|
scheduled_for_ms = current.next_fire_at_ms
|
|
236
245
|
if scheduled_for_ms is None:
|
|
237
|
-
|
|
246
|
+
return None
|
|
238
247
|
fired_at_ms = self._clock()
|
|
239
248
|
if fired_at_ms < scheduled_for_ms:
|
|
240
249
|
return None
|
|
@@ -250,21 +259,13 @@ class ReminderScheduler(IAsyncLifecycle):
|
|
|
250
259
|
)
|
|
251
260
|
except asyncio.CancelledError:
|
|
252
261
|
raise
|
|
253
|
-
except Exception as error:
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
current
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
"reminder recurrence is invalid; reminder canceled",
|
|
261
|
-
extra={
|
|
262
|
-
"agent_id": owner.agent_id,
|
|
263
|
-
"owner_session_id": current.owner_session_id,
|
|
264
|
-
"reminder_id": current.reminder_id,
|
|
265
|
-
"error_type": type(error).__name__,
|
|
266
|
-
},
|
|
267
|
-
exc_info=(type(error), error, error.__traceback__),
|
|
262
|
+
except Exception as error: # noqa: BLE001
|
|
263
|
+
await self._cancel_unusable_reminder(
|
|
264
|
+
owner.agent_id,
|
|
265
|
+
current,
|
|
266
|
+
"reminder recurrence is invalid",
|
|
267
|
+
at_ms=fired_at_ms,
|
|
268
|
+
error=error,
|
|
268
269
|
)
|
|
269
270
|
return None
|
|
270
271
|
fired = current.record_fire(
|
|
@@ -279,19 +280,11 @@ class ReminderScheduler(IAsyncLifecycle):
|
|
|
279
280
|
direction=MessageDirection.INBOUND,
|
|
280
281
|
)
|
|
281
282
|
if anchor is None:
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
current
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
self._logger.error(
|
|
288
|
-
"reminder anchor is missing; reminder canceled",
|
|
289
|
-
extra={
|
|
290
|
-
"agent_id": owner.agent_id,
|
|
291
|
-
"owner_session_id": current.owner_session_id,
|
|
292
|
-
"reminder_id": current.reminder_id,
|
|
293
|
-
"anchor_message_id": current.anchor_message_id,
|
|
294
|
-
},
|
|
283
|
+
await self._cancel_unusable_reminder(
|
|
284
|
+
owner.agent_id,
|
|
285
|
+
current,
|
|
286
|
+
"reminder anchor is missing",
|
|
287
|
+
at_ms=fired_at_ms,
|
|
295
288
|
)
|
|
296
289
|
return None
|
|
297
290
|
system_message = Message[InboundAttachment](
|
|
@@ -326,8 +319,42 @@ class ReminderScheduler(IAsyncLifecycle):
|
|
|
326
319
|
OwnedReminder(owner.agent_id, fired),
|
|
327
320
|
system_message,
|
|
328
321
|
)
|
|
322
|
+
if materialized is None:
|
|
323
|
+
return None
|
|
329
324
|
return owner.agent_id, materialized
|
|
330
325
|
|
|
326
|
+
async def _cancel_unusable_reminder(
|
|
327
|
+
self,
|
|
328
|
+
agent_id: str,
|
|
329
|
+
reminder: Reminder,
|
|
330
|
+
reason: str,
|
|
331
|
+
*,
|
|
332
|
+
at_ms: int | None = None,
|
|
333
|
+
error: BaseException | None = None,
|
|
334
|
+
) -> None:
|
|
335
|
+
"""Retire one Reminder that can never fire, so the frontier keeps moving."""
|
|
336
|
+
|
|
337
|
+
canceled = reminder.cancel(at_ms=at_ms if at_ms is not None else self._clock())
|
|
338
|
+
retired = await self._storage.save_owned_reminder_transition(
|
|
339
|
+
reminder.revision,
|
|
340
|
+
OwnedReminder(agent_id, canceled),
|
|
341
|
+
)
|
|
342
|
+
if retired is None:
|
|
343
|
+
return
|
|
344
|
+
self._logger.error(
|
|
345
|
+
"%s; reminder canceled",
|
|
346
|
+
reason,
|
|
347
|
+
extra={
|
|
348
|
+
"agent_id": agent_id,
|
|
349
|
+
"owner_session_id": reminder.owner_session_id,
|
|
350
|
+
"reminder_id": reminder.reminder_id,
|
|
351
|
+
"anchor_message_id": reminder.anchor_message_id,
|
|
352
|
+
},
|
|
353
|
+
exc_info=(
|
|
354
|
+
(type(error), error, error.__traceback__) if error is not None else None
|
|
355
|
+
),
|
|
356
|
+
)
|
|
357
|
+
|
|
331
358
|
async def _publish_message(
|
|
332
359
|
self,
|
|
333
360
|
agent_id: str,
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/storage.py
RENAMED
|
@@ -384,11 +384,8 @@ class StorageOperationMixin:
|
|
|
384
384
|
payload.reply_to_message_id,
|
|
385
385
|
delivery_states=_HISTORY_DELIVERY_STATES,
|
|
386
386
|
)
|
|
387
|
-
if reply_message is None
|
|
388
|
-
|
|
389
|
-
"reply target does not belong to the target conversation"
|
|
390
|
-
)
|
|
391
|
-
reply_to_provider_message_id = reply_message.provider_message_id
|
|
387
|
+
if reply_message is not None and reply_message.target == payload.target:
|
|
388
|
+
reply_to_provider_message_id = reply_message.provider_message_id
|
|
392
389
|
cross_session = source_target_id != target_id
|
|
393
390
|
metadata: dict[str, object] = {}
|
|
394
391
|
if cross_session:
|
|
@@ -730,12 +727,18 @@ class _StorageOperations(Protocol):
|
|
|
730
727
|
limit: int,
|
|
731
728
|
) -> tuple[OwnedReminder, ...]: ...
|
|
732
729
|
|
|
730
|
+
async def save_owned_reminder_transition(
|
|
731
|
+
self,
|
|
732
|
+
expected_revision: int,
|
|
733
|
+
reminder: OwnedReminder,
|
|
734
|
+
) -> Reminder | None: ...
|
|
735
|
+
|
|
733
736
|
async def materialize_owned_reminder_message(
|
|
734
737
|
self,
|
|
735
738
|
expected_revision: int,
|
|
736
739
|
reminder: OwnedReminder,
|
|
737
740
|
system_message: Message[InboundAttachment],
|
|
738
|
-
) -> Message[InboundAttachment]: ...
|
|
741
|
+
) -> Message[InboundAttachment] | None: ...
|
|
739
742
|
|
|
740
743
|
async def list_unread_message_owners(self) -> tuple[UnreadMessageOwner, ...]: ...
|
|
741
744
|
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/agent.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/application.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/attachments.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/command.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/config.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/app/transport.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/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
|
|
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.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/approval.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/audit.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/channel.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/client.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/inbox.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/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
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/outcomes.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/paths.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/reminder.py
RENAMED
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/runtime.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/core/timerwheel.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/i18n/__init__.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/src/bazaar_compute_node/i18n/catalog.py
RENAMED
|
File without changes
|
{bazaar_compute_node-0.1.32 → bazaar_compute_node-0.1.33}/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
|