{"id":37154558,"url":"https://github.com/hayride-dev/morphs","last_synced_at":"2026-01-14T18:16:40.709Z","repository":{"id":304862076,"uuid":"963352414","full_name":"hayride-dev/morphs","owner":"hayride-dev","description":"Hayride Community Morphs ","archived":false,"fork":false,"pushed_at":"2025-09-04T20:24:05.000Z","size":416,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-15T13:10:29.520Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/hayride-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2025-04-09T14:48:16.000Z","updated_at":"2025-09-04T20:24:09.000Z","dependencies_parsed_at":"2025-07-16T18:49:12.399Z","dependency_job_id":"83d56c67-9772-4519-a372-9f8f1c0fe71a","html_url":"https://github.com/hayride-dev/morphs","commit_stats":null,"previous_names":["hayride-dev/morphs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hayride-dev/morphs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hayride-dev%2Fmorphs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hayride-dev%2Fmorphs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hayride-dev%2Fmorphs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hayride-dev%2Fmorphs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hayride-dev","download_url":"https://codeload.github.com/hayride-dev/morphs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hayride-dev%2Fmorphs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28430194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-01-14T18:16:40.129Z","updated_at":"2026-01-14T18:16:40.703Z","avatar_url":"https://github.com/hayride-dev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# morphs\n\nMorphs are WebAssembly Components that are deployable on the Hayride platform. \n\nThis repository contains a number of community driven morphs and examples of how to build them.\n\n## Getting Started  \n\nThe majority of the morphs are written in TinyGo/Go. \n\nTo get started, you will need to install various WebAssembly tools. You can learn more about the various ecosystem tools in the [Hayride documentation](https://hayride.dev/docs/).\n\n## Components \n\nThe majority of the components in this repository are exported implementations of the Hayride WebAssembly Interfaces (WIT) defined in the [hayride-dev/coven](https://github.com/hayride-dev/coven).\n\n### Example Component\n\nAI Agents is an example of a reactor component that implements the `hayride:ai/agents` interface.\n\n```\npackage hayride:agents@0.0.1;\n\nworld default {\n    include hayride:wasip2/imports@0.0.65;\n    export hayride:ai/agents@0.0.65;\n}\n```\n\nOnce the component is built, it can be used in a composition to create a more complex functionality.\n\n## Compositions \n\nMorphs can be composed together to create more complex functionality. This allows developers to build upon existing morphs and create new ones by combining their capabilities. Compositions can be defined using [wac](https://github.com/bytecodealliance/wac), a tool for composing WebAssembly components.\n\n\n### Example Composition \n\nHayride defines WebAssembly Interfaces in [coven](https://github.com/hayride-dev/coven).\n\nTaking a look at the WIT definitions for the cli AI `runner`: \n```\nworld cli {\n    include hayride:wasip2/imports@0.0.65;\n    include hayride:wasip2/exports@0.0.65;\n    \n    import hayride:ai/agents@0.0.65;\n    import hayride:ai/model-repository@0.0.65;\n}\n```\n\nWe can see that we are importing the `hayride:ai/agents` and `hayride:ai/model-repository` interfaces.\n\n`hayride:ai/agents` itself, imports `hayride:ai/tools`, `hayride:ai/models`, and `hayride:ai/context` interfaces.\n\nThis means that the `cli` composition can use the `agents`, `tools`, and `models` interfaces to create a command line interface for interacting with AI agents.\n\nYou can find exported implementations of these interfaces in the components/ai directory of this repository.\n\nUsing these components, we can satisfy the `cli` imports by creating a composition that includes the necessary components:\n\n```\npackage hayride:agent;\n\nlet context = new hayride:inmemory@0.0.1 {...}; \n\nlet llama = new hayride:llama31@0.0.1 {...};\n\nlet tools = new hayride:default-tools@0.0.1 {...};\n\nlet agent = new hayride:default-agent@0.0.1 {\n  context: context.context,\n  model: llama.model,\n  tools: tools.tools,\n  ...\n};\n\nlet cli = new hayride:cli@0.0.1 {\n  context: context.context,\n  model: llama.model,\n  tools: tools.tools,\n  agents: agent.agents,\n  ...\n};\n\n// Export the cli\nexport cli...;\n```\n\nThis composition creates a command line interface that can interact with AI agents using the `hayride:ai/agents` and host implementation of the `hayride:ai/model-repository` interfaces.\n\n## Community Morphs\n\nWe welcome contributions from the community! If you have a morph that you'd like to share, please submit a pull request.\n\nCurrently, the easiest morph to develop is the `hayride:ai/model` morph, which provides LLM specific token formatting and encoding. Adding model support is a great way to get started with morph development.\n\n## Contributing\nContributions are welcome! If you'd like to contribute, please follow these steps:\n\n- Fork the repository.\n- Create a new branch for your feature or bug fix.\n- Submit a pull request with a detailed description of your changes.\n\n## License\nThis project is licensed under the MIT License. See the LICENSE file for details","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhayride-dev%2Fmorphs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhayride-dev%2Fmorphs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhayride-dev%2Fmorphs/lists"}