nodebench-mcp 2.28.0 → 2.31.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/README.md +86 -0
- package/dist/db.js +69 -0
- package/dist/db.js.map +1 -1
- package/dist/engine/conformance.d.ts +31 -0
- package/dist/engine/conformance.js +81 -0
- package/dist/engine/conformance.js.map +1 -0
- package/dist/engine/contextBridge.d.ts +67 -0
- package/dist/engine/contextBridge.js +392 -0
- package/dist/engine/contextBridge.js.map +1 -0
- package/dist/engine/server.d.ts +23 -0
- package/dist/engine/server.js +481 -0
- package/dist/engine/server.js.map +1 -0
- package/dist/engine/session.d.ts +55 -0
- package/dist/engine/session.js +139 -0
- package/dist/engine/session.js.map +1 -0
- package/dist/index.js +113 -11
- package/dist/index.js.map +1 -1
- package/dist/sandboxApi.d.ts +20 -0
- package/dist/sandboxApi.js +99 -0
- package/dist/sandboxApi.js.map +1 -0
- package/dist/tools/contextSandboxTools.d.ts +15 -0
- package/dist/tools/contextSandboxTools.js +469 -0
- package/dist/tools/contextSandboxTools.js.map +1 -0
- package/dist/tools/contextTools.d.ts +11 -0
- package/dist/tools/contextTools.js +175 -0
- package/dist/tools/contextTools.js.map +1 -0
- package/dist/tools/designGovernanceTools.d.ts +20 -0
- package/dist/tools/designGovernanceTools.js +872 -0
- package/dist/tools/designGovernanceTools.js.map +1 -0
- package/dist/tools/openclawTools.d.ts +1 -0
- package/dist/tools/openclawTools.js +780 -0
- package/dist/tools/openclawTools.js.map +1 -1
- package/dist/tools/progressiveDiscoveryTools.js +3 -3
- package/dist/tools/progressiveDiscoveryTools.js.map +1 -1
- package/dist/tools/researchOptimizerTools.d.ts +17 -0
- package/dist/tools/researchOptimizerTools.js +454 -0
- package/dist/tools/researchOptimizerTools.js.map +1 -0
- package/dist/tools/scraplingTools.d.ts +15 -0
- package/dist/tools/scraplingTools.js +278 -0
- package/dist/tools/scraplingTools.js.map +1 -0
- package/dist/tools/thompsonProtocolTools.d.ts +58 -0
- package/dist/tools/thompsonProtocolTools.js +864 -0
- package/dist/tools/thompsonProtocolTools.js.map +1 -0
- package/dist/tools/toolRegistry.js +625 -0
- package/dist/tools/toolRegistry.js.map +1 -1
- package/dist/toolsetRegistry.js +14 -0
- package/dist/toolsetRegistry.js.map +1 -1
- package/package.json +6 -2
|
@@ -675,6 +675,131 @@ const REGISTRY_ENTRIES = [
|
|
|
675
675
|
},
|
|
676
676
|
phase: "research",
|
|
677
677
|
},
|
|
678
|
+
// ═══ RESEARCH OPTIMIZER ═══
|
|
679
|
+
{
|
|
680
|
+
name: "merge_research_results",
|
|
681
|
+
category: "research_optimizer",
|
|
682
|
+
tags: ["merge", "aggregate", "parallel", "sub-agent", "research", "join", "dataset", "coordinator"],
|
|
683
|
+
quickRef: {
|
|
684
|
+
nextAction: "Results merged. Use multi_criteria_score to rank options, or compare_options for a side-by-side table.",
|
|
685
|
+
nextTools: ["multi_criteria_score", "compare_options"],
|
|
686
|
+
methodology: "agent_contract",
|
|
687
|
+
tip: "Pass a join_key that exists in all sub-agent records (e.g., 'hotel_name'). Use conflict_resolution to handle overlapping fields.",
|
|
688
|
+
},
|
|
689
|
+
phase: "utility",
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
name: "multi_criteria_score",
|
|
693
|
+
category: "research_optimizer",
|
|
694
|
+
tags: ["score", "optimize", "rank", "criteria", "weight", "MCDM", "decision", "compare", "valuation", "points"],
|
|
695
|
+
quickRef: {
|
|
696
|
+
nextAction: "Options scored and ranked. Use compare_options for a formatted report, or run_quality_gate to validate thresholds.",
|
|
697
|
+
nextTools: ["compare_options", "run_quality_gate", "save_session_note"],
|
|
698
|
+
methodology: "agent_contract",
|
|
699
|
+
tip: "Weights must sum to 1.0. Use direction 'minimize' for costs/distances, 'maximize' for value/scores. classify_field adds tier labels (e.g., cpp_value → poor/acceptable/good/excellent).",
|
|
700
|
+
},
|
|
701
|
+
phase: "utility",
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
name: "compare_options",
|
|
705
|
+
category: "research_optimizer",
|
|
706
|
+
tags: ["compare", "table", "report", "side-by-side", "recommendation", "present", "markdown", "format"],
|
|
707
|
+
quickRef: {
|
|
708
|
+
nextAction: "Comparison generated. Present to user or save with save_session_note for persistence.",
|
|
709
|
+
nextTools: ["save_session_note", "send_email", "record_learning"],
|
|
710
|
+
methodology: "agent_contract",
|
|
711
|
+
tip: "Pass score_id from multi_criteria_score to auto-load ranked results. Use highlight_fields to control column order.",
|
|
712
|
+
},
|
|
713
|
+
phase: "utility",
|
|
714
|
+
},
|
|
715
|
+
// ═══ WEB SCRAPING (Scrapling) ═══
|
|
716
|
+
{
|
|
717
|
+
name: "scrapling_fetch",
|
|
718
|
+
category: "web_scraping",
|
|
719
|
+
tags: ["scrape", "fetch", "stealth", "anti-bot", "cloudflare", "tls", "fingerprint", "crawl", "http"],
|
|
720
|
+
quickRef: {
|
|
721
|
+
nextAction: "Page fetched. Use scrapling_extract for structured data, or merge_research_results to combine with other sources.",
|
|
722
|
+
nextTools: ["scrapling_extract", "extract_structured_data", "merge_research_results"],
|
|
723
|
+
methodology: "agent_contract",
|
|
724
|
+
tip: "Use tier 'stealth' for Cloudflare-protected sites, 'dynamic' for JS-rendered pages. Default 'http' works for most public pages.",
|
|
725
|
+
},
|
|
726
|
+
phase: "research",
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
name: "scrapling_extract",
|
|
730
|
+
category: "web_scraping",
|
|
731
|
+
tags: ["extract", "css", "xpath", "selector", "structured", "parse", "scrape", "deterministic"],
|
|
732
|
+
quickRef: {
|
|
733
|
+
nextAction: "Data extracted. Use merge_research_results to combine sources, or multi_criteria_score to rank options.",
|
|
734
|
+
nextTools: ["merge_research_results", "multi_criteria_score", "save_session_note"],
|
|
735
|
+
methodology: "agent_contract",
|
|
736
|
+
tip: "Zero LLM tokens — deterministic CSS/XPath extraction. Use '::text' suffix for text content, '::attr(href)' for attributes.",
|
|
737
|
+
},
|
|
738
|
+
phase: "research",
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
name: "scrapling_batch_fetch",
|
|
742
|
+
category: "web_scraping",
|
|
743
|
+
tags: ["batch", "parallel", "multi-url", "concurrent", "bulk", "competitive", "comparison"],
|
|
744
|
+
quickRef: {
|
|
745
|
+
nextAction: "Batch complete. Use merge_research_results to join results by key, or scrapling_extract on individual pages.",
|
|
746
|
+
nextTools: ["merge_research_results", "scrapling_extract", "multi_criteria_score"],
|
|
747
|
+
methodology: "agent_contract",
|
|
748
|
+
tip: "Up to 20 URLs with 1-10 concurrency. All URLs share the same tier and extraction config.",
|
|
749
|
+
},
|
|
750
|
+
phase: "research",
|
|
751
|
+
complexity: "medium",
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
name: "scrapling_track_element",
|
|
755
|
+
category: "web_scraping",
|
|
756
|
+
tags: ["track", "monitor", "element", "change", "adaptive", "price", "watch", "dom"],
|
|
757
|
+
quickRef: {
|
|
758
|
+
nextAction: "Element tracked. Compare with previous snapshots or set up monitoring with save_session_note.",
|
|
759
|
+
nextTools: ["save_session_note", "scrapling_fetch", "multi_criteria_score"],
|
|
760
|
+
methodology: "agent_contract",
|
|
761
|
+
tip: "Scrapling's adaptive tracking survives CSS class renames and DOM restructuring. Great for price monitoring.",
|
|
762
|
+
},
|
|
763
|
+
phase: "research",
|
|
764
|
+
complexity: "medium",
|
|
765
|
+
},
|
|
766
|
+
{
|
|
767
|
+
name: "scrapling_crawl",
|
|
768
|
+
category: "web_scraping",
|
|
769
|
+
tags: ["crawl", "spider", "multi-page", "sitemap", "deep", "sec", "edgar", "news"],
|
|
770
|
+
quickRef: {
|
|
771
|
+
nextAction: "Crawl started. Poll with scrapling_crawl_status to check progress and get items.",
|
|
772
|
+
nextTools: ["scrapling_crawl_status", "scrapling_crawl_stop"],
|
|
773
|
+
methodology: "agent_contract",
|
|
774
|
+
tip: "Returns a session_id. Set domain_whitelist to prevent crawling external sites. Max 500 pages.",
|
|
775
|
+
},
|
|
776
|
+
phase: "research",
|
|
777
|
+
complexity: "high",
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
name: "scrapling_crawl_status",
|
|
781
|
+
category: "web_scraping",
|
|
782
|
+
tags: ["crawl", "status", "progress", "poll", "items", "results"],
|
|
783
|
+
quickRef: {
|
|
784
|
+
nextAction: "Check if crawl is complete. If so, use merge_research_results on the items.",
|
|
785
|
+
nextTools: ["merge_research_results", "scrapling_crawl_stop", "multi_criteria_score"],
|
|
786
|
+
methodology: "agent_contract",
|
|
787
|
+
tip: "Poll periodically until status is 'completed'. Items are available incrementally.",
|
|
788
|
+
},
|
|
789
|
+
phase: "research",
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
name: "scrapling_crawl_stop",
|
|
793
|
+
category: "web_scraping",
|
|
794
|
+
tags: ["crawl", "stop", "abort", "pause", "cancel"],
|
|
795
|
+
quickRef: {
|
|
796
|
+
nextAction: "Crawl stopped. Items collected so far are preserved. Process with merge_research_results.",
|
|
797
|
+
nextTools: ["merge_research_results", "scrapling_crawl_status"],
|
|
798
|
+
methodology: "agent_contract",
|
|
799
|
+
tip: "Use when you have enough data or need to abort. Collected items are not lost.",
|
|
800
|
+
},
|
|
801
|
+
phase: "research",
|
|
802
|
+
},
|
|
678
803
|
// ═══ GITHUB ═══
|
|
679
804
|
{
|
|
680
805
|
name: "search_github",
|
|
@@ -2583,6 +2708,378 @@ const REGISTRY_ENTRIES = [
|
|
|
2583
2708
|
phase: "utility",
|
|
2584
2709
|
complexity: "low",
|
|
2585
2710
|
},
|
|
2711
|
+
// ═══════════════════════════════════════════
|
|
2712
|
+
// DESIGN GOVERNANCE — Spec enforcement & compliance
|
|
2713
|
+
// ═══════════════════════════════════════════
|
|
2714
|
+
{
|
|
2715
|
+
name: "get_design_spec",
|
|
2716
|
+
category: "design_governance",
|
|
2717
|
+
tags: ["design", "governance", "spec", "tokens", "colors", "typography", "spacing", "components", "rules", "system"],
|
|
2718
|
+
quickRef: {
|
|
2719
|
+
nextAction: "Review the spec. Use check_design_compliance on specific files, or get_design_violations for a full scan.",
|
|
2720
|
+
nextTools: ["check_design_compliance", "get_design_violations"],
|
|
2721
|
+
methodology: "ai_flywheel",
|
|
2722
|
+
tip: "Returns the machine-readable design governance spec — approved colors, typography classes, component primitives, spacing scale, uppercase policy. Read before making UI changes.",
|
|
2723
|
+
},
|
|
2724
|
+
phase: "research",
|
|
2725
|
+
complexity: "low",
|
|
2726
|
+
},
|
|
2727
|
+
{
|
|
2728
|
+
name: "check_design_compliance",
|
|
2729
|
+
category: "design_governance",
|
|
2730
|
+
tags: ["design", "compliance", "lint", "check", "validate", "file", "violations", "governance", "tokens", "patterns"],
|
|
2731
|
+
quickRef: {
|
|
2732
|
+
nextAction: "Fix the reported violations. Re-run check_design_compliance to verify. Then run get_design_violations for remaining issues.",
|
|
2733
|
+
nextTools: ["get_design_violations", "get_design_spec"],
|
|
2734
|
+
methodology: "ai_flywheel",
|
|
2735
|
+
tip: "Validates a single file against the design governance spec. Returns violations with line numbers, severity, and fix suggestions.",
|
|
2736
|
+
},
|
|
2737
|
+
phase: "verify",
|
|
2738
|
+
complexity: "low",
|
|
2739
|
+
},
|
|
2740
|
+
{
|
|
2741
|
+
name: "get_design_violations",
|
|
2742
|
+
category: "design_governance",
|
|
2743
|
+
tags: ["design", "violations", "scan", "audit", "governance", "bulk", "report", "compliance", "quality", "lint"],
|
|
2744
|
+
quickRef: {
|
|
2745
|
+
nextAction: "Focus on high-severity violations first. Use check_design_compliance on the worst files. Fix and re-scan.",
|
|
2746
|
+
nextTools: ["check_design_compliance", "get_design_spec", "log_gap"],
|
|
2747
|
+
methodology: "ai_flywheel",
|
|
2748
|
+
tip: "Scans entire src/ for design governance violations. Filter by severity or category. Returns top files and fix suggestions.",
|
|
2749
|
+
},
|
|
2750
|
+
phase: "verify",
|
|
2751
|
+
complexity: "medium",
|
|
2752
|
+
},
|
|
2753
|
+
{
|
|
2754
|
+
name: "sync_figma_tokens",
|
|
2755
|
+
category: "design_governance",
|
|
2756
|
+
tags: ["figma", "tokens", "sync", "drift", "design", "variables", "css", "compare", "validation"],
|
|
2757
|
+
quickRef: {
|
|
2758
|
+
nextAction: "Review drift report. Update src/index.css or Figma variables to reconcile mismatches. Run check_design_compliance to verify.",
|
|
2759
|
+
nextTools: ["check_design_compliance", "get_design_spec", "get_design_violations"],
|
|
2760
|
+
methodology: "ai_flywheel",
|
|
2761
|
+
tip: "Compares Figma design token variables against CSS custom properties. Requires FIGMA_ACCESS_TOKEN env var.",
|
|
2762
|
+
},
|
|
2763
|
+
phase: "verify",
|
|
2764
|
+
complexity: "low",
|
|
2765
|
+
},
|
|
2766
|
+
{
|
|
2767
|
+
name: "get_figma_design_context",
|
|
2768
|
+
category: "design_governance",
|
|
2769
|
+
tags: ["figma", "design", "context", "component", "patterns", "typography", "spacing", "tokens", "rules"],
|
|
2770
|
+
quickRef: {
|
|
2771
|
+
nextAction: "Use the returned design context to implement or review the component. Run check_design_compliance after changes.",
|
|
2772
|
+
nextTools: ["check_design_compliance", "get_design_spec", "sync_figma_tokens"],
|
|
2773
|
+
methodology: "ai_flywheel",
|
|
2774
|
+
tip: "Returns design system rules for a specific component (button, card, page-shell, sidebar, empty-state, stat-badge).",
|
|
2775
|
+
},
|
|
2776
|
+
phase: "research",
|
|
2777
|
+
complexity: "low",
|
|
2778
|
+
},
|
|
2779
|
+
// AGENT TRAVERSAL — Frontend view navigation for OpenClaw agents
|
|
2780
|
+
// ═══════════════════════════════════════════
|
|
2781
|
+
{
|
|
2782
|
+
name: "list_available_views",
|
|
2783
|
+
category: "agent_traverse",
|
|
2784
|
+
tags: ["views", "manifest", "discover", "navigate", "frontend", "agent", "traversal", "sitemap"],
|
|
2785
|
+
quickRef: {
|
|
2786
|
+
nextAction: "Pick a view from the manifest and navigate to it with navigate_to_view.",
|
|
2787
|
+
nextTools: ["navigate_to_view", "get_view_capabilities"],
|
|
2788
|
+
methodology: "agent_traversal",
|
|
2789
|
+
tip: "Use search parameter to filter by keyword. Returns 27 views with actions, data endpoints, and tags.",
|
|
2790
|
+
},
|
|
2791
|
+
phase: "research",
|
|
2792
|
+
complexity: "low",
|
|
2793
|
+
},
|
|
2794
|
+
{
|
|
2795
|
+
name: "get_view_capabilities",
|
|
2796
|
+
category: "agent_traverse",
|
|
2797
|
+
tags: ["view", "capabilities", "actions", "tools", "endpoints", "agent", "traversal", "inspect"],
|
|
2798
|
+
quickRef: {
|
|
2799
|
+
nextAction: "Now navigate to the view or invoke its per-view tools with invoke_view_tool.",
|
|
2800
|
+
nextTools: ["navigate_to_view", "invoke_view_tool", "query_view_data"],
|
|
2801
|
+
methodology: "agent_traversal",
|
|
2802
|
+
tip: "Returns full view metadata including per-view WebMCP tools. Call before interacting with a view.",
|
|
2803
|
+
},
|
|
2804
|
+
phase: "research",
|
|
2805
|
+
complexity: "low",
|
|
2806
|
+
},
|
|
2807
|
+
{
|
|
2808
|
+
name: "navigate_to_view",
|
|
2809
|
+
category: "agent_traverse",
|
|
2810
|
+
tags: ["navigate", "view", "route", "go", "switch", "frontend", "agent", "session"],
|
|
2811
|
+
quickRef: {
|
|
2812
|
+
nextAction: "You're on the target view. Use invoke_view_tool for actions or query_view_data for reading.",
|
|
2813
|
+
nextTools: ["invoke_view_tool", "query_view_data", "get_view_state"],
|
|
2814
|
+
methodology: "agent_traversal",
|
|
2815
|
+
tip: "Tracks navigation in session history for audit. Returns target view capabilities.",
|
|
2816
|
+
},
|
|
2817
|
+
phase: "implement",
|
|
2818
|
+
complexity: "low",
|
|
2819
|
+
},
|
|
2820
|
+
{
|
|
2821
|
+
name: "invoke_view_tool",
|
|
2822
|
+
category: "agent_traverse",
|
|
2823
|
+
tags: ["invoke", "tool", "view", "action", "interact", "agent", "per-view", "webmcp"],
|
|
2824
|
+
quickRef: {
|
|
2825
|
+
nextAction: "Check results. Navigate to another view or invoke more tools.",
|
|
2826
|
+
nextTools: ["invoke_view_tool", "navigate_to_view", "get_view_state"],
|
|
2827
|
+
methodology: "agent_traversal",
|
|
2828
|
+
tip: "Auto-detects current view from session. Use get_view_capabilities to see available tools first.",
|
|
2829
|
+
},
|
|
2830
|
+
phase: "implement",
|
|
2831
|
+
complexity: "medium",
|
|
2832
|
+
},
|
|
2833
|
+
{
|
|
2834
|
+
name: "query_view_data",
|
|
2835
|
+
category: "agent_traverse",
|
|
2836
|
+
tags: ["query", "data", "endpoint", "read", "fetch", "view", "agent", "api"],
|
|
2837
|
+
quickRef: {
|
|
2838
|
+
nextAction: "Process the data. Navigate to another view or invoke view tools.",
|
|
2839
|
+
nextTools: ["invoke_view_tool", "navigate_to_view", "traverse_feed"],
|
|
2840
|
+
methodology: "agent_traversal",
|
|
2841
|
+
tip: "Use get_view_capabilities to see available data endpoints for a view.",
|
|
2842
|
+
},
|
|
2843
|
+
phase: "research",
|
|
2844
|
+
complexity: "low",
|
|
2845
|
+
},
|
|
2846
|
+
{
|
|
2847
|
+
name: "traverse_feed",
|
|
2848
|
+
category: "agent_traverse",
|
|
2849
|
+
tags: ["feed", "traverse", "hot", "new", "top", "rising", "paginate", "moltbook", "discovery"],
|
|
2850
|
+
quickRef: {
|
|
2851
|
+
nextAction: "Process items. Use cursor for next page, or switch feed type.",
|
|
2852
|
+
nextTools: ["traverse_feed", "navigate_to_view", "invoke_view_tool"],
|
|
2853
|
+
methodology: "agent_traversal",
|
|
2854
|
+
tip: "Supports hot/new/top/rising sort across 6 feed types. Cursor-based pagination.",
|
|
2855
|
+
},
|
|
2856
|
+
phase: "research",
|
|
2857
|
+
complexity: "low",
|
|
2858
|
+
},
|
|
2859
|
+
{
|
|
2860
|
+
name: "get_view_state",
|
|
2861
|
+
category: "agent_traverse",
|
|
2862
|
+
tags: ["state", "session", "history", "audit", "introspect", "agent", "traversal"],
|
|
2863
|
+
quickRef: {
|
|
2864
|
+
nextAction: "Review session state. Continue navigating or end session.",
|
|
2865
|
+
nextTools: ["navigate_to_view", "list_available_views"],
|
|
2866
|
+
methodology: "agent_traversal",
|
|
2867
|
+
tip: "Returns navigation history, interaction log, and session duration for self-awareness.",
|
|
2868
|
+
},
|
|
2869
|
+
phase: "verify",
|
|
2870
|
+
complexity: "low",
|
|
2871
|
+
},
|
|
2872
|
+
{
|
|
2873
|
+
name: "get_traversal_plan",
|
|
2874
|
+
category: "agent_traverse",
|
|
2875
|
+
tags: ["plan", "goal", "multi-view", "journey", "strategy", "agent", "traversal", "optimize"],
|
|
2876
|
+
quickRef: {
|
|
2877
|
+
nextAction: "Follow the plan step by step: navigate_to_view for each step, then invoke_view_tool or query_view_data.",
|
|
2878
|
+
nextTools: ["navigate_to_view", "invoke_view_tool", "query_view_data"],
|
|
2879
|
+
methodology: "agent_traversal",
|
|
2880
|
+
tip: "Describe your goal in natural language. Returns ranked views with suggested actions and tools.",
|
|
2881
|
+
},
|
|
2882
|
+
phase: "research",
|
|
2883
|
+
complexity: "medium",
|
|
2884
|
+
},
|
|
2885
|
+
// ENGINE CONTEXT — Accumulated knowledge and content archive
|
|
2886
|
+
// ═══════════════════════════════════════════
|
|
2887
|
+
{
|
|
2888
|
+
name: "get_engine_context_health",
|
|
2889
|
+
category: "engine_context",
|
|
2890
|
+
tags: ["context", "health", "learnings", "trend", "conformance", "knowledge", "accumulated", "engine"],
|
|
2891
|
+
quickRef: {
|
|
2892
|
+
nextAction: "Review context health. If learnings are low, run more workflows. If trend is regressing, investigate failing steps.",
|
|
2893
|
+
nextTools: ["get_workflow_history", "search_content_archive", "search_all_knowledge"],
|
|
2894
|
+
methodology: "ai_flywheel",
|
|
2895
|
+
tip: "Call at session start to understand how much accumulated knowledge is available.",
|
|
2896
|
+
},
|
|
2897
|
+
phase: "research",
|
|
2898
|
+
complexity: "low",
|
|
2899
|
+
},
|
|
2900
|
+
{
|
|
2901
|
+
name: "get_workflow_history",
|
|
2902
|
+
category: "engine_context",
|
|
2903
|
+
tags: ["workflow", "history", "runs", "scores", "grades", "trend", "conformance", "engine"],
|
|
2904
|
+
quickRef: {
|
|
2905
|
+
nextAction: "Compare scores across runs. If regressing, check failed steps. If improving, document what changed.",
|
|
2906
|
+
nextTools: ["get_engine_context_health", "search_all_knowledge", "record_learning"],
|
|
2907
|
+
methodology: "ai_flywheel",
|
|
2908
|
+
tip: "Track conformance scores over time to detect quality drift.",
|
|
2909
|
+
},
|
|
2910
|
+
phase: "research",
|
|
2911
|
+
complexity: "low",
|
|
2912
|
+
},
|
|
2913
|
+
{
|
|
2914
|
+
name: "archive_content",
|
|
2915
|
+
category: "engine_context",
|
|
2916
|
+
tags: ["archive", "content", "save", "digest", "post", "report", "dedup", "themes"],
|
|
2917
|
+
quickRef: {
|
|
2918
|
+
nextAction: "Content archived. Use search_content_archive before next generation to avoid repetition.",
|
|
2919
|
+
nextTools: ["search_content_archive", "get_engine_context_health"],
|
|
2920
|
+
methodology: "ai_flywheel",
|
|
2921
|
+
tip: "Archive every generated digest/post to prevent theme repetition in future runs.",
|
|
2922
|
+
},
|
|
2923
|
+
phase: "ship",
|
|
2924
|
+
complexity: "low",
|
|
2925
|
+
},
|
|
2926
|
+
{
|
|
2927
|
+
name: "search_content_archive",
|
|
2928
|
+
category: "engine_context",
|
|
2929
|
+
tags: ["search", "content", "archive", "fts5", "themes", "dedup", "topics", "covered"],
|
|
2930
|
+
quickRef: {
|
|
2931
|
+
nextAction: "Review results. Adjust new content to cover gaps, not repeat existing themes.",
|
|
2932
|
+
nextTools: ["archive_content", "get_engine_context_health", "search_all_knowledge"],
|
|
2933
|
+
methodology: "ai_flywheel",
|
|
2934
|
+
tip: "Call before generating content to check what's already been covered.",
|
|
2935
|
+
},
|
|
2936
|
+
phase: "research",
|
|
2937
|
+
complexity: "low",
|
|
2938
|
+
},
|
|
2939
|
+
// ═══ CONTEXT SANDBOX — Context window protection via FTS5 indexing ═══
|
|
2940
|
+
{
|
|
2941
|
+
name: "sandbox_ingest",
|
|
2942
|
+
category: "context_sandbox",
|
|
2943
|
+
tags: ["sandbox", "ingest", "index", "context", "fts5", "chunk", "store", "compress"],
|
|
2944
|
+
quickRef: {
|
|
2945
|
+
nextAction: "Content indexed. Use sandbox_search to query it without pulling raw data into context.",
|
|
2946
|
+
nextTools: ["sandbox_search", "sandbox_stats"],
|
|
2947
|
+
methodology: "context_management",
|
|
2948
|
+
tip: "Use for large API responses, file contents, or any data you want searchable without flooding context.",
|
|
2949
|
+
},
|
|
2950
|
+
phase: "utility",
|
|
2951
|
+
complexity: "low",
|
|
2952
|
+
},
|
|
2953
|
+
{
|
|
2954
|
+
name: "sandbox_search",
|
|
2955
|
+
category: "context_sandbox",
|
|
2956
|
+
tags: ["sandbox", "search", "bm25", "fts5", "query", "context", "retrieve", "snippet"],
|
|
2957
|
+
quickRef: {
|
|
2958
|
+
nextAction: "Review search results. Follow up with more specific queries or use sandbox_ingest for new content.",
|
|
2959
|
+
nextTools: ["sandbox_ingest", "sandbox_execute", "sandbox_stats"],
|
|
2960
|
+
methodology: "context_management",
|
|
2961
|
+
tip: "Pass multiple queries as an array to batch all questions in one call.",
|
|
2962
|
+
},
|
|
2963
|
+
phase: "utility",
|
|
2964
|
+
complexity: "low",
|
|
2965
|
+
},
|
|
2966
|
+
{
|
|
2967
|
+
name: "sandbox_execute",
|
|
2968
|
+
category: "context_sandbox",
|
|
2969
|
+
tags: ["sandbox", "execute", "shell", "command", "index", "output", "compress", "context"],
|
|
2970
|
+
quickRef: {
|
|
2971
|
+
nextAction: "Output indexed. Use sandbox_search to find specific details. Check exitCode for errors.",
|
|
2972
|
+
nextTools: ["sandbox_search", "sandbox_batch", "sandbox_stats"],
|
|
2973
|
+
methodology: "context_management",
|
|
2974
|
+
tip: "Use instead of raw shell execution for commands producing >20 lines. Pass queries param for immediate search.",
|
|
2975
|
+
},
|
|
2976
|
+
phase: "utility",
|
|
2977
|
+
complexity: "low",
|
|
2978
|
+
},
|
|
2979
|
+
{
|
|
2980
|
+
name: "sandbox_batch",
|
|
2981
|
+
category: "context_sandbox",
|
|
2982
|
+
tags: ["sandbox", "batch", "execute", "search", "multi", "efficient", "context", "compress"],
|
|
2983
|
+
quickRef: {
|
|
2984
|
+
nextAction: "Batch complete. Review search results. Use sandbox_search for follow-up queries.",
|
|
2985
|
+
nextTools: ["sandbox_search", "sandbox_stats"],
|
|
2986
|
+
methodology: "context_management",
|
|
2987
|
+
tip: "One sandbox_batch replaces N sandbox_execute + M sandbox_search calls. Use for research phases.",
|
|
2988
|
+
},
|
|
2989
|
+
phase: "utility",
|
|
2990
|
+
complexity: "medium",
|
|
2991
|
+
},
|
|
2992
|
+
{
|
|
2993
|
+
name: "sandbox_stats",
|
|
2994
|
+
category: "context_sandbox",
|
|
2995
|
+
tags: ["sandbox", "stats", "token", "savings", "context", "metrics", "session", "compression"],
|
|
2996
|
+
quickRef: {
|
|
2997
|
+
nextAction: "Review savings ratio. If low, route more heavy outputs through sandbox_execute or sandbox_ingest.",
|
|
2998
|
+
nextTools: ["sandbox_ingest", "sandbox_execute", "sandbox_batch"],
|
|
2999
|
+
methodology: "context_management",
|
|
3000
|
+
},
|
|
3001
|
+
phase: "meta",
|
|
3002
|
+
complexity: "low",
|
|
3003
|
+
},
|
|
3004
|
+
// ── Thompson Protocol (6 tools) ─────────────────────────────────────────
|
|
3005
|
+
{
|
|
3006
|
+
name: "thompson_write",
|
|
3007
|
+
category: "thompson_protocol",
|
|
3008
|
+
tags: ["content", "writing", "plain-english", "analogy", "jargon", "translation", "accessibility", "thompson", "calculus-made-easy"],
|
|
3009
|
+
quickRef: {
|
|
3010
|
+
nextAction: "Content written. Send sections to thompson_feynman_edit for skeptical beginner review.",
|
|
3011
|
+
nextTools: ["thompson_feynman_edit", "call_llm"],
|
|
3012
|
+
methodology: "thompson_protocol",
|
|
3013
|
+
tip: "Use call_llm with the system_prompt from this tool's output to generate the actual content. The tool provides constraints, the LLM does the creative work.",
|
|
3014
|
+
},
|
|
3015
|
+
phase: "implement",
|
|
3016
|
+
complexity: "high",
|
|
3017
|
+
},
|
|
3018
|
+
{
|
|
3019
|
+
name: "thompson_feynman_edit",
|
|
3020
|
+
category: "thompson_protocol",
|
|
3021
|
+
tags: ["editing", "review", "rejection", "readability", "feynman", "skeptical-beginner", "quality", "rewrite"],
|
|
3022
|
+
quickRef: {
|
|
3023
|
+
nextAction: "Review complete. If REWRITE sections exist, send back to thompson_write. If all PASS, proceed to thompson_visual_map.",
|
|
3024
|
+
nextTools: ["thompson_write", "thompson_visual_map"],
|
|
3025
|
+
methodology: "thompson_protocol",
|
|
3026
|
+
tip: "Max 3 rewrite cycles. After 3 consecutive failures on same criterion, escalate to user.",
|
|
3027
|
+
},
|
|
3028
|
+
phase: "verify",
|
|
3029
|
+
complexity: "medium",
|
|
3030
|
+
},
|
|
3031
|
+
{
|
|
3032
|
+
name: "thompson_visual_map",
|
|
3033
|
+
category: "thompson_protocol",
|
|
3034
|
+
tags: ["visual", "metaphor", "image", "prompt", "analogy", "illustration", "accessibility", "alt-text"],
|
|
3035
|
+
quickRef: {
|
|
3036
|
+
nextAction: "Visual prompts generated. Send content + visuals to thompson_anti_elitism_lint for final scan.",
|
|
3037
|
+
nextTools: ["thompson_anti_elitism_lint"],
|
|
3038
|
+
methodology: "thompson_protocol",
|
|
3039
|
+
tip: "Each visual maps 1:1 with a text analogy. No generic b-roll. Include alt-text for accessibility.",
|
|
3040
|
+
},
|
|
3041
|
+
phase: "implement",
|
|
3042
|
+
complexity: "medium",
|
|
3043
|
+
},
|
|
3044
|
+
{
|
|
3045
|
+
name: "thompson_anti_elitism_lint",
|
|
3046
|
+
category: "thompson_protocol",
|
|
3047
|
+
tags: ["lint", "elitism", "gatekeeping", "banned-phrases", "readability", "inclusivity", "passive-voice", "jargon"],
|
|
3048
|
+
quickRef: {
|
|
3049
|
+
nextAction: "Lint complete. If CLEAN, proceed to thompson_quality_gate. If FLAGGED, fix banned phrases and re-lint.",
|
|
3050
|
+
nextTools: ["thompson_quality_gate", "thompson_write"],
|
|
3051
|
+
methodology: "thompson_protocol",
|
|
3052
|
+
tip: "Fully deterministic — no LLM needed. 22 banned phrase patterns + readability metrics.",
|
|
3053
|
+
},
|
|
3054
|
+
phase: "verify",
|
|
3055
|
+
complexity: "low",
|
|
3056
|
+
},
|
|
3057
|
+
{
|
|
3058
|
+
name: "thompson_quality_gate",
|
|
3059
|
+
category: "thompson_protocol",
|
|
3060
|
+
tags: ["quality", "gate", "checklist", "grade", "content", "verification", "thompson"],
|
|
3061
|
+
quickRef: {
|
|
3062
|
+
nextAction: "Quality gate scored. If passing/exemplary, content is ready for distribution. If needs_work/failing, review failing_checks and restart.",
|
|
3063
|
+
nextTools: ["save_session_note", "record_learning", "send_email"],
|
|
3064
|
+
methodology: "thompson_protocol",
|
|
3065
|
+
tip: "10-point boolean checklist. Grade thresholds: exemplary (9-10), passing (7-8), needs_work (5-6), failing (0-4).",
|
|
3066
|
+
},
|
|
3067
|
+
phase: "verify",
|
|
3068
|
+
complexity: "low",
|
|
3069
|
+
},
|
|
3070
|
+
{
|
|
3071
|
+
name: "thompson_pipeline",
|
|
3072
|
+
category: "thompson_protocol",
|
|
3073
|
+
tags: ["pipeline", "orchestrator", "content", "end-to-end", "thompson", "workflow", "multi-agent"],
|
|
3074
|
+
quickRef: {
|
|
3075
|
+
nextAction: "Pipeline plan generated. Execute steps sequentially: thompson_write → thompson_feynman_edit (loop) → thompson_visual_map → thompson_anti_elitism_lint → thompson_quality_gate.",
|
|
3076
|
+
nextTools: ["thompson_write", "call_llm"],
|
|
3077
|
+
methodology: "thompson_protocol",
|
|
3078
|
+
tip: "This is the orchestrator. Start here for end-to-end content transformation. Each step's output feeds the next.",
|
|
3079
|
+
},
|
|
3080
|
+
phase: "meta",
|
|
3081
|
+
complexity: "low",
|
|
3082
|
+
},
|
|
2586
3083
|
];
|
|
2587
3084
|
// ── Exported lookup structures ───────────────────────────────────────────
|
|
2588
3085
|
/** Map of tool name → registry entry for O(1) lookup */
|
|
@@ -2643,6 +3140,9 @@ const CATEGORY_COMPLEXITY = {
|
|
|
2643
3140
|
qa_orchestration: "low",
|
|
2644
3141
|
visual_qa: "medium",
|
|
2645
3142
|
local_dashboard: "low",
|
|
3143
|
+
design_governance: "low",
|
|
3144
|
+
agent_traverse: "low",
|
|
3145
|
+
engine_context: "low",
|
|
2646
3146
|
};
|
|
2647
3147
|
/** Per-tool complexity overrides (when category default is wrong) */
|
|
2648
3148
|
const TOOL_COMPLEXITY_OVERRIDES = {
|
|
@@ -2689,6 +3189,18 @@ const TOOL_COMPLEXITY_OVERRIDES = {
|
|
|
2689
3189
|
solve_storage_upgrade_cost_per_file_from_image: "high",
|
|
2690
3190
|
// Web
|
|
2691
3191
|
fetch_url: "low",
|
|
3192
|
+
// Research Optimizer
|
|
3193
|
+
merge_research_results: "low",
|
|
3194
|
+
multi_criteria_score: "low",
|
|
3195
|
+
compare_options: "low",
|
|
3196
|
+
// Web Scraping
|
|
3197
|
+
scrapling_fetch: "low",
|
|
3198
|
+
scrapling_extract: "low",
|
|
3199
|
+
scrapling_batch_fetch: "medium",
|
|
3200
|
+
scrapling_track_element: "medium",
|
|
3201
|
+
scrapling_crawl: "high",
|
|
3202
|
+
scrapling_crawl_status: "low",
|
|
3203
|
+
scrapling_crawl_stop: "low",
|
|
2692
3204
|
// GitHub
|
|
2693
3205
|
search_github: "low",
|
|
2694
3206
|
// Boilerplate
|
|
@@ -3851,5 +4363,118 @@ export const WORKFLOW_CHAINS = {
|
|
|
3851
4363
|
{ tool: "record_learning", action: "Record QA trajectory and Gemini finding patterns for regression tracking" },
|
|
3852
4364
|
],
|
|
3853
4365
|
},
|
|
4366
|
+
content_pipeline: {
|
|
4367
|
+
name: "Daily Content Pipeline",
|
|
4368
|
+
description: "End-to-end content production: gather signals from RSS + web search, build research digest, generate a 3-post thread (Signal/Analysis/Agency) via LLM, quality-gate the output, and publish via email or save for manual posting. Engine-graded for conformance.",
|
|
4369
|
+
steps: [
|
|
4370
|
+
{ tool: "fetch_rss_feeds", action: "Pull latest articles from all registered RSS/Atom sources — new items stored in SQLite" },
|
|
4371
|
+
{ tool: "web_search", action: "Search for breaking developments in target topics (AI, infrastructure, security) to supplement RSS" },
|
|
4372
|
+
{ tool: "build_research_digest", action: "Generate a categorized digest of new articles — groups by topic, highlights key signals" },
|
|
4373
|
+
{ tool: "call_llm", action: "Generate Post 1 (The Signal): narrative framing, numbered signals with hard numbers + URLs, competing explanations" },
|
|
4374
|
+
{ tool: "call_llm", action: "Generate Post 2 (The Analysis): fact-checks with badges (VERIFIED/PARTIAL/UNVERIFIED), evidence breakdown per explanation" },
|
|
4375
|
+
{ tool: "call_llm", action: "Generate Post 3 (The Agency): actionable steps, stress-test each explanation with score badge, engagement hook" },
|
|
4376
|
+
{ tool: "run_quality_gate", action: "Quality-gate all 3 posts: check source attribution, evidence scores, character limits, no hallucinated claims" },
|
|
4377
|
+
{ tool: "save_session_note", action: "Persist the final 3-post thread and digest to session notes — survives context compaction" },
|
|
4378
|
+
{ tool: "record_learning", action: "Record which signals resonated, content patterns, and quality gate pass/fail reasons for future runs" },
|
|
4379
|
+
],
|
|
4380
|
+
},
|
|
4381
|
+
content_publish: {
|
|
4382
|
+
name: "Content Publish & Distribute",
|
|
4383
|
+
description: "Take a content pipeline output and distribute across channels — email digest to subscribers, format for LinkedIn posting, archive to knowledge base",
|
|
4384
|
+
steps: [
|
|
4385
|
+
{ tool: "search_all_knowledge", action: "Load the latest content pipeline output from session notes or knowledge base" },
|
|
4386
|
+
{ tool: "call_llm", action: "Format content for target platform (LinkedIn character limits, email HTML, markdown archive)" },
|
|
4387
|
+
{ tool: "run_quality_gate", action: "Final quality gate before publish — verify formatting, links, attribution, no sensitive data" },
|
|
4388
|
+
{ tool: "send_email", action: "Email the formatted content digest to distribution list" },
|
|
4389
|
+
{ tool: "save_session_note", action: "Archive the published content with timestamp and distribution metadata" },
|
|
4390
|
+
{ tool: "record_learning", action: "Record distribution outcomes and engagement signals for optimization" },
|
|
4391
|
+
],
|
|
4392
|
+
},
|
|
4393
|
+
agent_traversal: {
|
|
4394
|
+
name: "Agent Frontend Traversal",
|
|
4395
|
+
description: "Navigate the NodeBench AI frontend as an agent — discover views, interact with per-view tools, traverse content feeds, and plan multi-view journeys",
|
|
4396
|
+
steps: [
|
|
4397
|
+
{ tool: "list_available_views", action: "Discover all 27 views with capabilities and available tools" },
|
|
4398
|
+
{ tool: "get_traversal_plan", action: "Generate a goal-based traversal plan ranking views by relevance" },
|
|
4399
|
+
{ tool: "navigate_to_view", action: "Navigate to the first target view (creates session)" },
|
|
4400
|
+
{ tool: "get_view_capabilities", action: "Inspect the view's actions, data endpoints, and per-view tools" },
|
|
4401
|
+
{ tool: "invoke_view_tool", action: "Call a per-view tool (e.g., nb_search_research, nb_list_deals)" },
|
|
4402
|
+
{ tool: "query_view_data", action: "Query data from view endpoints" },
|
|
4403
|
+
{ tool: "traverse_feed", action: "Browse content feeds with hot/new/top/rising sort" },
|
|
4404
|
+
{ tool: "get_view_state", action: "Audit session — navigation history, interactions, duration" },
|
|
4405
|
+
],
|
|
4406
|
+
},
|
|
4407
|
+
research_optimizer: {
|
|
4408
|
+
name: "Research Optimization Pipeline",
|
|
4409
|
+
description: "Single-agent deep web research → structured extraction → multi-criteria scoring → ranked recommendation. For travel booking, vendor selection, investment comparison, or any multi-attribute decision.",
|
|
4410
|
+
steps: [
|
|
4411
|
+
{ tool: "web_search", action: "Search for options and pricing across multiple queries (hotels, flights, products)" },
|
|
4412
|
+
{ tool: "fetch_url", action: "Fetch detailed pages for top search results — extract pricing, reviews, specs" },
|
|
4413
|
+
{ tool: "extract_structured_data", action: "Convert fetched content into structured records with consistent fields" },
|
|
4414
|
+
{ tool: "save_session_note", action: "Persist extracted data so it survives context compaction" },
|
|
4415
|
+
{ tool: "multi_criteria_score", action: "Score all options against weighted criteria (cost, distance, value, risk)" },
|
|
4416
|
+
{ tool: "compare_options", action: "Generate formatted comparison table with rankings and decision explanation" },
|
|
4417
|
+
{ tool: "run_quality_gate", action: "Validate recommendation meets minimum thresholds before presenting" },
|
|
4418
|
+
],
|
|
4419
|
+
},
|
|
4420
|
+
parallel_research: {
|
|
4421
|
+
name: "Parallel Multi-Agent Research",
|
|
4422
|
+
description: "Coordinator spawns specialized sub-agents for parallel research, merges results, scores, and optimizes. For complex decisions requiring multiple information sources gathered simultaneously.",
|
|
4423
|
+
steps: [
|
|
4424
|
+
{ tool: "bootstrap_parallel_agents", action: "Scaffold parallel agent infrastructure — define roles for each research domain" },
|
|
4425
|
+
{ tool: "claim_task", action: "Each sub-agent claims a research domain (pricing, reviews, logistics, availability)" },
|
|
4426
|
+
{ tool: "web_search", action: "Sub-agents search their domain in parallel — each focuses on specific queries" },
|
|
4427
|
+
{ tool: "fetch_url", action: "Sub-agents fetch and extract data from their search results" },
|
|
4428
|
+
{ tool: "extract_structured_data", action: "Each sub-agent extracts structured records with domain-specific fields" },
|
|
4429
|
+
{ tool: "save_session_note", action: "Sub-agents persist findings to shared knowledge base" },
|
|
4430
|
+
{ tool: "merge_research_results", action: "Coordinator merges all sub-agent results by join key into unified dataset" },
|
|
4431
|
+
{ tool: "multi_criteria_score", action: "Coordinator scores merged options against weighted optimization criteria" },
|
|
4432
|
+
{ tool: "compare_options", action: "Generate final ranked comparison with decision explanation" },
|
|
4433
|
+
{ tool: "run_quality_gate", action: "Final validation — check data completeness, scoring sanity, recommendation quality" },
|
|
4434
|
+
],
|
|
4435
|
+
},
|
|
4436
|
+
competitive_intel: {
|
|
4437
|
+
name: "Competitive Intelligence Pipeline",
|
|
4438
|
+
description: "Stealth-fetch competitor pages, extract structured data, merge multi-source results, score and rank. Uses Scrapling for anti-bot bypass and adaptive element tracking.",
|
|
4439
|
+
steps: [
|
|
4440
|
+
{ tool: "web_search", action: "Identify competitor URLs and market landscape" },
|
|
4441
|
+
{ tool: "scrapling_batch_fetch", action: "Stealth-fetch 5-10 competitor pages in parallel with anti-bot bypass" },
|
|
4442
|
+
{ tool: "scrapling_extract", action: "Extract pricing, features, positioning data with CSS/XPath selectors" },
|
|
4443
|
+
{ tool: "merge_research_results", action: "Join competitor data by company name into unified comparison dataset" },
|
|
4444
|
+
{ tool: "call_llm", action: "Analyze competitive positioning, strengths/weaknesses, market gaps" },
|
|
4445
|
+
{ tool: "multi_criteria_score", action: "Score competitors against weighted criteria (price, features, market share)" },
|
|
4446
|
+
{ tool: "compare_options", action: "Generate ranked comparison table with strategic recommendations" },
|
|
4447
|
+
],
|
|
4448
|
+
},
|
|
4449
|
+
price_monitor: {
|
|
4450
|
+
name: "Price Monitoring Pipeline",
|
|
4451
|
+
description: "Crawl product pages, track price elements with adaptive relocation, aggregate data, and alert on changes. Uses Scrapling's element tracking to survive CSS changes.",
|
|
4452
|
+
steps: [
|
|
4453
|
+
{ tool: "scrapling_crawl", action: "Start multi-page crawl of product catalog or competitor pricing pages" },
|
|
4454
|
+
{ tool: "scrapling_crawl_status", action: "Poll crawl progress and collect extracted items" },
|
|
4455
|
+
{ tool: "scrapling_extract", action: "Extract price, availability, and product details with CSS selectors" },
|
|
4456
|
+
{ tool: "scrapling_track_element", action: "Set up adaptive element tracking for key price elements" },
|
|
4457
|
+
{ tool: "merge_research_results", action: "Merge multi-source pricing data by product identifier" },
|
|
4458
|
+
{ tool: "multi_criteria_score", action: "Score products against price/value/availability criteria" },
|
|
4459
|
+
{ tool: "save_session_note", action: "Persist price snapshot for historical comparison" },
|
|
4460
|
+
{ tool: "send_email", action: "Alert on significant price changes or threshold breaches" },
|
|
4461
|
+
],
|
|
4462
|
+
},
|
|
4463
|
+
thompson_protocol: {
|
|
4464
|
+
name: "Thompson Protocol Content Pipeline",
|
|
4465
|
+
description: "Transform complex topics into accessible content using the 'Calculus Made Easy' approach — 4-agent pipeline: Thompson Writer (plain English + analogies) → Feynman Editor (skeptical beginner rejection loop, max 3 cycles) → Visual Metaphor Mapper (1:1 analogy→visual prompts) → Anti-Elitism Linter (banned phrase detection + readability scoring) → Quality Gate (10-point checklist).",
|
|
4466
|
+
steps: [
|
|
4467
|
+
{ tool: "thompson_pipeline", action: "Initialize the full pipeline — generates execution plan with all agent prompts and handoff points" },
|
|
4468
|
+
{ tool: "thompson_write", action: "Transform the complex topic into plain-English sections with jargon translations, analogies, and difficulty acknowledgments" },
|
|
4469
|
+
{ tool: "call_llm", action: "Execute the Thompson Writer system prompt against the topic — LLM does the creative writing, tool provides constraints" },
|
|
4470
|
+
{ tool: "thompson_feynman_edit", action: "Run Skeptical Beginner review — 8 rejection criteria, deterministic readability checks, max 3 rewrite cycles" },
|
|
4471
|
+
{ tool: "thompson_write", action: "(Loop) Rewrite any REWRITE-flagged sections with specific fix instructions from Feynman Editor" },
|
|
4472
|
+
{ tool: "thompson_visual_map", action: "Generate visual prompts for each analogy — literal 1:1 mapping, consistent style, accessibility alt-text" },
|
|
4473
|
+
{ tool: "thompson_anti_elitism_lint", action: "Scan for banned phrases (22 patterns), passive voice, readability, jargon density — fully deterministic" },
|
|
4474
|
+
{ tool: "thompson_quality_gate", action: "10-point boolean checklist → grade (exemplary/passing/needs_work/failing). Gate before distribution." },
|
|
4475
|
+
{ tool: "save_session_note", action: "Persist the Thompson-processed content for distribution via content_publish workflow" },
|
|
4476
|
+
{ tool: "record_learning", action: "Record which analogies, styles, and audience levels produced the best engagement" },
|
|
4477
|
+
],
|
|
4478
|
+
},
|
|
3854
4479
|
};
|
|
3855
4480
|
//# sourceMappingURL=toolRegistry.js.map
|