bazaar-compute-node 0.1.16__tar.gz → 0.1.18__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 (105) hide show
  1. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/PKG-INFO +3 -1
  2. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/README.md +1 -0
  3. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/pyproject.toml +3 -1
  4. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/pyproject.toml.orig +3 -1
  5. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/agent.py +1 -0
  6. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/bcc.py +4 -16
  7. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/__init__.py +1 -0
  8. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/api.py +893 -0
  9. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/approval.py +568 -0
  10. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/attachments.py +596 -0
  11. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/channel.py +964 -0
  12. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/frame.py +118 -0
  13. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/identity.py +139 -0
  14. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/outbound.py +654 -0
  15. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/plugin.py +51 -0
  16. bazaar_compute_node-0.1.18/src/bazaar_compute_node/contrib/lark/transport.py +659 -0
  17. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/channel.py +29 -11
  18. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/outbound.py +6 -1
  19. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/wecom/channel.py +13 -3
  20. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/channel.py +2 -0
  21. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/instruction.py +6 -6
  22. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/timerwheel.py +17 -0
  23. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/i18n/catalog.py +3 -1
  24. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/i18n/english.py +2 -0
  25. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/i18n/schinese.py +2 -0
  26. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/LICENSE +0 -0
  27. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/__init__.py +0 -0
  28. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/__init__.py +0 -0
  29. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/agent_management.py +0 -0
  30. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/application.py +0 -0
  31. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/attachments.py +0 -0
  32. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/command.py +0 -0
  33. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/config.py +0 -0
  34. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/registry.py +0 -0
  35. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/reminder_dispatch.py +0 -0
  36. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/system_service.py +0 -0
  37. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/transport.py +0 -0
  38. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/windows_pipe.py +0 -0
  39. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/app/wrapper.py +0 -0
  40. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/cli.py +0 -0
  41. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/__init__.py +0 -0
  42. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/__init__.py +0 -0
  43. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/approval.py +0 -0
  44. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/client.py +0 -0
  45. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/events.py +0 -0
  46. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/plugin.py +0 -0
  47. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/process.py +0 -0
  48. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/protocol.py +0 -0
  49. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/codex/runtime.py +0 -0
  50. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/logging/__init__.py +0 -0
  51. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/logging/audit.py +0 -0
  52. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/logging/plugin.py +0 -0
  53. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/__init__.py +0 -0
  54. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/agent_migration.py +0 -0
  55. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/codec.py +0 -0
  56. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/database.py +0 -0
  57. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/migrations.py +0 -0
  58. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/plugin.py +0 -0
  59. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/reminder_codec.py +0 -0
  60. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/reminder_database.py +0 -0
  61. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/reminder_migration.py +0 -0
  62. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/reminder_repository.py +0 -0
  63. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/repository.py +0 -0
  64. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/sqlite/scoped_repository.py +0 -0
  65. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/__init__.py +0 -0
  66. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/api.py +0 -0
  67. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/approval.py +0 -0
  68. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/attachments.py +0 -0
  69. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/identity.py +0 -0
  70. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/markdown.py +0 -0
  71. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/telegram/plugin.py +0 -0
  72. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/wecom/__init__.py +0 -0
  73. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/wecom/markdown.py +0 -0
  74. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/wecom/outbound.py +0 -0
  75. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/contrib/wecom/plugin.py +0 -0
  76. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/__init__.py +0 -0
  77. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/approval.py +0 -0
  78. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/audit.py +0 -0
  79. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/client.py +0 -0
  80. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/command.py +0 -0
  81. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/concurrency.py +0 -0
  82. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/correlation.py +0 -0
  83. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/lifecycle.py +0 -0
  84. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/models/__init__.py +0 -0
  85. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/models/entities.py +0 -0
  86. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/models/reminder.py +0 -0
  87. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/models/reminder_owner.py +0 -0
  88. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/models/states.py +0 -0
  89. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/observability.py +0 -0
  90. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/__init__.py +0 -0
  91. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/command.py +0 -0
  92. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/delivery.py +0 -0
  93. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/error_feedback.py +0 -0
  94. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/reminder.py +0 -0
  95. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/reminder_command.py +0 -0
  96. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/services.py +0 -0
  97. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/session.py +0 -0
  98. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/orchestration/turn.py +0 -0
  99. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/outcomes.py +0 -0
  100. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/paths.py +0 -0
  101. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/reminder.py +0 -0
  102. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/reminder_schedule.py +0 -0
  103. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/runtime.py +0 -0
  104. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/core/storage.py +0 -0
  105. {bazaar_compute_node-0.1.16 → bazaar_compute_node-0.1.18}/src/bazaar_compute_node/i18n/__init__.py +0 -0
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bazaar-compute-node
3
- Version: 0.1.16
3
+ Version: 0.1.18
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
7
7
  Requires-Dist: aiohttp>=3.12.0
8
8
  Requires-Dist: aiosqlite>=0.20.0
9
9
  Requires-Dist: cryptography>=45.0.0
10
+ Requires-Dist: protobug==1.0.0
10
11
  Requires-Dist: tzdata>=2024.1 ; sys_platform == 'win32'
11
12
  Requires-Python: >=3.14
12
13
  Project-URL: Repository, https://github.com/yuchanns/bazaar-compute-node
@@ -98,6 +99,7 @@ Windows: Get-Content "$env:USERPROFILE\.bcn\system-service.log" -Wait
98
99
  | --- | --- |
99
100
  | ✅ | WeCom / 企业微信 |
