bazaar-compute-node 0.2.1rc7__tar.gz → 0.2.1rc8__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.
Files changed (400) hide show
  1. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/PKG-INFO +1 -1
  2. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/pyproject.toml +1 -1
  3. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/pyproject.toml.orig +1 -1
  4. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/storage.py +9 -20
  5. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/fleet.py +1 -1
  6. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/computers.py +22 -1
  7. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/profile.py +3 -3
  8. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/shares.py +26 -74
  9. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/permissions.py +9 -9
  10. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/locales/en.toml +2 -0
  11. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/locales/zh-CN.toml +2 -0
  12. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/app.css +3 -6
  13. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/components.js +1 -1
  14. bazaar_compute_node-0.2.1rc8/src/bazaar_compute_server/resources/templates/agent_profile_sharing.html +1 -0
  15. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/computer_detail.html +13 -2
  16. bazaar_compute_node-0.2.1rc7/src/bazaar_compute_server/resources/templates/agent_profile_sharing.html → bazaar_compute_node-0.2.1rc8/src/bazaar_compute_server/resources/templates/shares.html +4 -4
  17. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/shell.html +0 -1
  18. bazaar_compute_node-0.2.1rc7/src/bazaar_compute_server/resources/templates/shares.html +0 -19
  19. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/LICENSE +0 -0
  20. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/README.md +0 -0
  21. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/__init__.py +0 -0
  22. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/__init__.py +0 -0
  23. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/agent.py +0 -0
  24. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/agent_management.py +0 -0
  25. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/application.py +0 -0
  26. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/attachments.py +0 -0
  27. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/command.py +0 -0
  28. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/config.py +0 -0
  29. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/health_report.py +0 -0
  30. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/registry.py +0 -0
  31. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/resource_dispatch.py +0 -0
  32. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/server_management.py +0 -0
  33. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/system_service.py +0 -0
  34. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/transport.py +0 -0
  35. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/upgrade.py +0 -0
  36. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/usage.py +0 -0
  37. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/version_check.py +0 -0
  38. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/windows_pipe.py +0 -0
  39. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/app/wrapper.py +0 -0
  40. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/bcc.py +0 -0
  41. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cli.py +0 -0
  42. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/__init__.py +0 -0
  43. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/__init__.py +0 -0
  44. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/_client.py +0 -0
  45. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/_format.py +0 -0
  46. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/inbox.py +0 -0
  47. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/message.py +0 -0
  48. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/node.py +0 -0
  49. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/reminder.py +0 -0
  50. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcc/thread.py +0 -0
  51. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcn/__init__.py +0 -0
  52. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcn/_options.py +0 -0
  53. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcn/_runner.py +0 -0
  54. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcn/agent.py +0 -0
  55. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcn/node.py +0 -0
  56. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcn/server.py +0 -0
  57. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/cmd/bcn/service.py +0 -0
  58. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/__init__.py +0 -0
  59. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/__init__.py +0 -0
  60. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/approval.py +0 -0
  61. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/client.py +0 -0
  62. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/events.py +0 -0
  63. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/inspect.py +0 -0
  64. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/plugin.py +0 -0
  65. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/process.py +0 -0
  66. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/protocol.py +0 -0
  67. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/claude/runtime.py +0 -0
  68. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/__init__.py +0 -0
  69. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/approval.py +0 -0
  70. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/client.py +0 -0
  71. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/events.py +0 -0
  72. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/inspect.py +0 -0
  73. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/plugin.py +0 -0
  74. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/process.py +0 -0
  75. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/protocol.py +0 -0
  76. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/codex/runtime.py +0 -0
  77. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/__init__.py +0 -0
  78. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/api.py +0 -0
  79. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/approval.py +0 -0
  80. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/attachments.py +0 -0
  81. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/channel.py +0 -0
  82. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/frame.py +0 -0
  83. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/identity.py +0 -0
  84. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/outbound.py +0 -0
  85. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/plugin.py +0 -0
  86. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/lark/transport.py +0 -0
  87. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/logging/__init__.py +0 -0
  88. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/logging/audit.py +0 -0
  89. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/logging/plugin.py +0 -0
  90. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/server/__init__.py +0 -0
  91. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/server/audit.py +0 -0
  92. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/server/control.py +0 -0
  93. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/server/plugin.py +0 -0
  94. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/__init__.py +0 -0
  95. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/codec.py +0 -0
  96. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/database.py +0 -0
  97. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/executor.py +0 -0
  98. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/__init__.py +0 -0
  99. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/model.py +0 -0
  100. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/registry.py +0 -0
  101. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v01_initial_node_schema.py +0 -0
  102. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v02_session_mapping_indexes.py +0 -0
  103. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v03_message_log_indexes.py +0 -0
  104. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v04_runtime_attempt_facts.py +0 -0
  105. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v05_inbound_message_references.py +0 -0
  106. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v06_inbound_message_reference_integrity.py +0 -0
  107. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v07_inbound_provider_identity.py +0 -0
  108. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v08_transient_stream_events.py +0 -0
  109. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v09_remove_runtime_events.py +0 -0
  110. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v10_add_outbound_attachments.py +0 -0
  111. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v11_remove_runtime_session_mapping.py +0 -0
  112. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v12_add_reminders.py +0 -0
  113. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v13_add_agent_ownership.py +0 -0
  114. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v14_add_inbox_discovery_indexes.py +0 -0
  115. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v15_add_handoffs.py +0 -0
  116. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v16_remove_outbound_drafts.py +0 -0
  117. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v17_remove_agent_identity_triggers.py +0 -0
  118. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v18_unify_messages.py +0 -0
  119. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v19_reminder_system_messages.py +0 -0
  120. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v20_remove_freshness_persistence.py +0 -0
  121. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v21_remove_handoffs.py +0 -0
  122. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v22_readable_targets.py +0 -0
  123. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v23_persist_sender_identity.py +0 -0
  124. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v24_persist_sender_display_name.py +0 -0
  125. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v25_rename_sessions_to_threads.py +0 -0
  126. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v26_remove_handoff_messages.py +0 -0
  127. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v27_name_dms_by_the_peer_id.py +0 -0
  128. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v28_channel_session_identity.py +0 -0
  129. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v29_backfill_channel_identity.py +0 -0
  130. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v30_remove_command_id.py +0 -0
  131. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/migrations/v31_channel_session_review.py +0 -0
  132. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/plugin.py +0 -0
  133. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/reminder_codec.py +0 -0
  134. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/repository/__init__.py +0 -0
  135. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/repository/base.py +0 -0
  136. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/repository/facade.py +0 -0
  137. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/repository/messages.py +0 -0
  138. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/repository/reminders.py +0 -0
  139. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/repository/sessions.py +0 -0
  140. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/repository/settings.py +0 -0
  141. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/sqlite/storage.py +0 -0
  142. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/__init__.py +0 -0
  143. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/api.py +0 -0
  144. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/approval.py +0 -0
  145. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/attachments.py +0 -0
  146. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/channel.py +0 -0
  147. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/identity.py +0 -0
  148. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/markdown.py +0 -0
  149. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/outbound.py +0 -0
  150. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/telegram/plugin.py +0 -0
  151. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/wecom/__init__.py +0 -0
  152. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/wecom/channel.py +0 -0
  153. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/wecom/identity.py +0 -0
  154. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/wecom/outbound.py +0 -0
  155. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/contrib/wecom/plugin.py +0 -0
  156. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/__init__.py +0 -0
  157. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/actor.py +0 -0
  158. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/agent.py +0 -0
  159. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/approval.py +0 -0
  160. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/audit.py +0 -0
  161. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/channel.py +0 -0
  162. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/client.py +0 -0
  163. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/command.py +0 -0
  164. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/concurrency.py +0 -0
  165. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/control.py +0 -0
  166. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/correlation.py +0 -0
  167. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/inbox.py +0 -0
  168. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/instruction.py +0 -0
  169. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/lifecycle.py +0 -0
  170. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/models/__init__.py +0 -0
  171. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/models/entities.py +0 -0
  172. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/models/events.py +0 -0
  173. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/models/reminder.py +0 -0
  174. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/models/reminder_owner.py +0 -0
  175. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/models/states.py +0 -0
  176. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/observability.py +0 -0
  177. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/__init__.py +0 -0
  178. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/commands/__init__.py +0 -0
  179. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/commands/base.py +0 -0
  180. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/commands/messages.py +0 -0
  181. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/commands/reminders.py +0 -0
  182. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/commands/review.py +0 -0
  183. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/delivery.py +0 -0
  184. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/error_feedback.py +0 -0
  185. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/orchestrator.py +0 -0
  186. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/reminder.py +0 -0
  187. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/services.py +0 -0
  188. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/turn.py +0 -0
  189. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/orchestration/upgrade_notice.py +0 -0
  190. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/outcomes.py +0 -0
  191. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/paths.py +0 -0
  192. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/reminder.py +0 -0
  193. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/reminder_schedule.py +0 -0
  194. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/restart.py +0 -0
  195. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/review.py +0 -0
  196. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/runtime.py +0 -0
  197. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/serialize.py +0 -0
  198. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/storage.py +0 -0
  199. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/timerwheel.py +0 -0
  200. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/__init__.py +0 -0
  201. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/children.py +0 -0
  202. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/clock.py +0 -0
  203. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/command.py +0 -0
  204. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/line_reader.py +0 -0
  205. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/markdown.py +0 -0
  206. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/sanitization.py +0 -0
  207. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/core/utils/text.py +0 -0
  208. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/i18n/__init__.py +0 -0
  209. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/i18n/catalog.py +0 -0
  210. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/rendering.py +0 -0
  211. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/approval_no_person.tpl +0 -0
  212. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/check.tpl +0 -0
  213. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/error.tpl +0 -0
  214. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/inbox_check.tpl +0 -0
  215. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/read.tpl +0 -0
  216. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/reminder_list.tpl +0 -0
  217. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/reminder_mutation.tpl +0 -0
  218. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/reminder_schedule.tpl +0 -0
  219. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/unfollow.tpl +0 -0
  220. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/upgrade.tpl +0 -0
  221. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/bcc/version.tpl +0 -0
  222. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/command/attachment_suffix.tpl +0 -0
  223. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/command/check_message.tpl +0 -0
  224. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/command/freshness_hold.tpl +0 -0
  225. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/command/read_message.tpl +0 -0
  226. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/command/send_result.tpl +0 -0
  227. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/command/sender.tpl +0 -0
  228. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/developer_instructions.md +0 -0
  229. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/inbox_notice.tpl +0 -0
  230. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/locales/en.toml +0 -0
  231. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/locales/zh-CN.toml +0 -0
  232. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/system_service/launchd.plist +0 -0
  233. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/system_service/launchd.sh +0 -0
  234. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/system_service/systemd.service +0 -0
  235. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/system_service/windows.ps1 +0 -0
  236. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/system_service/windows.vbs +0 -0
  237. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_node/resources/system_service/windows.xml +0 -0
  238. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/__init__.py +0 -0
  239. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/access.py +0 -0
  240. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/accounts.py +0 -0
  241. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/activity.py +0 -0
  242. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/app.py +0 -0
  243. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/cli.py +0 -0
  244. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/clock.py +0 -0
  245. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/config.py +0 -0
  246. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/configure.py +0 -0
  247. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/consumers.py +0 -0
  248. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contacts.py +0 -0
  249. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/__init__.py +0 -0
  250. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/__init__.py +0 -0
  251. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/__init__.py +0 -0
  252. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/model.py +0 -0
  253. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/registry.py +0 -0
  254. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/v01_initial_server_schema.py +0 -0
  255. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/v02_refs.py +0 -0
  256. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/v03_roles_oidc.py +0 -0
  257. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/v04_login_order.py +0 -0
  258. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/v05_provider_description.py +0 -0
  259. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/migrations/v06_provider_default_role.py +0 -0
  260. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/contrib/sqlite/plugin.py +0 -0
  261. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/control.py +0 -0
  262. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/gate.py +0 -0
  263. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/history.py +0 -0
  264. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/i18n.py +0 -0
  265. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/images.py +0 -0
  266. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/markdown.py +0 -0
  267. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/__init__.py +0 -0
  268. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/accounts.py +0 -0
  269. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/agents.py +0 -0
  270. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/login.py +0 -0
  271. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/oidc.py +0 -0
  272. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/oidc_login.py +0 -0
  273. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/poll.py +0 -0
  274. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/roles.py +0 -0
  275. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/pages/settings.py +0 -0
  276. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/poll_rendering.py +0 -0
  277. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/polling.py +0 -0
  278. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/protocol.py +0 -0
  279. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/reauth.py +0 -0
  280. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/refs.py +0 -0
  281. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/registry.py +0 -0
  282. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/rendering.py +0 -0
  283. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/THIRD_PARTY.md +0 -0
  284. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/agent-form.js +0 -0
  285. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/alpine-3.17.4.min.js +0 -0
  286. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/alpine-LICENSE.txt +0 -0
  287. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/alpine-collapse-3.17.4.min.js +0 -0
  288. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/alpine-collapse-LICENSE.txt +0 -0
  289. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/alpine-focus-3.17.4.min.js +0 -0
  290. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/alpine-focus-LICENSE.txt +0 -0
  291. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/app.webmanifest +0 -0
  292. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/apple-touch-icon.png +0 -0
  293. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/favicon.svg +0 -0
  294. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/htmx-LICENSE.txt +0 -0
  295. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/htmx.min.js +0 -0
  296. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/hx-alpine-compat-4.0.0.js +0 -0
  297. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/icon-192.png +0 -0
  298. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/icon-512.png +0 -0
  299. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/static/poll.js +0 -0
  300. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/activity_card.html +0 -0
  301. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_contacts_head.html +0 -0
  302. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_form.html +0 -0
  303. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_kinds.html +0 -0
  304. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_list.html +0 -0
  305. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_models.html +0 -0
  306. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_new.html +0 -0
  307. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile.html +0 -0
  308. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_activity.html +0 -0
  309. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_config.html +0 -0
  310. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_events.html +0 -0
  311. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_files.html +0 -0
  312. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_head.html +0 -0
  313. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_skills.html +0 -0
  314. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_status.html +0 -0
  315. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_profile_workspace.html +0 -0
  316. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_remove.html +0 -0
  317. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_row.html +0 -0
  318. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agent_rows.html +0 -0
  319. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/agents.html +0 -0
  320. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/board.svg +0 -0
  321. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/chat.html +0 -0
  322. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/code.html +0 -0
  323. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/components.html +0 -0
  324. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/computer_list.html +0 -0
  325. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/computer_row.html +0 -0
  326. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/computer_rows.html +0 -0
  327. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/computers.html +0 -0
  328. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/contact_rows.html +0 -0
  329. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/contacts.html +0 -0
  330. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/conversation_reminders.html +0 -0
  331. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/enrol_form.html +0 -0
  332. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/enrolled.html +0 -0
  333. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/error.html +0 -0
  334. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/history.html +0 -0
  335. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/history_end.html +0 -0
  336. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/history_rows.html +0 -0
  337. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/history_tail.html +0 -0
  338. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/alarm-clock.svg +0 -0
  339. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/arrow-left.svg +0 -0
  340. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/arrow-right.svg +0 -0
  341. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/calendar.svg +0 -0
  342. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/check.svg +0 -0
  343. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/chevron-down.svg +0 -0
  344. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/chevron-left.svg +0 -0
  345. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/chevron-right.svg +0 -0
  346. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/chevron-up.svg +0 -0
  347. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/copy.svg +0 -0
  348. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/file.svg +0 -0
  349. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/folder.svg +0 -0
  350. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/grid-2x2.svg +0 -0
  351. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/key-round.svg +0 -0
  352. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/languages.svg +0 -0
  353. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/lark.svg +0 -0
  354. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/loader.svg +0 -0
  355. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/log-out.svg +0 -0
  356. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/message-circle.svg +0 -0
  357. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/message-square-text.svg +0 -0
  358. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/monitor.svg +0 -0
  359. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/openai.svg +0 -0
  360. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/paperclip.svg +0 -0
  361. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/pencil.svg +0 -0
  362. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/plus.svg +0 -0
  363. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/repeat.svg +0 -0
  364. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/rotate-cw.svg +0 -0
  365. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/settings.svg +0 -0
  366. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/si-apple.svg +0 -0
  367. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/si-claude.svg +0 -0
  368. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/si-linux.svg +0 -0
  369. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/si-telegram.svg +0 -0
  370. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/sun-moon.svg +0 -0
  371. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/trash-2.svg +0 -0
  372. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/triangle-alert.svg +0 -0
  373. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/unplug.svg +0 -0
  374. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/user-plus.svg +0 -0
  375. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/users.svg +0 -0
  376. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/wecom.svg +0 -0
  377. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/icons/x.svg +0 -0
  378. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/image.html +0 -0
  379. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/login.html +0 -0
  380. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/login_form.html +0 -0
  381. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/password_form.html +0 -0
  382. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/presence.html +0 -0
  383. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/profile.html +0 -0
  384. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/rail.html +0 -0
  385. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/remove_ask.html +0 -0
  386. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/remove_form.html +0 -0
  387. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/review_card.html +0 -0
  388. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/scripts.html +0 -0
  389. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/settings.html +0 -0
  390. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/settings_accounts.html +0 -0
  391. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/settings_appearance.html +0 -0
  392. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/settings_oidc.html +0 -0
  393. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/settings_roles.html +0 -0
  394. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/settings_security.html +0 -0
  395. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/sign.svg +0 -0
  396. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/resources/templates/unreachable.html +0 -0
  397. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/review.py +0 -0
  398. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/secrets.py +0 -0
  399. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/sessions.py +0 -0
  400. {bazaar_compute_node-0.2.1rc7 → bazaar_compute_node-0.2.1rc8}/src/bazaar_compute_server/storage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bazaar-compute-node
