{"id":22726689,"url":"https://github.com/tom-sherman/coffeebird","last_synced_at":"2025-10-19T05:49:37.544Z","repository":{"id":57202699,"uuid":"165563575","full_name":"tom-sherman/coffeebird","owner":"tom-sherman","description":"A DSL that compiles to RBLang.","archived":false,"fork":false,"pushed_at":"2019-12-30T09:10:30.000Z","size":454,"stargazers_count":3,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-19T11:48:04.125Z","etag":null,"topics":["automation","decision-making","dsl","inference"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tom-sherman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-13T22:53:58.000Z","updated_at":"2024-09-04T12:40:11.000Z","dependencies_parsed_at":"2022-09-15T13:22:41.223Z","dependency_job_id":null,"html_url":"https://github.com/tom-sherman/coffeebird","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tom-sherman/coffeebird","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-sherman%2Fcoffeebird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-sherman%2Fcoffeebird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-sherman%2Fcoffeebird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-sherman%2Fcoffeebird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tom-sherman","download_url":"https://codeload.github.com/tom-sherman/coffeebird/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-sherman%2Fcoffeebird/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264905035,"owners_count":23681325,"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","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":["automation","decision-making","dsl","inference"],"created_at":"2024-12-10T16:18:12.169Z","updated_at":"2025-10-19T05:49:32.492Z","avatar_url":"https://github.com/tom-sherman.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Coffeebird\n\n[![Build Status](https://travis-ci.org/tom-sherman/coffeebird.svg?branch=master)](https://travis-ci.org/tom-sherman/coffeebird)\n\nA DSL that compiles to RBLang.\n\nRBLang is Rainbird's XML based language which is used to define concepts, relationships, and rules to solve complex decision making problems. Coffeebird replicates all of the features of RBLang without the visual noise of XML.\n\n## Syntax\n\nFull syntax documentation can be found [here](syntax.md).\n\n```\nconcept Person (type: string)\nconcept Country (type: string)\nconcept Language (type: string)\n\nrel Person - speaks - Language\nrel Person - lives in - Country\nrel Country - national language - Language\n\nLanguage(\"English\")\nLanguage(\"French\")\nLanguage(\"German\")\nCountry(\"England\")\nCountry(\"France\")\n\n\"England\" - national language - \"English\" (cf: 100)\n\"France\" - national language - \"French\"\n\n// This is a comment\nspeaks (cf: 75, minimumRuleCertainty: 60) {\n  %S - lives in - %COUNTRY;\n  %COUNTRY - national language - %O;\n}\n```\n\n## CLI\n\nYou can install `coffeebird` globally to invoke the transpiler from the command line.\n\n### Install it globally from NPM\n\n```\nnpm i coffeebird -g\n```\n\n### Usage\n\n```\ncoffeebird [input]\n\ntranspile a file to RBLang\n\nCommands:\n  coffeebird transpile [input]  transpile a file to RBLang             [default]\n\nPositionals:\n  input  The file to transpile.\n\nOptions:\n  --help        Show help                                              [boolean]\n  --version     Show version number                                    [boolean]\n  --output, -o\n```\n\n## API\n\nYou can use Coffeebird programmatically by installing it via NPM and requiring it.\n\n```\nnpm i coffeebird\n```\n\nThe Coffeebird module exports two functions `parse`, and `transpile`.\n\n```javascript\nconst { parse, transpile } = require('coffeebird')\n```\n\n### `transpile(input)`\n\nTake an `input` string and output the transpiled RBLang.\n\n### `parse(input)`\n\nTake an `input` Coffeebird string and outputs an AST.\n\n## Development\n\nEnsure you have Node and `npm` installed.\n\n```\n# Clone the repository\ngit clone https://github.com/tom-sherman/coffeebird\n\n# Move into the cloned directory\ncd coffeebird\n\n# Install dependencies\nnpm i\n\n# Run tests\nnpm t\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom-sherman%2Fcoffeebird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftom-sherman%2Fcoffeebird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom-sherman%2Fcoffeebird/lists"}