100
101
  | ✅ | Telegram |
102
+ | ✅ | Lark / 飞书 |
101
103
  | 🚧 | GitHub |
102
104
  | 🚧 | GitLab |
103
105
 
@@ -84,6 +84,7 @@ Windows: Get-Content "$env:USERPROFILE\.bcn\system-service.log" -Wait
84
84
  | --- | --- |
85
85
  | ✅ | WeCom / 企业微信 |
86
86
  | ✅ | Telegram |
87
+ | ✅ | Lark / 飞书 |
87
88
  | 🚧 | GitHub |
88
89
  | 🚧 | GitLab |
89
90
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bazaar-compute-node"
3
- version = "0.1.16"
3
+ version = "0.1.18"
4
4
  description = "Runtime-agnostic computer node daemon for agents and channels."
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-only"
@@ -10,6 +10,7 @@ dependencies = [
10
10
  "aiohttp>=3.12.0",
11
11
  "aiosqlite>=0.20.0",
12
12
  "cryptography>=45.0.0",
13
+ "protobug==1.0.0",
13
14
  "tzdata>=2024.1; sys_platform == 'win32'",
14
15
  ]
15
16
 
@@ -25,6 +26,7 @@ codex = "bazaar_compute_node.contrib.codex.plugin:create_runtime"
25
26
  [project.entry-points."bazaar_compute_node.channels"]
26
27
  wecom = "bazaar_compute_node.contrib.wecom.plugin:builder"
27
28
  telegram = "bazaar_compute_node.contrib.telegram.plugin:builder"
29
+ lark = "bazaar_compute_node.contrib.lark.plugin:builder"
28
30
 
29
31
  [project.entry-points."bazaar_compute_node.storages"]
30
32
  sqlite = "bazaar_compute_node.contrib.sqlite.plugin:create_storage"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "bazaar-compute-node"
3
- version = "0.1.16"
3
+ version = "0.1.18"
4
4
  description = "Runtime-agnostic computer node daemon for agents and channels."
5
5
  readme = "README.md"
6
6
  license = "AGPL-3.0-only"
@@ -10,6 +10,7 @@ dependencies = [
10
10
  "aiohttp>=3.12.0",
11
11
  "aiosqlite>=0.20.0",
12
12
  "cryptography>=45.0.0",
13
+ "protobug==1.0.0",
13
14
  "tzdata>=2024.1; sys_platform == 'win32'",
14
15
  ]
15
16
 
@@ -25,6 +26,7 @@ codex = "bazaar_compute_node.contrib.codex.plugin:create_runtime"
25
26
  [project.entry-points."bazaar_compute_node.channels"]
26
27
  wecom = "bazaar_compute_node.contrib.wecom.plugin:builder"
27
28
  telegram = "bazaar_compute_node.contrib.telegram.plugin:builder"
29
+ lark = "bazaar_compute_node.contrib.lark.plugin:builder"
28
30
 
29
31
  [project.entry-points."bazaar_compute_node.storages"]
30
32
  sqlite = "bazaar_compute_node.contrib.sqlite.plugin:create_storage"
@@ -102,6 +102,7 @@ class AgentApplication:
102
102
  options=dict(configuration.channel.options),
103
103
  workspace=self.workspace_path,
104
104
  translator=self.translator,
105
+ timer_wheel=self.timer_wheel,
105
106
  )
106
107
  )
107
108
  self.channel: IChannel = AgentScopedChannel(self.agent_id, provider_channel)
@@ -483,24 +483,12 @@ def _message_header_fields(
483
483
  sender_value = message.get("sender")
484
484
  sender: str | None = None
485
485
  if sender_value is not None:
486
- if isinstance(sender_value, str) and sender_value:
487
- sender = sender_value
488
- elif not isinstance(sender_value, Mapping):
486
+ if not isinstance(sender_value, Mapping):
489
487
  _invalid_response("command response contains an invalid message sender")
490
488
  else:
491
489
  sender_id = sender_value.get("id")
492
490
  sender_name = sender_value.get("name")
493
- if sender_id is not None and (
494
- not isinstance(sender_id, str) or not sender_id
495
- ):
496
- _invalid_response("command response contains an invalid sender id")
497
- if sender_name is not None and (
498
- not isinstance(sender_name, str) or not sender_name
499
- ):
500
- _invalid_response("command response contains an invalid sender name")
501
- sender = sender_name or sender_id
502
- if sender is None:
503
- _invalid_response("command response contains an empty message sender")
491
+ sender = f"@{sender_id}({sender_name})" if sender_name else f"@{sender_id}"
504
492
  return (
505
493
  target,
506
494
  message_id,
@@ -553,7 +541,7 @@ def _format_check_message(message: Mapping[str, object]) -> str:
553
541
  line += f" reply_to={reply_to_message_id}"
554
542
  line += "] "
555
543
  if sender is not None:
556
- line += f"@{sender}: "
544
+ line += f"{sender} "
557
545
  return line + body + _attachment_suffix(message)
558
546
 
559
547
 
@@ -583,7 +571,7 @@ def _format_read_message(
583
571
  fields.append(f"replyTo={reply_to_message_id}")
584
572
  line = f"[{index}/{count} {' '.join(fields)}] "
585
573
  if sender is not None:
586
- line += f"@{sender}: "
574
+ line += f"{sender} "
587
575
  return line + body + _attachment_suffix(message)
588
576
 
589
577
 
@@ -0,0 +1 @@
1
+ """Lark long-connection Channel adapter."""