3
- Version: 0.2.1rc7
3
+ Version: 0.2.1rc8
4
4
  Summary: Runtime-agnostic computer node daemon for agents and channels.
5
5
  License-Expression: AGPL-3.0-only
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bazaar-compute-node"
3
- version = "0.2.1rc7"
3
+ version = "0.2.1rc8"
4
4
  description = "Runtime-agnostic computer node daemon for agents and channels."
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-only"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bazaar-compute-node"
3
- version = "0.2.1rc7"
3
+ version = "0.2.1rc8"
4
4
  description = "Runtime-agnostic computer node daemon for agents and channels."
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-only"
@@ -15,7 +15,7 @@ from uuid import uuid7
15
15
  import aiosqlite
16
16
 
17
17
  from ...clock import now_ms
18
- from ...permissions import Permission
18
+ from ...permissions import SHARE_POINTS, Permission
19
19
  from ...protocol import Event
20
20
  from ...secrets import derive, hash_secret, new_secret, verify_secret
21
21
  from ...storage import (
@@ -514,7 +514,7 @@ class SqliteStorage(IStorage):
514
514
  async def allowed_targets(
515
515
  self, account_id: str, kind: str, point: Permission
516
516
  ) -> set[str]:
517
- """Ownership and the union of role grants, including explicit computer-to-agent grants."""
517
+ """Ownership and grants explicitly attached to this resource kind."""
518
518
  account = await self.get_account(account_id)
519
519
  if account is None:
520
520
  return set()
@@ -537,26 +537,15 @@ class SqliteStorage(IStorage):
537
537
  (account_id, f"{kind}_owner"),
538
538
  ) as rows:
