{"id":19098430,"url":"https://github.com/winkjs/wink-composer","last_synced_at":"2025-10-04T09:43:26.878Z","repository":{"id":247633996,"uuid":"826405133","full_name":"winkjs/wink-composer","owner":"winkjs","description":"Composable Streaming Intelligence","archived":false,"fork":false,"pushed_at":"2025-07-10T15:55:32.000Z","size":170,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-17T01:28:35.149Z","etag":null,"topics":["anomaly-detection","composable","edge-ai","edge-computing","event-driven","industrial-iot","iot","javascript","nodejs","real-time-analytics","statistical-analysis","statistical-learning","stream-processing","streaming-analytics","wink-composer"],"latest_commit_sha":null,"homepage":"https://winkjs.org/wink-composer/#/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winkjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-09T16:38:45.000Z","updated_at":"2025-07-14T22:06:53.000Z","dependencies_parsed_at":"2024-07-21T06:19:25.847Z","dependency_job_id":"3ed01cff-a12b-4e00-a742-1f0394fa423f","html_url":"https://github.com/winkjs/wink-composer","commit_stats":null,"previous_names":["winkjs/wink-composer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/winkjs/wink-composer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winkjs%2Fwink-composer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winkjs%2Fwink-composer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winkjs%2Fwink-composer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winkjs%2Fwink-composer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winkjs","download_url":"https://codeload.github.com/winkjs/wink-composer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winkjs%2Fwink-composer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278295847,"owners_count":25963427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anomaly-detection","composable","edge-ai","edge-computing","event-driven","industrial-iot","iot","javascript","nodejs","real-time-analytics","statistical-analysis","statistical-learning","stream-processing","streaming-analytics","wink-composer"],"created_at":"2024-11-09T03:45:43.022Z","updated_at":"2025-10-04T09:43:26.873Z","avatar_url":"https://github.com/winkjs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wink-composer ♫\n\n### [![Stability](https://img.shields.io/badge/stability-1--experimental-orange.svg)](https://nodejs.org/api/documentation.html#documentation_stability_index)\n\n## ✨ Real-time analytics that sparks joy\n\n[\u003cimg align=\"right\" src=\"https://decisively.github.io/wink-logos/logo-title.png\" width=\"100px\" \u003e](http://winkjs.org/)\n\nWinkComposer is an upcoming open-source framework that makes building streaming intelligence playfully simple. Connect intuitive nodes, experiment freely, perfect it in an iteration or two. From edge-ready AI algorithms to built-in resilience, everything you need for production comes standard. No complexity, no black boxes - just the joy of creating exactly what you need.\n\n## Why Composability Matters\n\n**🎯 Create What You Need** — With composability, you're the inventor: Correlate vibration with weather? Done. Detect micro-trends before they become macro? Built. \n\n**💫 Countless Possibilities** — Dozens of nodes → Endless pipelines. Like few music notes creating captivating symphonies.\n\n**🌱 Evolve Naturally** — Start: `sensor → threshold → alert`. Grow: Add intelligence: `sensor → normalize → smooth → detect → confirm → alert`. Unconstrained by vendor feature lists.\n\n**🔍 Total Transparency** — See which node triggered, what threshold crossed, why it alerted. Every decision is explainable.\n\n## Build Exactly What You Need\n\nBuild precise analytics for your unique patterns:\n\n```javascript\n// Detect bearing failure in rotating equipment\nvibration → isolateSignal → extractPeaks → measureIntensity →\n      trackChanges → triggerAlert\n\n// Monitor chemical process quality\ntemperature → removeNoise → smoothFast → smoothSlow → findDivergence →\n      detectChange → waitForPersistence\n\n// Find correlated sensor behaviors\n[sensor1, sensor2] → trackCorrelation → compareToNormal → raiseFlag\n\n// Calculate real-time OEE\nmachine → trackState → sumTime → countOutput →\n      checkQuality → calculateScore\n```\n\nEach node is simple:\n- `removeNoise`: Median of last few values (removes sensor spikes).\n- `smoothFast`: Average of last 10 values (recent trend).\n- `smoothSlow`: Average of last 100 values (baseline trend).\n- `findDivergence`: Fast trend - slow trend (unusual behavior?).\n- `trackCorrelation`: Smart correlation (learns relationships between sensors)\n\n_Node names and details are illustrative - actual implementations may vary._\n\nEvery arrow is a conscious choice. Every node has a purpose. No magic, just simple intuitive math.\n\n\n## Your Analytics Journey\n\n**Start Simple**  \n`sensor → threshold → alert`\n\n**Evolve Naturally**  \n`sensor → validate → normalize → threshold → debounce → alert`\n\n**Scale Intelligently**  \n`sensor → [parallel: statistics | patterns | anomalies] → correlate → decide → act`\n\nYour analytics grow with your understanding, and are never limited by any tool's feature list.\n\n## Designed for the Real World\n\n### Industrial IoT\nFrom simple threshold monitoring to complex predictive maintenance - compose what fits your equipment, your patterns, your physics. **Move intelligence to the edge** with analytics that run on industrial Raspberry Pis. Works alongside your existing systems to handle your unique requirements.\n\n### Financial Services  \nBuild fraud detection you can explain to auditors. Every decision traceable, every threshold justified.\n\n### Smart Infrastructure\nEnergy optimization with transparent logic. See why the system made each decision.\n\n## Production-Grade Resilience\nReal streams have noise. Sensors fail. Networks hiccup. WinkComposer handles it all:\n\n- **Node-level fault isolation** - One bad reading doesn't crash your pipeline\n- **Automatic state recovery** - Snapshot and restore without missing a beat\n- **Built-in observability** - Know what's happening in every node, every partition\n- **Adaptive execution** - Maintains responsiveness under varying load\n\n\n## Core Principles\n\n| Principle | What it means |\n|-----------|---------------|\n| **Atomic Operations** | Each node does one thing perfectly |\n| **Pure Functions** | Predictable, testable, composable |\n| **Transparent Logic** | Understand every decision |\n| **Production Ready** | Built for high-throughput streaming with microsecond-scale latency |\n| **AI-Native Intelligence** | From statistical learning nodes to LLM reasoning - intelligence at every level |\n| **Built for Reality** | Node-level fault isolation, automatic recovery, and comprehensive observability |\n\n## What's Coming\n\n### 🎉 **Opening Our Doors in 2025**\nWinkComposer is transitioning to open source development in 2025. Join the [early conversation](https://github.com/winkjs/wink-composer/discussions) and help shape the future of composable streaming analytics. You can even reach out directly at wink@graype.in.\n\n**Together, we're building:**\n\n- **Rich Node Library**: Statistical, filtering, detection, transformation, and control nodes\n- **Edge-Ready Intelligence**: Advanced algorithms like smart correlation, change point detection, and regression inference - AI-like capabilities without heavyweight frameworks\n- **Pipeline Builder**: Define your analytics flows declaratively (visual tools planned)\n- **Edge-Ready Performance**: Process data efficiently, even on resource-constrained devices (**tested on Raspberry Pi**)\n- **Knowledge Graph Integration**: Build digital twins with Neo4j/ArangoDB for contextual intelligence\n- **AI-Native Reasoning**: When patterns emerge, LLMs explain why. When anomalies occur, get actionable recommendations. Open-source models keep intelligence at the edge.\n\n\n## The Vision\n\nFinally, build solutions that fit your exact problems, not the other way around.\n\nEvery industry has unique patterns. Every process has specific physics. Every business has particular rules. WinkComposer gives you the building blocks to create exactly what you need.\n\nDomain-specific platforms excel at standard use cases. WinkComposer shines when you need something unique, beyond standard use cases. Standard use cases always included - they're just the beginning of what's possible!\n\n\n\n## About winkJS\n\nWinkComposer joins the winkJS family - production-grade open-source packages for Natural Language Processing, Machine Learning, and Statistical Analysis in JavaScript. Built for reliability with ~100% test coverage.\n\n\n## Copyright \u0026 License\n\n**Wink Composer** is copyright 2017-25 [GRAYPE Systems Private Limited](https://graype.in/).\n\nIt is licensed under the terms of the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinkjs%2Fwink-composer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinkjs%2Fwink-composer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinkjs%2Fwink-composer/lists"}