Load state from disk
Save state to disk
Clean up expired cache entries and old articles
Cache MCP query result
Unique identifier for the query
Query result to cache
Time to live in seconds (default: 2 hours)
Get cached MCP query result
Unique identifier for the query
Cached result or null if expired/missing
Add recent article to tracking
Article metadata
Check if article is duplicate based on similarity
Article title
Article topics
MCP query keys used for this article
Duplicate check result with similarity score
Calculate similarity between two articles
Uses weighted combination of:
Similarity score 0.0-1.0
Calculate string similarity using Jaccard similarity of word sets
First string
Second string
Similarity 0.0-1.0
Calculate set overlap (Jaccard similarity)
First set
Second set
Overlap 0.0-1.0
Hash object for cache comparison
Object to hash
SHA-256 hash (first 16 hex chars)
Record workflow execution
Name of workflow
Execution metadata
Get recent articles from last N hours
Hours to look back
Recent articles
Workflow State Coordinator