539
539
  targets = {row["target_id"] async for row in rows}
540
+ if point not in SHARE_POINTS[kind]:
541
+ return targets
540
542
  async with db.execute(
541
- "SELECT kind,target_id,ext FROM relations WHERE subject_id IN (SELECT role_id FROM account_roles WHERE account_id=?) AND kind IN (?,?)",
542
- (account_id, f"{kind}_share_role", "computer_share_role"),
543
+ "SELECT target_id,ext FROM relations WHERE subject_id IN (SELECT role_id FROM account_roles WHERE account_id=?) AND kind=?",
544
+ (account_id, f"{kind}_share_role"),
543
545
  ) as rows:
544
- grants = await rows.fetchall()
545
- computers = set()
546
- for grant in grants:
547
- if point not in json.loads(grant["ext"])["permissions"]:
548
- continue
549
- if grant["kind"] == f"{kind}_share_role":
550
- targets.add(grant["target_id"])
551
- elif kind == "agent":
552
- computers.add(grant["target_id"])
553
- if computers:
554
- async with db.execute(
555
- "SELECT target_id,ext FROM relations WHERE kind='agent_owner'"
556
- ) as rows:
557
- async for row in rows:
558
- if json.loads(row["ext"])["computer_id"] in computers:
559
- targets.add(row["target_id"])
546
+ async for row in rows:
547
+ if point in json.loads(row["ext"])["permissions"]:
548
+ targets.add(row["target_id"])
560
549
  return targets
