synapse-hub 2.7.0 → 3.0.0
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.
- package/.agents/agents/live-explorer.md +2 -0
- package/.agents/agents/pom-crafter.md +2 -0
- package/.agents/agents/test-runner.md +3 -0
- package/.agents/skills/lean-impact-scoreboard/SKILL.md +1 -1
- package/.agents/skills/repo-quality-audit/SKILL.md +1 -1
- package/.agents/skills/review-spec/SKILL.md +1 -1
- package/.agents/skills/senior-code-review/SKILL.md +1 -1
- package/.agents/skills/technical-debt-harvester/SKILL.md +1 -1
- package/CLAUDE.md +1 -1
- package/README.en.md +70 -291
- package/README.md +68 -303
- package/docs/ARCHITECTURE.md +48 -2
- package/docs/CONTRIBUTING.md +1 -1
- package/docs/QUALITY_GATES.md +113 -0
- package/package.json +1 -1
- package/scripts/package_dist.py +2 -1
- package/skills_manifest.json +6 -6
- package/synapse.config.json +1 -1
- package/templates/ai_bridges/CLAUDE.md +1 -1
- package/templates/ai_bridges/copilot-instructions.md +2 -2
- package/tools/__init__.py +18 -1
- package/tools/_openapi_parser.py +1 -1
- package/tools/agent_canary.py +42 -30
- package/tools/agentless_patcher.py +2 -2
- package/tools/analyze_project.py +3 -5
- package/tools/api_drift_sentinel.py +4 -4
- package/tools/api_fuzzer.py +8 -8
- package/tools/auto_heal.py +4 -5
- package/tools/auto_heal_reflexion.py +2 -2
- package/tools/autogen_qa_broker.py +2 -2
- package/tools/browser_helpers.js +2 -2
- package/tools/browsergym_eval.py +2 -3
- package/tools/bug_reporter.py +11 -13
- package/tools/bump_version.py +75 -5
- package/tools/cache_resolver.py +78 -83
- package/tools/check_env.py +9 -1
- package/tools/check_version_sync.py +40 -3
- package/tools/ci_healing_hook.py +4 -6
- package/tools/cli.py +5 -7
- package/tools/config_decoupler.py +2 -3
- package/tools/core/__init__.py +52 -0
- package/tools/count_tokens.py +22 -20
- package/tools/dashboard_generator.py +627 -998
- package/tools/db_sandbox.py +65 -53
- package/tools/debt_harvester.py +3 -3
- package/tools/distill_log.py +3 -3
- package/tools/dspy_qa_signatures.py +3 -4
- package/tools/export_postman_collection.py +8 -8
- package/tools/flaky_detector.py +2 -2
- package/tools/fuzz_payloads.py +5 -5
- package/tools/generate_allure_report.py +1 -1
- package/tools/generate_jmx_plan.py +4 -4
- package/tools/gherkin_suite.py +1 -1
- package/tools/git_pre_commit_guard.py +2 -2
- package/tools/goldfish_review.py +2 -2
- package/tools/heal/__init__.py +28 -0
- package/tools/heal_pr_automator.py +6 -6
- package/tools/heuristic_locator_matcher.py +2 -2
- package/tools/infer_linter.py +8 -8
- package/tools/interview_story.py +0 -1
- package/tools/jtl_analyzer.py +11 -11
- package/tools/lint/__init__.py +30 -0
- package/tools/lint_ai_docs.py +42 -0
- package/tools/lookup_tc.py +1 -1
- package/tools/matrix_sharder.py +15 -13
- package/tools/mcp/__init__.py +16 -0
- package/tools/mcp_excel_server.py +2 -2
- package/tools/mcp_server.py +3 -4
- package/tools/md_to_xlsx.py +26 -26
- package/tools/micro_mutator.py +11 -12
- package/tools/network_mock_shield.py +27 -27
- package/tools/newman_analyzer.py +2 -3
- package/tools/omni_emitter.py +5 -8
- package/tools/omni_parser.py +5 -5
- package/tools/omni_transpiler.py +5 -5
- package/tools/output_formatter.py +19 -0
- package/tools/perf/__init__.py +24 -0
- package/tools/pinpoint_failure.py +1 -1
- package/tools/project_state.py +0 -2
- package/tools/qa_event_stream.py +1 -1
- package/tools/repo_map.py +8 -8
- package/tools/report/__init__.py +32 -0
- package/tools/reversible_sandbox.py +1 -2
- package/tools/safety_firewall.py +2 -2
- package/tools/senior_code_review.py +2 -2
- package/tools/setup_project.py +10 -12
- package/tools/skill_collision_guard.py +3 -3
- package/tools/skill_vault.py +12 -3
- package/tools/skillspector.py +5 -7
- package/tools/smart_visual_masker.py +4 -6
- package/tools/spec_drift_sentinel.py +1 -2
- package/tools/swe_qa_aci.py +2 -2
- package/tools/synapse_qa_bench.py +3 -3
- package/tools/sync_agent_rules.py +17 -3
- package/tools/telemetry_correlator.py +3 -2
- package/tools/test_memory_os.py +15 -5
- package/tools/textgrad_mutation_optimizer.py +3 -3
- package/tools/tms_sync_bridge.py +5 -5
- package/tools/tot_exploratory_tester.py +5 -6
- package/tools/traffic_session_converter.py +9 -9
- package/tools/universal_ir.py +2 -3
- package/tools/update_sentinel.py +6 -9
- package/tools/verify_all.py +10 -0
- package/tools/visual_diff_canvas.py +1 -2
- package/tools/visual_som_helper.py +15 -13
- package/tools/watch_mode.py +1 -1
- package/tools/wcag_audit.py +22 -1
- package/tools/welcome_page.py +5 -6
package/tools/welcome_page.py
CHANGED
|
@@ -28,7 +28,6 @@ import html as html_lib
|
|
|
28
28
|
import argparse
|
|
29
29
|
import webbrowser
|
|
30
30
|
from datetime import datetime
|
|
31
|
-
from pathlib import Path
|
|
32
31
|
from typing import Dict, Any, Optional
|
|
33
32
|
|
|
34
33
|
# Enforce UTF-8 stdout encoding for Windows console compatibility
|
|
@@ -48,7 +47,7 @@ def get_hub_metadata() -> Dict[str, Any]:
|
|
|
48
47
|
"""Retrieves version and catalog count from skills_manifest.json."""
|
|
49
48
|
manifest_path = os.path.join(HUB_ROOT, "skills_manifest.json")
|
|
50
49
|
meta = {
|
|
51
|
-
"version": "
|
|
50
|
+
"version": "3.0.0",
|
|
52
51
|
"totalSkills": 42,
|
|
53
52
|
"author": "Thế Vị (@TeeVee998)",
|
|
54
53
|
"repo": "https://github.com/TeeVee998/Synapse-Hub"
|
|
@@ -80,10 +79,10 @@ def generate_welcome_html(target_repo: Optional[str] = None, stack_info: Optiona
|
|
|
80
79
|
"""Renders the standalone interactive HTML5 landing page with bilingual language switcher."""
|
|
81
80
|
meta = get_hub_metadata()
|
|
82
81
|
now_str = datetime.now().strftime("%Y-%m-%d %H:%M")
|
|
83
|
-
|
|
82
|
+
|
|
84
83
|
is_external_target = bool(target_repo and not is_hub_repo(target_repo) and stack_info)
|
|
85
84
|
if is_external_target:
|
|
86
|
-
raw_target_name = (stack_info.get("name") if stack_info else "") or os.path.basename(os.path.abspath(target_repo))
|
|
85
|
+
raw_target_name = (stack_info.get("name") if stack_info else "") or os.path.basename(os.path.abspath(target_repo or ""))
|
|
87
86
|
raw_framework = (stack_info.get("framework") if stack_info else "") or "Automated QA"
|
|
88
87
|
target_name = html_lib.escape(str(raw_target_name))
|
|
89
88
|
framework_name = html_lib.escape(str(raw_framework))
|
|
@@ -248,7 +247,7 @@ def generate_welcome_page(target_repo: Optional[str] = None, output_path: Option
|
|
|
248
247
|
if open_browser:
|
|
249
248
|
opened = open_welcome_page(out_file)
|
|
250
249
|
if opened:
|
|
251
|
-
print(
|
|
250
|
+
print(" 🚀 Đã mở Visual Landing Page trong trình duyệt của bạn.")
|
|
252
251
|
return out_file
|
|
253
252
|
|
|
254
253
|
|
|
@@ -284,7 +283,7 @@ def main():
|
|
|
284
283
|
mark_first_run_completed(target_dir)
|
|
285
284
|
|
|
286
285
|
print(f"✅ Landing page generated successfully at:\n file://{out_path}")
|
|
287
|
-
print(
|
|
286
|
+
print("👉 You can re-open it anytime with: npx synapse-hub welcome")
|
|
288
287
|
|
|
289
288
|
|
|
290
289
|
if __name__ == "__main__":
|