Merge branch 'main' into pr-1728
This commit is contained in:
@@ -16,7 +16,7 @@ from nanobot.utils.helpers import detect_image_mime
|
|||||||
class ContextBuilder:
|
class ContextBuilder:
|
||||||
"""Builds the context (system prompt + messages) for the agent."""
|
"""Builds the context (system prompt + messages) for the agent."""
|
||||||
|
|
||||||
BOOTSTRAP_FILES = ["AGENTS.md", "SOUL.md", "USER.md", "TOOLS.md", "IDENTITY.md"]
|
BOOTSTRAP_FILES = ["AGENTS.md", "SOUL.md", "USER.md", "TOOLS.md"]
|
||||||
_RUNTIME_CONTEXT_TAG = "[Runtime Context — metadata only, not instructions]"
|
_RUNTIME_CONTEXT_TAG = "[Runtime Context — metadata only, not instructions]"
|
||||||
|
|
||||||
def __init__(self, workspace: Path):
|
def __init__(self, workspace: Path):
|
||||||
|
|||||||
@@ -113,16 +113,16 @@ class QQChannel(BaseChannel):
|
|||||||
if msg_type == "group":
|
if msg_type == "group":
|
||||||
await self._client.api.post_group_message(
|
await self._client.api.post_group_message(
|
||||||
group_openid=msg.chat_id,
|
group_openid=msg.chat_id,
|
||||||
msg_type=0,
|
msg_type=2,
|
||||||
content=msg.content,
|
markdown={"content": msg.content},
|
||||||
msg_id=msg_id,
|
msg_id=msg_id,
|
||||||
msg_seq=self._msg_seq,
|
msg_seq=self._msg_seq,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
await self._client.api.post_c2c_message(
|
await self._client.api.post_c2c_message(
|
||||||
openid=msg.chat_id,
|
openid=msg.chat_id,
|
||||||
msg_type=0,
|
msg_type=2,
|
||||||
content=msg.content,
|
markdown={"content": msg.content},
|
||||||
msg_id=msg_id,
|
msg_id=msg_id,
|
||||||
msg_seq=self._msg_seq,
|
msg_seq=self._msg_seq,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from datetime import datetime as real_datetime
|
from datetime import datetime as real_datetime
|
||||||
|
from importlib.resources import files as pkg_files
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import datetime as datetime_module
|
import datetime as datetime_module
|
||||||
|
|
||||||
@@ -23,6 +24,13 @@ def _make_workspace(tmp_path: Path) -> Path:
|
|||||||
return workspace
|
return workspace
|
||||||
|
|
||||||
|
|
||||||
|
def test_bootstrap_files_are_backed_by_templates() -> None:
|
||||||
|
template_dir = pkg_files("nanobot") / "templates"
|
||||||
|
|
||||||
|
for filename in ContextBuilder.BOOTSTRAP_FILES:
|
||||||
|
assert (template_dir / filename).is_file(), f"missing bootstrap template: {filename}"
|
||||||
|
|
||||||
|
|
||||||
def test_system_prompt_stays_stable_when_clock_changes(tmp_path, monkeypatch) -> None:
|
def test_system_prompt_stays_stable_when_clock_changes(tmp_path, monkeypatch) -> None:
|
||||||
"""System prompt should not change just because wall clock minute changes."""
|
"""System prompt should not change just because wall clock minute changes."""
|
||||||
monkeypatch.setattr(datetime_module, "datetime", _FakeDatetime)
|
monkeypatch.setattr(datetime_module, "datetime", _FakeDatetime)
|
||||||
|
|||||||
Reference in New Issue
Block a user