561
550
 
562
551
  # ---- accounts --------------------------------------------------------
@@ -219,7 +219,7 @@ async def _views(
219
219
  visible = await access.visible("agent", [agent.id for agent in agents_of(views)])
220
220
  computer_actions = {
221
221
  point: await access.targets("computer", point)
222
- for point in SHARE_POINTS["computer"]
222
+ for point in (*SHARE_POINTS["computer"], Permission.COMPUTERS_SHARE)
223
223
  }
224
224
  agent_actions = {
225
225
  point: await access.targets("agent", point) for point in SHARE_POINTS["agent"]
@@ -19,6 +19,7 @@ from ..protocol import MAX_NAME_CHARS
19
19
  from ..refs import Refs, expanded
20
20
  from ..rendering import Renderer
21
21
  from ..storage import IStorage
22
+ from .shares import SharePages
22
23
 
23
24
 
24
25
  class ComputerPages:
@@ -71,6 +72,15 @@ class ComputerPages:
71
72
  self, request: Request, page: Fleet, selected: ComputerView | None, *, view: str
72
73
  ) -> Response:
73
74
  await self.refs.load(_named(page.computers, selected))
75
+ context = {}
76
+ if (
77
+ selected is not None
78
+ and request.query_params.get("tab") == "sharing"
79
+ and Permission.COMPUTERS_SHARE in selected.actions
80
+ ):
81
+ context = await SharePages(self._storage, self._render, self.refs).context(
82
+ request, "computer", selected.computer.id
83
+ )
74
84
  return self._render.page(
75
85
  request,
76
86
  "computers",
@@ -83,6 +93,7 @@ class ComputerPages:
83
93
  else str(self.refs.ref(selected.computer.id)),
84
94
  enrolment=None,
85
95
  view=view,
96
+ **context,
86
97
  )
87
98
 
88
99
  @allowed(Permission.COMPUTERS_VIEW)
@@ -127,7 +138,17 @@ class ComputerPages:
127
138
  selected = await self._selected(request)
128
139
  if selected is None:
129
140
  return HTMLResponse("", status_code=404)
130
- return self._render.fragment(request, "computer_detail.html", selected=selected)
141
+ context = {}
142
+ if (
143
+ request.query_params.get("tab") == "sharing"
144
+ and Permission.COMPUTERS_SHARE in selected.actions
145
+ ):
146
+ context = await SharePages(self._storage, self._render, self.refs).context(
147
+ request, "computer", selected.computer.id
148
+ )
149
+ return self._render.fragment(
150
+ request, "computer_detail.html", selected=selected, **context
151
+ )
131
152
 
132
153
  @expanded("computer_id")
133
154
  @allowed(Permission.COMPUTERS_VIEW, "computer")
@@ -352,9 +352,9 @@ class ProfilePages:
352
352
  """What one tab shows."""
353
353
 
354
354
  if tab == "sharing":
355
- return await SharePages(
356
- self._storage, self._render, self.refs
357
- ).agent_context(request)
355
+ return await SharePages(self._storage, self._render, self.refs).context(
356
+ request, "agent", request.path_params["agent_id"]
357
+ )
358
358
  if tab == "config":
359
359
  agents, reply = await asyncio.gather(
360
360
  held(
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from typing import Any
6
6
 
7
- from pydantic import BaseModel, Field, ValidationError
7
+ from pydantic import BaseModel, ValidationError
8
8
  from starlette.requests import Request
9
9
  from starlette.responses import HTMLResponse, Response
10
10
 
@@ -15,11 +15,6 @@ from ..rendering import Renderer
15
15
  from ..storage import IStorage
16
16
 
17
17
 
18
- class ShareForm(BaseModel):
19
- role: str
20
- permissions: list[Permission] = Field(default_factory=list)
21
-
22
-
23
18
  class ShareChanges(BaseModel):
24
19
  grants: dict[str, frozenset[Permission]]
25
20
 
@@ -46,7 +41,10 @@ class SharePages:
46
41
  target_id = request.path_params["agent_id"]
47
42
  if not await access.can_share("agent", target_id):
48
43
  return HTMLResponse("", status_code=404)
49
- context = await self.agent_context(request)
44
+ return await self._handle(request, "agent", target_id)
45
+
46
+ async def _handle(self, request: Request, kind: str, target_id: str) -> Response:
47
+ context = await self.context(request, kind, target_id)
50
48
  error = None
51
49
  if request.method == "POST":
52
50
  form = await request.form()
@@ -64,92 +62,46 @@ class SharePages:
64
62
  else:
65
63
  try:
66
64
  await self._storage.save_role_shares(
67
- "agent", target_id, values.grants, points
65
+ kind, target_id, values.grants, points
68
66
  )
69
67
  except LookupError:
70
68
  error = "shares.invalid"
71
69
  else:
72
- context = await self.agent_context(request)
70
+ context = await self.context(request, kind, target_id)
73
71
  context["error"] = error
74
- return self._render.fragment(request, "agent_profile_sharing.html", **context)
72
+ return self._render.fragment(request, "shares.html", **context)
75
73
 
76
- async def agent_context(self, request: Request) -> dict[str, Any]:
74
+ async def context(
75
+ self, request: Request, kind: str, target_id: str
76
+ ) -> dict[str, Any]:
77
77
  access = Access.of(request)
78
- target_id = request.path_params["agent_id"]
79
78
  points = [
80
79
  point
81
- for point in SHARE_POINTS["agent"]
82
- if await access.can("agent", target_id, point)
80
+ for point in SHARE_POINTS[kind]
81
+ if await access.can(kind, target_id, point)
83
82
  ]
84
83
  roles = await self._storage.list_roles()
85
- shares = await self._storage.list_role_shares("agent", target_id)
84
+ shares = await self._storage.list_role_shares(kind, target_id)
86
85
  grants = {
87
86
  share.role_id: sorted(share.permissions & set(points)) for share in shares
88
87
  }
88
+ key = self.refs.ref(target_id)
89
+ url = (
90
+ f"/computers/{key}/shares"
91
+ if kind == "computer"
92
+ else f"/agents/{self.refs.ref(request.path_params['computer_id'])}/{key}/shares"
93
+ )
89
94
  return {
90
95
  "points": points,
96
+ "share_kind": kind,
97
+ "share_id": f"computer-sharing-{key}"
98
+ if kind == "computer"
99
+ else "agent-sharing",
91
100
  "share_data": {
92
101
  "roles": [{"id": role.id, "name": role.name} for role in roles],
93
102
  "grants": grants,
103
+ "default": f"{kind}s.view",
94
104
  },
95
- "share_url": f"/agents/{self.refs.ref(request.path_params['computer_id'])}/{self.refs.ref(target_id)}/shares",
105
+ "share_url": url,
96
106
  "error": None,
97
107
  }
98
-
99
- async def _handle(self, request: Request, kind: str, target_id: str) -> Response:
100
- access = Access.of(request)
101
- roles = await self._storage.list_roles()
102
- points = [
103
- point
104
- for point in SHARE_POINTS[kind]
105
- if await access.can(kind, target_id, point)
106
- ]
107
- error = None
108
- saved = False
109
- selected = request.query_params.get("role")
110
- if request.method == "POST":
111
- form = await request.form()
112
- try:
113
- values = ShareForm.model_validate(
114
- {
115
- "role": form.get("role"),
116
- "permissions": form.getlist("permissions"),
117
- }
118
- )
119
- except ValidationError:
120
- error = "shares.invalid"
121
- else:
122
- selected = values.role
123
- if selected not in {role.id for role in roles} or not set(
124
- values.permissions
125
- ) <= set(points):
126
- error = "shares.invalid"
127
- else:
128
- try:
129
- await self._storage.save_role_shares(
130
- kind,
131
- target_id,
132
- {selected: frozenset(values.permissions)},
133
- frozenset(points),
134
- )
135
- except LookupError:
136
- error = "shares.invalid"
137
- else:
138
- saved = True
139
- if selected is None and roles:
140
- selected = roles[0].id
141
- if selected is not None and selected not in {role.id for role in roles}:
142
- return HTMLResponse("", status_code=404)
143
- shares = await self._storage.list_role_shares(kind, target_id)
144
- return self._render.fragment(
145
- request,
146
- "shares.html",
147
- kind=kind,
148
- roles=roles,
149
- selected=selected,
150
- points=points,
151
- grants={share.role_id: share.permissions for share in shares},
152
- url=request.url.path,
153
- error=error,
154
- saved=saved,
155
- )
@@ -74,16 +74,16 @@ POLL_HANDLERS = MappingProxyType(
74
74
 
75
75
  SHARE_POINTS = MappingProxyType(
76
76
  {
77
- "computer": tuple(
78
- point
79
- for point in Permission
80
- if point.module in ("computers", "agents")
81
- and point != Permission.COMPUTERS_CREATE
77
+ "computer": (
78
+ Permission.COMPUTERS_VIEW,
79
+ Permission.AGENTS_CREATE,
80
+ Permission.COMPUTERS_DELETE,
82
81
  ),
83
- "agent": tuple(
84
- point
85
- for point in Permission
86
- if point.module == "agents" and point != Permission.AGENTS_CREATE
82
+ "agent": (
83
+ Permission.AGENTS_VIEW,
84
+ Permission.AGENTS_UPDATE,
85
+ Permission.AGENTS_DELETE,
86
+ Permission.AGENTS_APPROVE,
87
87
  ),
88
88
  }
89
89
  )
@@ -436,3 +436,5 @@
436
436
 
437
437
  "error.403.title" = "Access denied"
438
438
  "error.403.text" = "Your account does not have permission to access this page. Choose an available module from the navigation."
439
+
440
+ "computers.overview" = "Overview"
@@ -436,3 +436,5 @@
436
436
 
437
437
  "error.403.title" = "无权限访问"
438
438
  "error.403.text" = "你的账号没有访问此页面的权限,请通过导航进入可访问的模块。"
439
+
440
+ "computers.overview" = "概览"
@@ -742,9 +742,6 @@ a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outlin
742
742
 
743
743
 
744
744
  .config > fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
745
- #sharing .sheet { padding: 16px; overflow-y: auto; }
746
- #sharing .sheet h3 { padding: 0 0 10px; }
747
- #sharing .sheet .foot { padding: 12px 0 0; }
748
745
 
749
746
  .role-default { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 12px; margin: 12px 0 20px 82px; color: var(--muted); font-size: .9em; }
750
747
 
@@ -785,8 +782,8 @@ a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outlin
785
782
 
786
783
  .login-identity small { color: var(--muted); font-size: 12px; }
787
784
 
788
- /* Role sharing is edited as one batch in the agent's own tab. */
789
- .agent-sharing { max-width: 980px; }
785
+ /* Role sharing is edited as one batch in each resource's sharing tab. */
786
+ .role-sharing { max-width: 980px; }
790
787
  .share-permissions { margin: 0; padding: 0; border: 0; }
791
788
  .share-permissions legend { margin-bottom: 14px; padding: 0; color: var(--fg); font-weight: 600; }
792
789
  .share-hint, .share-summary, .share-empty { color: var(--muted); font-size: 12px; }
@@ -796,7 +793,7 @@ a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outlin
796
793
  .share-list-head { height: 58px; display: flex; align-items: center; gap: 12px; padding: 14px; background: var(--float); border-bottom: 1px solid var(--line); font-weight: 600; }
797
794
  .share-search { display: block; width: calc(100% - 24px); margin: 12px; border: 1px solid var(--edge); border-radius: var(--r-sm); background: var(--input); color: var(--fg); padding: 7px 9px; font: inherit; }
798
795
  .share-search:focus { outline: none; border-color: var(--accent); }
799
- .agent-sharing .btn:disabled { opacity: .4; cursor: default; }
796
+ .role-sharing .btn:disabled { opacity: .4; cursor: default; }
800
797
  .share-select-all { margin: 0 14px 10px; color: var(--muted); }
801
798
  .share-rows { height: 220px; overflow: auto; }
802
799
  .share-role { display: flex; align-items: center; gap: 10px; padding: 12px 14px; cursor: pointer; }
@@ -128,7 +128,7 @@ document.addEventListener('alpine:init', () => {
128
128
  this.original = data.grants;
129
129
  this.grants = structuredClone(data.grants);
130
130
  this.labels = Object.fromEntries([...this.$el.querySelectorAll('[data-point]')].map(el => [el.dataset.point, el.textContent]));
131
- this.permissions = Object.keys(this.labels).filter(point => point === 'agents.view');
131
+ this.permissions = Object.keys(this.labels).filter(point => point === data.default);
132
132
  this.leaveHandler = event => {
133
133
  if (!this.dirty || this.saving || !(event.target instanceof Element)) return;
134
134
  const navigation = event.target.closest('a[href], .tab[hx-get]');
@@ -1,10 +1,20 @@
1
1
  {% import "components.html" as c with context %}
2
- <div id="computer-view" hx-get="/computers/{{ ref(selected.computer.id) }}/detail" hx-trigger="poll-refresh, agents-changed from:body" x-poll data-poll='{{ poll("computer", selected)|tojson }}' x-data="computerState" data-computer='{{ poll("computer-state", selected)|tojson }}' hx-swap="outerMorph">
2
+ {% set sharing = share_data is defined %}
3
+ {% set base = "/computers/" ~ ref(selected.computer.id) %}
4
+ <div id="computer-view" hx-get="/computers/{{ ref(selected.computer.id) }}/detail{% if sharing %}?tab=sharing{% endif %}" hx-trigger="poll-refresh, agents-changed from:body" x-poll data-poll='{{ poll("computer", selected)|tojson }}' x-data="computerState" data-computer='{{ poll("computer-state", selected)|tojson }}' hx-swap="outerMorph">
3
5
  {% call c.column_header(selected.computer.name, back="/computers") %}
4
6
  <span class="sub">{% if selected.system in c.os_icons %}<span class="os" title="{{ t.text("system." ~ selected.system) if t.has("system." ~ selected.system) else selected.system }}">{{ c.icon(c.os_icons[selected.system]) }}</span>{% endif %}<span x-show="queued" x-text='{{ t.text("computers.queue", {"queued": "{queued}"})|tojson }}.replace("{queued}", queued)'></span></span>
5
- {% if permissions.COMPUTERS_SHARE in selected.actions %}<button class="btn" type="button" hx-get="/computers/{{ ref(selected.computer.id) }}/shares" x-bind="opener" hx-target="#sharing" hx-swap="outerHTML">{{ t.text("shares.computer") }}</button>{% endif %}
6
7
  {% endcall %}
8
+ {% if permissions.COMPUTERS_SHARE in selected.actions %}
9
+ <div class="switch text">
10
+ <button class="tab{% if not sharing %} on{% endif %}" type="button" hx-get="{{ base }}" hx-target="#main" hx-swap="innerHTML" hx-push-url="true">{{ t.text("computers.overview") }}</button>
11
+ <button class="tab{% if sharing %} on{% endif %}" type="button" hx-get="{{ base }}?tab=sharing" hx-target="#main" hx-swap="innerHTML" hx-push-url="true">{{ t.text("profile_tab.sharing") }}</button>
12
+ </div>
13
+ {% endif %}
7
14
  <div class="body">
15
+ {% if sharing %}
16
+ {% include "shares.html" %}
17
+ {% else %}
8
18
  {# the commands that connect a computer just added, shown this once at the
9
19
  top of its page; the pane's refresh has no token to show, so the box
10
20
  keeps what it holds. the boxes marked to be skipped are named by their
@@ -29,5 +39,6 @@
29
39
  <p class="st">{{ t.text("computers.remove_hint") }}</p>
30
40
  <button class="btn danger" hx-get="/computers/{{ ref(selected.computer.id) }}/remove" hx-target="#remove-{{ ref(selected.computer.id) }}" hx-swap="outerHTML">{{ c.icon("trash-2") }} {{ t.text("computers.remove") }}</button>
31
41
  </div>{% endif %}
42
+ {% endif %}
32
43
  </div>
33
44
  </div>
@@ -1,10 +1,10 @@
1
1
  {% import "components.html" as c with context %}
2
- <div id="agent-sharing" class="agent-sharing" x-data="roleSharing" data-sharing='{{ share_data|tojson }}' data-leave="{{ t.text('shares.leave') }}" @beforeunload.window="if (dirty) { $event.preventDefault(); $event.returnValue = ''; }">
3
- <form hx-post="{{ share_url }}" hx-target="#agent-sharing" hx-swap="outerHTML" @submit="saving = true" @htmx:finally:request="saving = false">
2
+ <div id="{{ share_id }}" class="role-sharing"{% if share_kind == "computer" %} hx-morph-skip{% endif %} x-data="roleSharing" data-sharing='{{ share_data|tojson }}' data-leave="{{ t.text('shares.leave') }}" @beforeunload.window="if (dirty) { $event.preventDefault(); $event.returnValue = ''; }">
3
+ <form hx-post="{{ share_url }}" hx-target="#{{ share_id }}" hx-swap="outerHTML" @submit="saving = true" @htmx:finally:request="saving = false">
4
4
  <input type="hidden" name="changes" :value="JSON.stringify({grants: changes})">
5
5
  {% if error %}<p class="err" role="alert">{{ t.text(error) }}</p>{% endif %}
6
6
  <fieldset class="permission-group share-permissions"><legend>{{ t.text("shares.permissions") }}</legend>
7
- {% for point in points %}<label class="check"><input type="checkbox" x-model="permissions" value="{{ point }}"><span>{{ t.text("shares.action." ~ point.value.split('.')[1]) }}</span></label>{% endfor %}
7
+ {% for point in points %}<label class="check"><input type="checkbox" x-model="permissions" value="{{ point }}"><span>{{ t.text(point if share_kind == "computer" else "shares.action." ~ point.value.split('.')[1]) }}</span></label>{% endfor %}
8
8
  </fieldset>
9
9
  <p class="share-hint">{{ t.text("shares.transfer_hint") }}</p>
10
10
  <div class="share-transfer">
@@ -33,5 +33,5 @@
33
33
  </div>
34
34
  <div class="share-footer"><span class="share-hint" x-show="dirty" x-cloak>{{ t.text("shares.unsaved") }}</span><div class="share-buttons"><button class="btn" type="button" @click="reset()" :disabled="!dirty || saving">{{ t.text("computers.cancel") }}</button><button class="btn p" type="submit" :disabled="!dirty || saving">{{ t.text("manage.save") }}</button></div></div>
35
35
  </form>
36
- <div hidden data-labels>{% for point in points %}<span data-point="{{ point }}">{{ t.text("shares.action." ~ point.value.split('.')[1]) }}</span>{% endfor %}</div>
36
+ <div hidden data-labels>{% for point in points %}<span data-point="{{ point }}">{{ t.text(point if share_kind == "computer" else "shares.action." ~ point.value.split('.')[1]) }}</span>{% endfor %}</div>
37
37
  </div>
@@ -20,7 +20,6 @@
20
20
  <body data-build="{{ build }}" x-data="application" x-bind="connection" hx-swap:inherited="innerMorph" hx-headers:inherited='js:{"X-Timezone": Intl.DateTimeFormat().resolvedOptions().timeZone, "X-Build": "{{ build }}"}'>
21
21
  <div class="app">
22
22
  {% include "rail.html" %}
23
- <div id="sharing" hidden></div>
24
23
  <div id="main" class="main" :aria-busy="pending.size > 0" x-show="!unreachable">{% include content %}</div>
25
24
  {% include "unreachable.html" %}
26
25
  </div>
@@ -1,19 +0,0 @@
1
- {% import "components.html" as c with context %}
2
- <div class="veil" id="sharing" x-data="dialog(true)" x-bind="dialog" x-cloak @click.self="open = false">
3
- <div class="sheet" role="dialog" aria-modal="true" aria-labelledby="sharing-title" x-trap.inert.noscroll="open" tabindex="-1">
4
- <h3 id="sharing-title">{{ t.text("shares." ~ kind) }}</h3>
5
- <p>{{ t.text("shares.hint") }}</p>
6
- {% if error %}<p class="err" role="alert">{{ t.text(error) }}</p>{% endif %}
7
- {% if saved %}<p role="status">{{ t.text("shares.saved") }}</p>{% endif %}
8
- {% if roles %}
9
- <form hx-post="{{ url }}" hx-target="#sharing" hx-swap="outerHTML">
10
- <div class="field"><label for="share-role">{{ t.text("shares.role") }}</label><span class="select"><select id="share-role" name="role" hx-get="{{ url }}" hx-trigger="change" hx-target="#sharing" hx-swap="outerHTML">{% for role in roles %}<option value="{{ role.id }}"{% if role.id == selected %} selected{% endif %}>{{ role.name }}{% if role.id in grants %} · {{ t.text("shares.granted") }}{% endif %}</option>{% endfor %}</select>{{ c.icon("chevron-down") }}</span></div>
11
- <fieldset class="permission-group"><legend>{{ t.text("roles.permissions") }}</legend>
12
- {% for point in points %}<label class="check"><input type="checkbox" name="permissions" value="{{ point }}"{% if point in grants.get(selected, ()) %} checked{% endif %}><span>{{ t.text(point) }}</span></label>{% endfor %}
13
- </fieldset>
14
- <p>{{ t.text("shares.revoke_hint") }}</p>
15
- <div class="foot"><button class="btn" type="button" @click="open = false">{{ t.text("computers.cancel") }}</button><button class="btn p" type="submit">{{ t.text("manage.save") }}</button></div>
16
- </form>
17
- {% else %}<p>{{ t.text("accounts.no_roles") }}</p><button class="btn" type="button" @click="open = false">{{ t.text("computers.cancel") }}</button>{% endif %}
18
- </div>
19
- </div>