bazaar-compute-node 0.2.1rc3__tar.gz → 0.2.1rc5__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.1rc3 → bazaar_compute_node-0.2.1rc5}/PKG-INFO +1 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/pyproject.toml +1 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/pyproject.toml.orig +1 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/activity.py +4 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/configure.py +50 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/storage.py +41 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/markdown.py +16 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/pages/__init__.py +11 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/pages/agents.py +142 -27
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/pages/computers.py +24 -3
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/pages/poll.py +178 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/pages/profile.py +28 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/pages/settings.py +1 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/polling.py +276 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/rendering.py +58 -3
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/locales/en.toml +1 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/locales/zh-CN.toml +1 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/THIRD_PARTY.md +34 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/agent-form.js +214 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/alpine-3.17.4.min.js +21 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/alpine-LICENSE.txt +21 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/alpine-collapse-3.17.4.min.js +1 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/alpine-collapse-LICENSE.txt +21 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/alpine-focus-3.17.4.min.js +18 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/alpine-focus-LICENSE.txt +21 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/static/app.css +141 -2
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/app.webmanifest +24 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/apple-touch-icon.png +0 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/components.js +246 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/htmx-LICENSE.txt +13 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/hx-alpine-compat-4.0.0.js +110 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/icon-192.png +0 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/icon-512.png +0 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/static/poll.js +206 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/activity_card.html +13 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_contacts_head.html +6 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_form.html +136 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_list.html +2 -2
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_new.html +41 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_profile.html +15 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_profile_activity.html +2 -2
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_profile_config.html +5 -7
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_profile_files.html +4 -4
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_profile_head.html +9 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_profile_status.html +6 -2
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_remove.html +11 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_row.html +8 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agent_rows.html +6 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/agents.html +27 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/chat.html +6 -4
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/code.html +1 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/components.html +19 -11
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/computer_detail.html +6 -5
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/computer_list.html +1 -1
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/computer_row.html +6 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/computer_rows.html +5 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/computers.html +15 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/contact_rows.html +3 -2
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/contacts.html +1 -1
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/conversation_reminders.html +12 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/enrol_form.html +13 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/error.html +1 -1
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/history.html +1 -3
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/history_end.html +2 -2
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/history_rows.html +3 -4
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/icons/chevron-left.svg +15 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/login.html +8 -4
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/login_form.html +7 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/password_form.html +2 -7
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/presence.html +5 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/profile.html +28 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/rail.html +9 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/remove_ask.html +4 -4
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/review_card.html +2 -2
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/scripts.html +8 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/settings.html +7 -4
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/settings_appearance.html +3 -3
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/shell.html +34 -0
- bazaar_compute_node-0.2.1rc5/src/bazaar_compute_server/resources/templates/unreachable.html +3 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/storage.py +13 -0
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/activity_card.html +0 -13
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/agent_form.html +0 -380
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/agent_new.html +0 -38
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/agent_profile.html +0 -16
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/agent_profile_head.html +0 -8
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/agent_remove.html +0 -11
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/agent_rows.html +0 -11
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/agents.html +0 -37
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/computer_rows.html +0 -7
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/computers.html +0 -13
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/enrol_form.html +0 -13
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/login_form.html +0 -13
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/presence.html +0 -5
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/profile.html +0 -36
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/rail.html +0 -9
- bazaar_compute_node-0.2.1rc3/src/bazaar_compute_server/resources/templates/shell.html +0 -40
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/LICENSE +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/README.md +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/agent.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/agent_management.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/application.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/attachments.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/command.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/config.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/health_report.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/resource_dispatch.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/server_management.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/system_service.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/transport.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/upgrade.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/usage.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/version_check.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/windows_pipe.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/app/wrapper.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/bcc.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cli.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/_client.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/_format.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/inbox.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/message.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/node.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcc/thread.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcn/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcn/_options.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcn/_runner.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcn/agent.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcn/node.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcn/server.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/cmd/bcn/service.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/client.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/events.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/inspect.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/process.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/protocol.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/claude/runtime.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/client.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/events.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/inspect.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/process.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/protocol.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/codex/runtime.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/api.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/attachments.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/channel.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/frame.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/identity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/outbound.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/lark/transport.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/logging/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/logging/audit.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/logging/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/server/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/server/audit.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/server/control.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/server/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/codec.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/database.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/executor.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/model.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v01_initial_node_schema.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v02_session_mapping_indexes.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v03_message_log_indexes.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v04_runtime_attempt_facts.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v05_inbound_message_references.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v06_inbound_message_reference_integrity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v07_inbound_provider_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v08_transient_stream_events.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v09_remove_runtime_events.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v10_add_outbound_attachments.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v11_remove_runtime_session_mapping.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v12_add_reminders.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v13_add_agent_ownership.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v14_add_inbox_discovery_indexes.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v15_add_handoffs.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v16_remove_outbound_drafts.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v17_remove_agent_identity_triggers.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v18_unify_messages.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v19_reminder_system_messages.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v20_remove_freshness_persistence.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v21_remove_handoffs.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v22_readable_targets.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v23_persist_sender_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v24_persist_sender_display_name.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v25_rename_sessions_to_threads.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v26_remove_handoff_messages.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v27_name_dms_by_the_peer_id.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v28_channel_session_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v29_backfill_channel_identity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v30_remove_command_id.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/migrations/v31_channel_session_review.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/reminder_codec.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/repository/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/repository/base.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/repository/facade.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/repository/messages.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/repository/reminders.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/repository/sessions.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/repository/settings.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/sqlite/storage.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/api.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/attachments.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/channel.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/identity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/markdown.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/outbound.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/telegram/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/wecom/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/wecom/channel.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/wecom/identity.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/wecom/outbound.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/contrib/wecom/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/actor.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/agent.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/approval.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/audit.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/channel.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/client.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/command.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/concurrency.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/control.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/correlation.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/inbox.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/instruction.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/lifecycle.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/models/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/models/entities.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/models/events.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/models/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/models/reminder_owner.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/models/states.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/observability.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/commands/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/commands/base.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/commands/messages.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/commands/reminders.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/commands/review.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/delivery.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/error_feedback.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/orchestrator.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/services.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/turn.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/orchestration/upgrade_notice.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/outcomes.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/paths.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/reminder.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/reminder_schedule.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/restart.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/review.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/runtime.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/serialize.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/storage.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/timerwheel.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/children.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/clock.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/command.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/line_reader.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/markdown.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/sanitization.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/core/utils/text.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/i18n/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/i18n/catalog.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/rendering.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/approval_no_person.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/check.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/error.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/inbox_check.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/read.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/reminder_list.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/reminder_mutation.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/reminder_schedule.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/unfollow.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/upgrade.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/bcc/version.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/command/attachment_suffix.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/command/check_message.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/command/freshness_hold.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/command/read_message.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/command/send_result.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/command/sender.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/developer_instructions.md +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/inbox_notice.tpl +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/locales/en.toml +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/locales/zh-CN.toml +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/system_service/launchd.plist +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/system_service/launchd.sh +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/system_service/systemd.service +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/system_service/windows.ps1 +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/system_service/windows.vbs +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_node/resources/system_service/windows.xml +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/access.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/accounts.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/app.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/cli.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/clock.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/config.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/consumers.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contacts.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/migrations/__init__.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/migrations/model.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/migrations/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/migrations/v01_initial_server_schema.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/migrations/v02_refs.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/contrib/sqlite/plugin.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/control.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/fleet.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/gate.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/history.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/i18n.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/images.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/pages/login.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/protocol.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/refs.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/registry.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/static/favicon.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/static/htmx.min.js +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_kinds.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_models.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_profile_events.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_profile_skills.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/agent_profile_workspace.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/board.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/enrolled.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/history_tail.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/alarm-clock.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/calendar.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/check.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/chevron-down.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/chevron-right.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/chevron-up.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/copy.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/file.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/folder.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/grid-2x2.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/key-round.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/languages.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/lark.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/loader-circle.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/log-out.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/message-circle.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/message-square-text.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/monitor.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/openai.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/paperclip.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/plus.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/repeat.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/rotate-cw.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/settings.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/si-apple.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/si-claude.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/si-linux.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/si-telegram.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/sun-moon.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/trash-2.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/triangle-alert.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/unplug.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/user-plus.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/users.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/wecom.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/icons/x.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/image.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/remove_form.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/settings_security.html +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/resources/templates/sign.svg +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/review.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/secrets.py +0 -0
- {bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/sessions.py +0 -0
{bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/activity.py
RENAMED
|
@@ -14,6 +14,7 @@ CARD_EVENTS = 5
|
|
|
14
14
|
|
|
15
15
|
@dataclass(frozen=True, slots=True)
|
|
16
16
|
class ActivityLine:
|
|
17
|
+
at_ms: int
|
|
17
18
|
time: str
|
|
18
19
|
text: str
|
|
19
20
|
|
|
@@ -87,7 +88,9 @@ async def recent_lines(
|
|
|
87
88
|
)
|
|
88
89
|
return [
|
|
89
90
|
ActivityLine(
|
|
90
|
-
|
|
91
|
+
at_ms=item.created_at_ms,
|
|
92
|
+
time=clock_text(item.created_at_ms, tz),
|
|
93
|
+
text=event_text(translator, item),
|
|
91
94
|
)
|
|
92
95
|
for item in recent
|
|
93
96
|
]
|
{bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/configure.py
RENAMED
|
@@ -140,6 +140,56 @@ class Origins:
|
|
|
140
140
|
runtime: tuple[int | None, ...]
|
|
141
141
|
|
|
142
142
|
|
|
143
|
+
def editor(
|
|
144
|
+
values: Mapping[str, Any],
|
|
145
|
+
reply: str,
|
|
146
|
+
*,
|
|
147
|
+
kept: bool = False,
|
|
148
|
+
origins: Origins | None = None,
|
|
149
|
+
) -> dict[str, Any]:
|
|
150
|
+
"""Only the editable fields and credential-presence flags for the browser."""
|
|
151
|
+
|
|
152
|
+
cards: dict[str, list[dict[str, Any]]] = {"channel": [], "runtime": []}
|
|
153
|
+
number = 0
|
|
154
|
+
for family, items in cards.items():
|
|
155
|
+
for index, value in enumerate(values.get(family, ())):
|
|
156
|
+
origin = getattr(origins, family)[index] if origins else index
|
|
157
|
+
origin = origin if kept else None
|
|
158
|
+
present = values.get("secrets", ())
|
|
159
|
+
fields = (
|
|
160
|
+
("app_id", "region", "bot_id", "websocket_url")
|
|
161
|
+
if family == "channel"
|
|
162
|
+
else ("model", "effort", "sandbox_mode", "network_access")
|
|
163
|
+
)
|
|
164
|
+
items.append(
|
|
165
|
+
{
|
|
166
|
+
"id": number,
|
|
167
|
+
"kind": value["kind"],
|
|
168
|
+
"was": origin,
|
|
169
|
+
**{key: value[key] for key in fields if value.get(key) is not None},
|
|
170
|
+
"secret_set": bool(
|
|
171
|
+
family == "channel"
|
|
172
|
+
and origin is not None
|
|
173
|
+
and origin < len(present)
|
|
174
|
+
and present[origin].get(SECRETS.get(value["kind"]))
|
|
175
|
+
),
|
|
176
|
+
"env": [
|
|
177
|
+
{"id": i, "name": name, "was": name}
|
|
178
|
+
for i, name in enumerate(value.get("env", {}))
|
|
179
|
+
],
|
|
180
|
+
}
|
|
181
|
+
)
|
|
182
|
+
number += 1
|
|
183
|
+
return {
|
|
184
|
+
"name": values.get("name", ""),
|
|
185
|
+
"mode": values.get("mode", "session"),
|
|
186
|
+
"idle_timeout": values.get("idle_timeout", 0),
|
|
187
|
+
"reply": reply,
|
|
188
|
+
"cards": cards,
|
|
189
|
+
"next": number,
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
|
|
143
193
|
def configuration(
|
|
144
194
|
form: Mapping[str, str],
|
|
145
195
|
kept: Mapping[str, Any] | None = None,
|
|
@@ -534,6 +534,47 @@ class SqliteStorage(IStorage):
|
|
|
534
534
|
row = await cursor.fetchone()
|
|
535
535
|
return 0 if row is None or row["id"] is None else int(row["id"])
|
|
536
536
|
|
|
537
|
+
async def latest_activity_event(
|
|
538
|
+
self, computer_id: str, agent_id: str, *, skipping: Sequence[str]
|
|
539
|
+
) -> int:
|
|
540
|
+
async with (
|
|
541
|
+
self._reader() as reader,
|
|
542
|
+
reader.execute(
|
|
543
|
+
"SELECT COALESCE(MAX(id), 0) AS id FROM events"
|
|
544
|
+
" WHERE computer_id = ? AND agent_id = ?"
|
|
545
|
+
f" AND event_name NOT IN ({_marks(skipping)})",
|
|
546
|
+
(computer_id, agent_id, *skipping),
|
|
547
|
+
) as cursor,
|
|
548
|
+
):
|
|
549
|
+
(row,) = await cursor.fetchall()
|
|
550
|
+
return int(row["id"])
|
|
551
|
+
|
|
552
|
+
async def latest_named_event(
|
|
553
|
+
self,
|
|
554
|
+
computer_id: str,
|
|
555
|
+
agent_id: str,
|
|
556
|
+
*,
|
|
557
|
+
names: Sequence[str],
|
|
558
|
+
thread_id: str | None = None,
|
|
559
|
+
) -> int:
|
|
560
|
+
async with (
|
|
561
|
+
self._reader() as reader,
|
|
562
|
+
reader.execute(
|
|
563
|
+
"SELECT COALESCE(MAX(id), 0) AS id FROM events"
|
|
564
|
+
" WHERE computer_id = ? AND agent_id = ?"
|
|
565
|
+
f" AND event_name IN ({_marks(names)})"
|
|
566
|
+
+ (" AND thread_id = ?" if thread_id is not None else ""),
|
|
567
|
+
(
|
|
568
|
+
computer_id,
|
|
569
|
+
agent_id,
|
|
570
|
+
*names,
|
|
571
|
+
*((thread_id,) if thread_id is not None else ()),
|
|
572
|
+
),
|
|
573
|
+
) as cursor,
|
|
574
|
+
):
|
|
575
|
+
(row,) = await cursor.fetchall()
|
|
576
|
+
return int(row["id"])
|
|
577
|
+
|
|
537
578
|
async def computer_health(
|
|
538
579
|
self, computers: Sequence[Computer]
|
|
539
580
|
) -> list[ComputerHealth]:
|
{bazaar_compute_node-0.2.1rc3 → bazaar_compute_node-0.2.1rc5}/src/bazaar_compute_server/markdown.py
RENAMED
|
@@ -7,7 +7,9 @@ from collections.abc import Callable, Mapping, Sequence
|
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
9
|
from markdown_it import MarkdownIt
|
|
10
|
+
from markdown_it.renderer import RendererHTML
|
|
10
11
|
from markdown_it.token import Token
|
|
12
|
+
from markdown_it.utils import EnvType, OptionsDict
|
|
11
13
|
from markupsafe import Markup
|
|
12
14
|
from pygments import highlight
|
|
13
15
|
from pygments.formatters import HtmlFormatter
|
|
@@ -51,9 +53,22 @@ def _image(
|
|
|
51
53
|
)
|
|
52
54
|
|
|
53
55
|
|
|
56
|
+
class _ContentRenderer(RendererHTML):
|
|
57
|
+
def renderInline(
|
|
58
|
+
self, tokens: Sequence[Token], options: OptionsDict, env: EnvType
|
|
59
|
+
) -> str:
|
|
60
|
+
# Prose stays outside Alpine; the trusted code-block copy control is
|
|
61
|
+
# a separate component, beside its own ignored code content.
|
|
62
|
+
return (
|
|
63
|
+
"<span x-ignore>" + super().renderInline(tokens, options, env) + "</span>"
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
54
67
|
# html off: what the agent wrote is text, however it looks; a link is only a
|
|
55
68
|
# link on a scheme markdown-it lets through
|
|
56
|
-
_MARKDOWN = MarkdownIt(
|
|
69
|
+
_MARKDOWN = MarkdownIt(
|
|
70
|
+
"commonmark", {"html": False}, renderer_cls=_ContentRenderer
|
|
71
|
+
).enable(["table", "strikethrough"])
|
|
57
72
|
_MARKDOWN.add_render_rule("fence", _fence)
|
|
58
73
|
_MARKDOWN.add_render_rule("image", _image)
|
|
59
74
|
|
|
@@ -15,6 +15,7 @@ from ..storage import IStorage
|
|
|
15
15
|
from .agents import AgentPages
|
|
16
16
|
from .computers import ComputerPages
|
|
17
17
|
from .login import LoginPages
|
|
18
|
+
from .poll import PollPages
|
|
18
19
|
from .profile import ProfilePages
|
|
19
20
|
from .settings import SettingsPages
|
|
20
21
|
|
|
@@ -37,7 +38,9 @@ def routes(
|
|
|
37
38
|
computers = ComputerPages(storage, controls, renderer, refs)
|
|
38
39
|
login = LoginPages(storage, renderer, sessions)
|
|
39
40
|
settings = SettingsPages(storage, renderer, sessions)
|
|
41
|
+
poll = PollPages(storage, renderer, refs)
|
|
40
42
|
return [
|
|
43
|
+
Route("/poll", poll.check, methods=["POST"]),
|
|
41
44
|
Route("/", home),
|
|
42
45
|
Route("/login", login.form),
|
|
43
46
|
Route("/login", login.login, methods=["POST"]),
|
|
@@ -49,6 +52,12 @@ def routes(
|
|
|
49
52
|
Route("/agents", agents.list),
|
|
50
53
|
Route("/agents/list", agents.list_fragment),
|
|
51
54
|
Route("/agents/{computer_id}/{agent_id}", agents.show),
|
|
55
|
+
Route("/agents/{computer_id}/{agent_id}/row", agents.row_fragment),
|
|
56
|
+
Route("/agents/{computer_id}/{agent_id}/head", agents.head),
|
|
57
|
+
Route(
|
|
58
|
+
"/agents/{computer_id}/{agent_id}/contacts/{thread_id}/reminders",
|
|
59
|
+
agents.reminder_fragment,
|
|
60
|
+
),
|
|
52
61
|
Route("/agents/{computer_id}/{agent_id}/activity", agents.activity_card),
|
|
53
62
|
Route("/agents/{computer_id}/{agent_id}/contacts", agents.contacts),
|
|
54
63
|
Route(
|
|
@@ -73,6 +82,7 @@ def routes(
|
|
|
73
82
|
),
|
|
74
83
|
Route("/agents/{computer_id}/{agent_id}/profile/remove", profile.remove_ask),
|
|
75
84
|
Route("/agents/{computer_id}/{agent_id}/profile/events", profile.events),
|
|
85
|
+
Route("/agents/{computer_id}/{agent_id}/profile/head", profile.head),
|
|
76
86
|
Route("/agents/{computer_id}/{agent_id}/profile/{tab}", profile.tab),
|
|
77
87
|
Route("/agents/{computer_id}/{agent_id}", profile.remove, methods=["DELETE"]),
|
|
78
88
|
Route("/computers", computers.list),
|
|
@@ -80,6 +90,7 @@ def routes(
|
|
|
80
90
|
Route("/computers/list", computers.list_fragment),
|
|
81
91
|
Route("/computers", computers.enrol, methods=["POST"]),
|
|
82
92
|
Route("/computers/{computer_id}", computers.show),
|
|
93
|
+
Route("/computers/{computer_id}/row", computers.row_fragment),
|
|
83
94
|
Route("/computers/{computer_id}/detail", computers.detail),
|
|
84
95
|
Route("/computers/{computer_id}/presence", computers.presence),
|
|
85
96
|
Route("/computers/{computer_id}/remove", computers.remove_form),
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
6
|
+
import json
|
|
6
7
|
from collections.abc import Iterable
|
|
7
8
|
from urllib.parse import urlencode
|
|
8
9
|
|
|
@@ -11,10 +12,12 @@ from starlette.responses import HTMLResponse, Response
|
|
|
11
12
|
|
|
12
13
|
from ..access import Access, allowed, sees
|
|
13
14
|
from ..activity import recent_lines, usage_today
|
|
15
|
+
from ..clock import day_text, now_ms
|
|
14
16
|
from ..contacts import contacts
|
|
15
17
|
from ..control import Controls
|
|
16
18
|
from ..fleet import PAGE_SIZE, AgentPage, AgentView, agent_page, agent_view
|
|
17
19
|
from ..history import Contact, earlier, later, latest, news
|
|
20
|
+
from ..polling import CARD_QUIET, REMINDERS, activity_state, agent_info
|
|
18
21
|
from ..refs import Refs, expanded
|
|
19
22
|
from ..rendering import Renderer
|
|
20
23
|
from ..review import Request as ReviewRequest
|
|
@@ -74,7 +77,10 @@ class AgentPages:
|
|
|
74
77
|
if contact is None:
|
|
75
78
|
return HTMLResponse("", status_code=404)
|
|
76
79
|
# htmx names the element it will swap as `tag#id`
|
|
77
|
-
if
|
|
80
|
+
if (
|
|
81
|
+
request.headers.get("HX-Target") == "div#chat"
|
|
82
|
+
and request.headers.get("HX-History-Restore-Request") != "true"
|
|
83
|
+
):
|
|
78
84
|
# picked from the list: the column alone, the lists staying put
|
|
79
85
|
selected = await agent_view(
|
|
80
86
|
self._storage,
|
|
@@ -105,6 +111,8 @@ class AgentPages:
|
|
|
105
111
|
page: AgentPage,
|
|
106
112
|
selected: AgentView | None,
|
|
107
113
|
contact: Contact | None = None,
|
|
114
|
+
*,
|
|
115
|
+
pending: bool | None = None,
|
|
108
116
|
) -> Response:
|
|
109
117
|
await self.refs.load(
|
|
110
118
|
[
|
|
@@ -112,10 +120,12 @@ class AgentPages:
|
|
|
112
120
|
*(contact.named if contact else []),
|
|
113
121
|
]
|
|
114
122
|
)
|
|
123
|
+
if pending is None:
|
|
124
|
+
pending = _pending(request)
|
|
115
125
|
# a conversation still waiting opens on the question about it
|
|
116
126
|
asked = (
|
|
117
127
|
await request_of(self._controls, selected, contact)
|
|
118
|
-
if selected is not None and contact is not None and
|
|
128
|
+
if selected is not None and contact is not None and pending
|
|
119
129
|
else None
|
|
120
130
|
)
|
|
121
131
|
return self._render.page(
|
|
@@ -132,6 +142,7 @@ class AgentPages:
|
|
|
132
142
|
contact=contact,
|
|
133
143
|
latest=request.query_params.get("latest"),
|
|
134
144
|
asked=asked,
|
|
145
|
+
pending=pending,
|
|
135
146
|
)
|
|
136
147
|
|
|
137
148
|
async def _chat(
|
|
@@ -163,11 +174,8 @@ class AgentPages:
|
|
|
163
174
|
@sees("computer", "computer_id")
|
|
164
175
|
@sees("agent", "agent_id")
|
|
165
176
|
async def review(self, request: Request) -> Response:
|
|
166
|
-
"""Let a conversation in or turn it away
|
|
167
|
-
|
|
168
|
-
follows: the conversation's own once let in, the agent's once turned
|
|
169
|
-
away, so a reload does not ask the question again or open what was
|
|
170
|
-
turned away."""
|
|
177
|
+
"""Let a conversation in or turn it away, updating the module and
|
|
178
|
+
address together so its tabs, selected row and chat agree on reload."""
|
|
171
179
|
|
|
172
180
|
params = request.path_params
|
|
173
181
|
contact = await self._contact(request)
|
|
@@ -209,26 +217,19 @@ class AgentPages:
|
|
|
209
217
|
),
|
|
210
218
|
)
|
|
211
219
|
agent_url = f"/agents/{self.refs.ref(selected.computer_id)}/{self.refs.ref(selected.id)}"
|
|
220
|
+
response = await self._page(
|
|
221
|
+
request,
|
|
222
|
+
await agent_page(self._storage, Access.of(request)),
|
|
223
|
+
selected,
|
|
224
|
+
contact if review == "approved" else None,
|
|
225
|
+
pending=False,
|
|
226
|
+
)
|
|
227
|
+
response.headers["HX-Retarget"] = "#main"
|
|
228
|
+
response.headers["HX-Reswap"] = "innerMorph"
|
|
212
229
|
if review == "denied":
|
|
213
|
-
response = self._render.fragment(
|
|
214
|
-
request,
|
|
215
|
-
"chat.html",
|
|
216
|
-
selected=selected,
|
|
217
|
-
contact=None,
|
|
218
|
-
latest=None,
|
|
219
|
-
asked=None,
|
|
220
|
-
)
|
|
221
230
|
response.headers["HX-Push-Url"] = agent_url
|
|
222
231
|
return response
|
|
223
232
|
latest = request.query_params.get("latest")
|
|
224
|
-
response = self._render.fragment(
|
|
225
|
-
request,
|
|
226
|
-
"chat.html",
|
|
227
|
-
selected=selected,
|
|
228
|
-
contact=contact,
|
|
229
|
-
latest=latest,
|
|
230
|
-
asked=None,
|
|
231
|
-
)
|
|
232
233
|
response.headers["HX-Push-Url"] = (
|
|
233
234
|
f"{agent_url}/contacts/{self.refs.ref(contact.thread_id)}?"
|
|
234
235
|
+ urlencode(
|
|
@@ -261,15 +262,99 @@ class AgentPages:
|
|
|
261
262
|
if selected is None:
|
|
262
263
|
return HTMLResponse("", status_code=404)
|
|
263
264
|
await self.refs.load([*named([selected]), *contact.named])
|
|
265
|
+
since = await self._storage.latest_named_event(
|
|
266
|
+
selected.computer_id,
|
|
267
|
+
selected.id,
|
|
268
|
+
names=REMINDERS,
|
|
269
|
+
thread_id=contact.thread_id,
|
|
270
|
+
)
|
|
264
271
|
return self._render.fragment(
|
|
265
272
|
request,
|
|
266
273
|
"profile.html",
|
|
274
|
+
reminder_since=since,
|
|
267
275
|
selected=selected,
|
|
268
276
|
contact=contact,
|
|
269
277
|
reminders=await reminders(self._controls, selected, contact),
|
|
270
278
|
failed=None,
|
|
271
279
|
)
|
|
272
280
|
|
|
281
|
+
@allowed("agents.view")
|
|
282
|
+
@expanded("computer_id", "agent_id")
|
|
283
|
+
@sees("computer", "computer_id")
|
|
284
|
+
@sees("agent", "agent_id")
|
|
285
|
+
async def row_fragment(self, request: Request) -> Response:
|
|
286
|
+
agent = await agent_view(
|
|
287
|
+
self._storage,
|
|
288
|
+
Access.of(request),
|
|
289
|
+
request.path_params["computer_id"],
|
|
290
|
+
request.path_params["agent_id"],
|
|
291
|
+
)
|
|
292
|
+
if agent is None:
|
|
293
|
+
return HTMLResponse("", status_code=404)
|
|
294
|
+
await self.refs.load(named([agent]))
|
|
295
|
+
return self._render.fragment(
|
|
296
|
+
request,
|
|
297
|
+
"agent_row.html",
|
|
298
|
+
agent=agent,
|
|
299
|
+
selected_key=request.query_params.get("selected"),
|
|
300
|
+
poll_state=agent_info(agent),
|
|
301
|
+
)
|
|
302
|
+
|
|
303
|
+
@allowed("agents.view")
|
|
304
|
+
@expanded("computer_id", "agent_id")
|
|
305
|
+
@sees("computer", "computer_id")
|
|
306
|
+
@sees("agent", "agent_id")
|
|
307
|
+
async def head(self, request: Request) -> Response:
|
|
308
|
+
selected = await agent_view(
|
|
309
|
+
self._storage,
|
|
310
|
+
Access.of(request),
|
|
311
|
+
request.path_params["computer_id"],
|
|
312
|
+
request.path_params["agent_id"],
|
|
313
|
+
)
|
|
314
|
+
if selected is None:
|
|
315
|
+
return HTMLResponse("", status_code=404)
|
|
316
|
+
await self.refs.load(named([selected]))
|
|
317
|
+
return self._render.fragment(
|
|
318
|
+
request,
|
|
319
|
+
"agent_contacts_head.html",
|
|
320
|
+
selected=selected,
|
|
321
|
+
poll_state=agent_info(selected),
|
|
322
|
+
)
|
|
323
|
+
|
|
324
|
+
@allowed("agents.view")
|
|
325
|
+
@expanded("computer_id", "agent_id", "thread_id")
|
|
326
|
+
@sees("computer", "computer_id")
|
|
327
|
+
@sees("agent", "agent_id")
|
|
328
|
+
async def reminder_fragment(self, request: Request) -> Response:
|
|
329
|
+
selected = await agent_view(
|
|
330
|
+
self._storage,
|
|
331
|
+
Access.of(request),
|
|
332
|
+
request.path_params["computer_id"],
|
|
333
|
+
request.path_params["agent_id"],
|
|
334
|
+
)
|
|
335
|
+
contact = await self._contact(request)
|
|
336
|
+
if selected is None or contact is None:
|
|
337
|
+
return HTMLResponse("", status_code=404)
|
|
338
|
+
await self.refs.load([*named([selected]), *contact.named])
|
|
339
|
+
since = await self._storage.latest_named_event(
|
|
340
|
+
selected.computer_id,
|
|
341
|
+
selected.id,
|
|
342
|
+
names=REMINDERS,
|
|
343
|
+
thread_id=contact.thread_id,
|
|
344
|
+
)
|
|
345
|
+
listed = await reminders(self._controls, selected, contact)
|
|
346
|
+
return self._render.fragment(
|
|
347
|
+
request,
|
|
348
|
+
"conversation_reminders.html",
|
|
349
|
+
selected=selected,
|
|
350
|
+
contact=contact,
|
|
351
|
+
reminders=listed,
|
|
352
|
+
reminder_since=since,
|
|
353
|
+
poll_state={"since": since, "offline": selected.status == "offline"}
|
|
354
|
+
if listed.answer in ("listed", "offline")
|
|
355
|
+
else None,
|
|
356
|
+
)
|
|
357
|
+
|
|
273
358
|
async def _ids(self, key: str | None) -> str | None:
|
|
274
359
|
"""The ids behind a row key as a link names it; nothing for no key,
|
|
275
360
|
or one that names nothing."""
|
|
@@ -327,6 +412,10 @@ class AgentPages:
|
|
|
327
412
|
computer_id = request.path_params["computer_id"]
|
|
328
413
|
agent_id = request.path_params["agent_id"]
|
|
329
414
|
tz = self._render.zone(request)
|
|
415
|
+
since = await self._storage.latest_activity_event(
|
|
416
|
+
computer_id, agent_id, skipping=CARD_QUIET
|
|
417
|
+
)
|
|
418
|
+
day = day_text(now_ms(), tz)
|
|
330
419
|
agent, activity, usage = await asyncio.gather(
|
|
331
420
|
agent_view(self._storage, Access.of(request), computer_id, agent_id),
|
|
332
421
|
recent_lines(
|
|
@@ -342,7 +431,12 @@ class AgentPages:
|
|
|
342
431
|
return HTMLResponse("", status_code=404)
|
|
343
432
|
await self.refs.load(named([agent]))
|
|
344
433
|
return self._render.fragment(
|
|
345
|
-
request,
|
|
434
|
+
request,
|
|
435
|
+
"activity_card.html",
|
|
436
|
+
agent=agent,
|
|
437
|
+
activity=activity,
|
|
438
|
+
usage=usage,
|
|
439
|
+
poll_state=activity_state(agent, since, day),
|
|
346
440
|
)
|
|
347
441
|
|
|
348
442
|
@allowed("agents.view")
|
|
@@ -371,7 +465,14 @@ class AgentPages:
|
|
|
371
465
|
agent.computer_id, agent.id
|
|
372
466
|
)
|
|
373
467
|
if latest <= int(since):
|
|
374
|
-
return Response(
|
|
468
|
+
return Response(
|
|
469
|
+
status_code=204,
|
|
470
|
+
headers={
|
|
471
|
+
"X-Poll-State": json.dumps(
|
|
472
|
+
{"since": int(since), "offline": offline}
|
|
473
|
+
)
|
|
474
|
+
},
|
|
475
|
+
)
|
|
375
476
|
offset = int(query.get("offset") or 0)
|
|
376
477
|
listing = await contacts(
|
|
377
478
|
self._storage,
|
|
@@ -434,7 +535,14 @@ class AgentPages:
|
|
|
434
535
|
shown=query.get("shown"),
|
|
435
536
|
)
|
|
436
537
|
if history is None:
|
|
437
|
-
return Response(
|
|
538
|
+
return Response(
|
|
539
|
+
status_code=204,
|
|
540
|
+
headers={
|
|
541
|
+
"X-Poll-State": json.dumps(
|
|
542
|
+
{"since": int(since), "offline": agent.status == "offline"}
|
|
543
|
+
)
|
|
544
|
+
},
|
|
545
|
+
)
|
|
438
546
|
return self._render.fragment(request, "history_tail.html", history=history)
|
|
439
547
|
# a column with no message to read after - empty, or one that got
|
|
440
548
|
# none - is read afresh once something is new, and left until then
|
|
@@ -448,7 +556,14 @@ class AgentPages:
|
|
|
448
556
|
)
|
|
449
557
|
is None
|
|
450
558
|
):
|
|
451
|
-
return Response(
|
|
559
|
+
return Response(
|
|
560
|
+
status_code=204,
|
|
561
|
+
headers={
|
|
562
|
+
"X-Poll-State": json.dumps(
|
|
563
|
+
{"since": int(since), "offline": agent.status == "offline"}
|
|
564
|
+
)
|
|
565
|
+
},
|
|
566
|
+
)
|
|
452
567
|
before = query.get("before")
|
|
453
568
|
if before is not None:
|
|
454
569
|
history = await earlier(
|
|
@@ -13,6 +13,7 @@ from ..access import Access, allowed, sees
|
|
|
13
13
|
from ..configure import SECRETS, configuration, create, kinds, models
|
|
14
14
|
from ..control import Controls
|
|
15
15
|
from ..fleet import ComputerView, Fleet, computer_view, fleet
|
|
16
|
+
from ..polling import computer_info
|
|
16
17
|
from ..protocol import MAX_NAME_CHARS
|
|
17
18
|
from ..refs import Refs, expanded
|
|
18
19
|
from ..rendering import Renderer
|
|
@@ -34,7 +35,10 @@ class ComputerPages:
|
|
|
34
35
|
|
|
35
36
|
page = await fleet(self._storage, Access.of(request))
|
|
36
37
|
return await self._page(
|
|
37
|
-
request,
|
|
38
|
+
request,
|
|
39
|
+
page,
|
|
40
|
+
page.computers[0] if page.computers else None,
|
|
41
|
+
view="computers",
|
|
38
42
|
)
|
|
39
43
|
|
|
40
44
|
@allowed("computers.view")
|
|
@@ -51,7 +55,7 @@ class ComputerPages:
|
|
|
51
55
|
)
|
|
52
56
|
if selected is None:
|
|
53
57
|
return HTMLResponse("", status_code=404)
|
|
54
|
-
return await self._page(request, page, selected)
|
|
58
|
+
return await self._page(request, page, selected, view="computer")
|
|
55
59
|
|
|
56
60
|
async def _id(self, short: str | None) -> str | None:
|
|
57
61
|
"""The id behind a number a link carries; nothing for none, or one
|
|
@@ -63,7 +67,7 @@ class ComputerPages:
|
|
|
63
67
|
return None if ids is None else ids[0]
|
|
64
68
|
|
|
65
69
|
async def _page(
|
|
66
|
-
self, request: Request, page: Fleet, selected: ComputerView | None
|
|
70
|
+
self, request: Request, page: Fleet, selected: ComputerView | None, *, view: str
|
|
67
71
|
) -> Response:
|
|
68
72
|
await self.refs.load(_named(page.computers, selected))
|
|
69
73
|
return self._render.page(
|
|
@@ -77,6 +81,7 @@ class ComputerPages:
|
|
|
77
81
|
if selected is None
|
|
78
82
|
else str(self.refs.ref(selected.computer.id)),
|
|
79
83
|
enrolment=None,
|
|
84
|
+
view=view,
|
|
80
85
|
)
|
|
81
86
|
|
|
82
87
|
@allowed("computers.view")
|
|
@@ -97,6 +102,21 @@ class ComputerPages:
|
|
|
97
102
|
selected_key=query.get("selected") or None,
|
|
98
103
|
)
|
|
99
104
|
|
|
105
|
+
@allowed("computers.view")
|
|
106
|
+
@expanded("computer_id")
|
|
107
|
+
@sees("computer", "computer_id")
|
|
108
|
+
async def row_fragment(self, request: Request) -> Response:
|
|
109
|
+
item = await self._selected(request)
|
|
110
|
+
if item is None:
|
|
111
|
+
return HTMLResponse("", status_code=404)
|
|
112
|
+
return self._render.fragment(
|
|
113
|
+
request,
|
|
114
|
+
"computer_row.html",
|
|
115
|
+
item=item,
|
|
116
|
+
selected_key=request.query_params.get("selected"),
|
|
117
|
+
poll_state=computer_info(item),
|
|
118
|
+
)
|
|
119
|
+
|
|
100
120
|
@allowed("computers.view")
|
|
101
121
|
@expanded("computer_id")
|
|
102
122
|
@sees("computer", "computer_id")
|
|
@@ -289,6 +309,7 @@ class ComputerPages:
|
|
|
289
309
|
selected=item,
|
|
290
310
|
selected_key=key,
|
|
291
311
|
enrolment=enrolment,
|
|
312
|
+
view="computer",
|
|
292
313
|
item=item,
|
|
293
314
|
base_url=str(request.base_url).rstrip("/"),
|
|
294
315
|
system=_system_of(request),
|