Initial server source import

This commit is contained in:
sashatrask
2026-09-30 20:30:56 +03:00
commit 170dd941b9
498 changed files with 261563 additions and 0 deletions
+306
View File
@@ -0,0 +1,306 @@
from pathlib import Path
import copy
import sys
import unittest
ROOT = Path(__file__).resolve().parents[1]
APP_DIR = ROOT / 'app'
sys.path.insert(0, str(APP_DIR))
import console_runner
class QueryOverrideTests(unittest.TestCase):
def source(self):
return {
'mode': 'search',
'pages': 20,
'per_page': 10,
'max_targets': 0,
'workers': 2,
'query_overrides': {
'openai': {'pages': 2, 'per_page': 10, 'max_targets': 20},
},
}
def test_exact_query_override_is_applied_without_mutating_source(self):
source = self.source()
original = copy.deepcopy(source)
args = console_runner.build_args_from_source_config(
'dockerhub', source, {}, 'openai',
)
self.assertEqual((args.pages, args.per_page, args.max_targets), (2, 10, 20))
self.assertEqual(source, original)
def test_ordinary_query_retains_source_defaults(self):
args = console_runner.build_args_from_source_config(
'dockerhub', self.source(), {}, 'chatgpt',
)
self.assertEqual((args.pages, args.per_page, args.max_targets), (20, 10, 0))
def test_invalid_query_override_fails_closed(self):
source = self.source()
source['query_overrides']['openai'] = {'workers': 99}
with self.assertRaisesRegex(ValueError, 'unsupported keys: workers'):
console_runner.build_args_from_source_config(
'dockerhub', source, {}, 'openai',
)
source['query_overrides']['openai'] = 'unbounded'
with self.assertRaisesRegex(ValueError, 'must be a mapping'):
console_runner.build_args_from_source_config(
'dockerhub', source, {}, 'openai',
)
class CanonicalOpenAICoverageTests(unittest.TestCase):
def test_retired_exact_query_and_overrides_are_absent(self):
config = console_runner.load_config(str(APP_DIR / 'config.yaml'))
for source_name in ('github', 'gitlab', 'dockerhub'):
source = config['sources'][source_name]
self.assertNotIn('openai', source['queries'])
self.assertNotIn('openai', source['query_overrides'])
self.assertEqual(config['sources']['gitlab']['updated_target_rescan_max_per_cycle'], 1)
self.assertTrue(config['sources']['dockerhub']['require_digest'])
self.assertFalse(config['sources']['dockerhub'].get('updated_target_rescan_enabled', False))
def test_ecosystem_queries_are_source_specific_unique_and_bounded(self):
config = console_runner.load_config(str(APP_DIR / 'config.yaml'))
expected = {
'github': {
'OPENAI_API_KEY': {'pages': 1, 'per_page': 25, 'max_targets': 5},
'api.openai.com': {'pages': 1, 'per_page': 25, 'max_targets': 5},
'openai-agents': {'pages': 1, 'per_page': 50, 'max_targets': 5},
},
'gitlab': {
'openai-api': {'pages': 1, 'per_page': 50, 'max_targets': 5},
'openai-agents': {'pages': 1, 'per_page': 50, 'max_targets': 5},
'librechat': {'pages': 1, 'per_page': 25, 'max_targets': 5},
},
'dockerhub': {
'librechat': {'max_targets': 10},
'lobechat': {'max_targets': 10},
'openai-proxy': {'max_targets': 10},
},
}
for source_name, queries in expected.items():
source = config['sources'][source_name]
self.assertEqual(len(source['queries']), len(set(source['queries'])))
for query, bounds in queries.items():
self.assertEqual(source['queries'].count(query), 1)
self.assertEqual(source['query_overrides'][query], bounds)
args = console_runner.build_args_from_source_config(
source_name, source, config['global'], query,
)
self.assertEqual(
(args.pages, args.per_page, args.max_targets),
(
bounds.get('pages', source['pages']),
bounds.get('per_page', source['per_page']),
bounds['max_targets'],
),
)
self.assertNotIn('OPENAI_API_KEY', config['sources']['gitlab']['queries'])
self.assertNotIn('api.openai.com', config['sources']['dockerhub']['queries'])
for source_name in expected:
source_queries = config['sources'][source_name]['queries']
for retained_query in ('llm', 'ai'):
self.assertEqual(source_queries.count(retained_query), 1)
for retired_query in ('chatgpt', 'gpt', 'model'):
self.assertNotIn(retired_query, source_queries)
self.assertEqual(config['sources']['gitlab']['updated_target_rescan_max_per_cycle'], 1)
self.assertEqual(config['sources']['gitlab']['updated_target_rescan_cooldown_hours'], 24)
self.assertTrue(config['sources']['dockerhub']['require_digest'])
def test_zero_yield_keyword_cohort_is_pruned_consistently(self):
config = console_runner.load_config(str(APP_DIR / 'config.yaml'))
common = {
'autonomous', 'benchmarks', 'claw', 'code-assistant', 'codegen',
'dspy', 'embedding', 'embeddings', 'eval', 'evals', 'gateway',
'grok', 'haystack', 'inference', 'inference-api', 'knowledge',
'llamaindex', 'model', 'model-router', 'models', 'ollama',
'orchestration', 'prompts', 'replicate', 'rerank', 'reranker',
'retrieval', 'router', 'tokenizer', 'tool-use', 'vector', 'vllm',
}
shared = {'chatgpt', 'gpt', 'moonshot'}
expected_sizes = {
'github': 62,
'gitlab': 51,
'dockerhub': 61,
'npm': 19,
'pypi': 41,
'package_git': 36,
'postman': 32,
}
for source_name in ('github', 'gitlab', 'dockerhub', 'npm', 'pypi', 'package_git'):
source = config['sources'][source_name]
queries = source['queries']
self.assertTrue((common | shared).isdisjoint(queries))
self.assertEqual(len(queries), expected_sizes[source_name])
self.assertEqual(len(queries), len(set(queries)))
postman = config['sources']['postman']['queries']
self.assertTrue((shared | {
'openai',
'dashscope-intl.aliyuncs.com',
'generativelanguage.googleapis.com',
}).isdisjoint(postman))
self.assertEqual(len(postman), expected_sizes['postman'])
self.assertEqual(len(postman), len(set(postman)))
self.assertEqual(config['sources']['github_archive']['queries'], ['gharchive'])
self.assertEqual(config['sources']['github_archive_files']['queries'], ['gharchive-files'])
self.assertEqual(config['sources']['github_gists']['queries'], ['gists'])
for source_name in expected_sizes:
source = config['sources'][source_name]
overrides = set(source.get('query_overrides') or {})
self.assertTrue(overrides.issubset(source['queries']))
for source_name in ('github', 'gitlab', 'dockerhub'):
queries = config['sources'][source_name]['queries']
for productive_query in ('llm', 'ai', 'agents', 'chat', 'prompt', 'rag', 'langchain', 'groq'):
self.assertIn(productive_query, queries)
def test_experimental_app_queries_are_source_specific_and_bounded(self):
config = console_runner.load_config(str(APP_DIR / 'config.yaml'))
queries = ['hermes', 'harnes', 'flow', 'helpdesk', 'paperless']
expected = {
'gitlab': ({'pages': 1, 'per_page': 50, 'max_targets': 5}, (1, 50, 5)),
'dockerhub': ({'max_targets': 10}, (30, 100, 10)),
}
for source_name, (override, effective) in expected.items():
source = config['sources'][source_name]
start = source['queries'].index(queries[0])
self.assertEqual(source['queries'][start:start + len(queries)], queries)
for query in queries:
self.assertEqual(source['queries'].count(query), 1)
self.assertEqual(source['query_overrides'][query], override)
args = console_runner.build_args_from_source_config(
source_name, source, config['global'], query,
)
self.assertEqual(
(args.pages, args.per_page, args.max_targets),
effective,
)
self.assertEqual(config['sources']['huggingface']['queries'], ['spaces'])
def test_dockerhub_discovery_policy_is_exact_unique_and_uniform(self):
config = console_runner.load_config(str(APP_DIR / 'config.yaml'))
source = config['sources']['dockerhub']
existing_queries = [
'llm', 'ai', 'agents', 'assistant', 'bot', 'chatbot', 'rag',
'semantic', 'prompt', 'completion', 'completions', 'mcp',
'openrouter', 'groq', 'xai', 'langchain', 'litellm', 'gemini',
'qwen', 'kimi', 'dashscope', 'aistudio', 'studio', 'librechat',
'lobechat', 'openai-proxy', 'open', 'chat', 'chats',
'conversation', 'conversational', 'dialogue', 'copilot',
'coding', 'ai-assistant', 'ai-agent', 'multi-agent', 'workflow',
'workflows', 'llmops', 'benchmark', 'tokens', 'memory',
'function-calling', 'hermes', 'harnes', 'flow', 'helpdesk',
'paperless',
]
confirmed_tail = [
'open-webui', 'ragflow', 'dify', 'flowise', 'crewai', 'n8n',
'langflow', 'autogen', 'browser-use', 'openhands', 'anythingllm',
'agent-zero',
]
expected_overrides = {
query: {'max_targets': 10}
for query in (
'librechat', 'lobechat', 'openai-proxy', 'hermes', 'harnes',
'flow', 'helpdesk', 'paperless',
)
}
self.assertEqual(source['queries'], existing_queries + confirmed_tail)
self.assertEqual(len(source['queries']), 61)
self.assertEqual(source['queries'][-len(confirmed_tail):], confirmed_tail)
self.assertEqual(len(source['queries']), len(set(source['queries'])))
self.assertEqual((source['pages'], source['per_page']), (30, 100))
self.assertEqual(source['query_overrides'], expected_overrides)
for query in source['queries']:
args = console_runner.build_args_from_source_config(
'dockerhub', source, config['global'], query,
)
self.assertEqual((args.pages, args.per_page), (30, 100), query)
self.assertEqual(
args.max_targets,
10 if query in expected_overrides else 0,
query,
)
def test_dockerhub_refresh_and_resource_retry_policy_is_pinned(self):
config = console_runner.load_config(str(APP_DIR / 'config.yaml'))
source = config['sources']['dockerhub']
expected_source_policy = {
'require_digest': True,
'auth_rotation': 'per_scan',
'retry_with_next_auth_on_rate_limit': True,
'rate_limit_cooldown': 1800,
'workers': 2,
'trufflehog_job_memory_limit_bytes': 6442450944,
'timeout': 600,
'trufflehog_concurrency': 4,
'fetch_workers': 5,
'fetch_timeout': 15,
'tag_fetch_workers': 4,
'tag_retry_count': 0,
'tag_retry_delay': 10,
'tag_resolve_limit': 100,
'docker_platform_filter_enabled': True,
'docker_platform_os': 'linux',
'docker_platform_arch': 'amd64',
'docker_platform_candidate_tags': 20,
'docker_images_per_repository': 3,
'docker_content_scan_mode': 'canary',
'docker_layer_canary_basis_points': 10000,
'docker_layer_config_max_bytes': 1048576,
'docker_layer_max_bytes': 268435456,
'docker_layer_image_max_bytes': 1073741824,
'docker_layer_max_layers': 8,
'docker_layer_archive_max_size_bytes': 268435456,
'docker_layer_archive_max_depth': 4,
'docker_layer_archive_timeout_sec': 30,
'docker_layer_blob_timeout_sec': 600,
'docker_layer_filesystem_concurrency': 2,
'docker_layer_blob_max_attempts': 3,
'docker_layer_blob_lease_sec': 1800,
'docker_layer_min_free_bytes': 21474836480,
'docker_layer_checkpoint_delay_sec': 60,
}
expected_retry_policy = {
'target_retry_max_attempts': 3,
'target_retry_base_delay_sec': 3600,
'target_retry_max_delay_sec': 86400,
'target_timeout_retry_delay_sec': 21600,
}
self.assertTrue(source['refresh_registry'])
self.assertEqual(source['docker_repository_refresh_interval_sec'], 86400)
self.assertEqual(source['docker_repository_refresh_max_per_cycle'], 0)
self.assertEqual(
{key: source[key] for key in expected_source_policy},
expected_source_policy,
)
self.assertEqual(
{key: config['global'][key] for key in expected_retry_policy},
expected_retry_policy,
)
if __name__ == '__main__':
unittest.main()