Add AI topics, a sources discovery command, and intelligence-radar's pointer sources.

Topics ai.benchmarks, ai.pricing and ai.models; 'sources --repo' lists
visible sources matching a repo's topics. Registers the five ir-* URL
sources contributed by intelligence-radar (IR-WP-0010-T04).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 7780@bnt-lap001
Assistant-Session: 622cd705-cb31-4322-ba08-dd42e44fa583
This commit is contained in:
tegwick 2026-10-06 00:31:51 +02:00
parent ac8227eead
commit c810fe6dfe
11 changed files with 117 additions and 2 deletions

View file

@ -98,6 +98,24 @@ class Library(unittest.TestCase):
self.assertEqual(reg.validate(registry), [])
self.assertEqual(reg.subscribers_for(registry, 'arxiv-agents'), ['markitect'])
def test_sources_lists_visible_matches_only(self):
write(self.root / 'registry' / 'sources' / 'arxiv-agents.json', {
'id': 'arxiv-agents', 'owner_repo': 'intelligence-radar', 'channel': 'url',
'url': 'https://arxiv.org/list/cs.MA/recent', 'topics': ['research.papers'],
'cadence': 'irregular', 'visibility': 'shared'})
write(self.root / 'registry' / 'sources' / 'private.json', {
'id': 'private', 'owner_repo': 'intelligence-radar', 'channel': 'url',
'url': 'https://example.org', 'topics': ['research.papers'],
'cadence': 'irregular', 'visibility': 'restricted'})
write(self.root / 'registry' / 'subscriptions' / 'markitect.json', {
'repo': 'markitect', 'agent': 'markitect', 'topics': ['research.papers'],
'channels': ['pull']})
registry = reg.load(self.root)
self.assertEqual([s['id'] for s in reg.sources_for(registry, 'markitect')], ['arxiv-agents'])
self.assertEqual([s['id'] for s in reg.sources_for(registry, 'intelligence-radar',
'research.papers')],
['arxiv-agents', 'private'])
# Intake
def test_scan_retains_message_attachment_and_provenance(self):
self.drop('1.eml', mail('Grok <noreply@x.ai>', 'Daily brief', 'Body text', b'attached'))