{"id":27817123,"url":"https://github.com/cephalization/infinite-mystery","last_synced_at":"2025-10-15T02:36:55.351Z","repository":{"id":93393634,"uuid":"600248840","full_name":"cephalization/infinite-mystery","owner":"cephalization","description":"Create and share AI guided mysteries to solve","archived":false,"fork":false,"pushed_at":"2025-05-22T01:24:47.000Z","size":2406,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-22T02:30:53.622Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://infinitemystery.app/","language":"TypeScript","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/cephalization.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":"2023-02-10T23:23:24.000Z","updated_at":"2025-05-22T01:24:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"c7071b48-3245-4bdb-8839-b8ec2906e8e4","html_url":"https://github.com/cephalization/infinite-mystery","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cephalization/infinite-mystery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cephalization%2Finfinite-mystery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cephalization%2Finfinite-mystery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cephalization%2Finfinite-mystery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cephalization%2Finfinite-mystery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cephalization","download_url":"https://codeload.github.com/cephalization/infinite-mystery/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cephalization%2Finfinite-mystery/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268454345,"owners_count":24253147,"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-08-02T02:00:12.353Z","response_time":74,"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":[],"created_at":"2025-05-01T14:37:50.605Z","updated_at":"2025-10-15T02:36:50.312Z","avatar_url":"https://github.com/cephalization.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# infinite-mystery\n\nAI guided text based adventures.\n\nCreate and solve mysteries to solve under the guidance of an AI Dungeon Master.\n\n![infinite-mystery-text-adventure-interface](images/infinite-mystery-text-adventure.png)\n\n## Development\n\nInfinite Mystery is built as a full stack application inside of a turborepo monorepo\n\nHere's what you need to get started developing:\n\n- [nvm](https://github.com/nvm-sh/nvm)\n- [Yarn](https://yarnpkg.com/)\n- [Docker](https://www.docker.com/)\n- [Docker Compose](https://docs.docker.com/compose/)\n\nSetting up your development environment:\n\n```bash\n# From the root of the project\n\n# Install nvm\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash\n# Install the project version of node\nnvm install\n# Install yarn\nnpm install -g yarn\n# Install dependencies\nyarn\n# Setup environment variables\ncp .env.example .env # then edit .env to fill in required variables\n# Start required docker containers\nyarn d-up # see package.json for other docker commands\n# Initialize the database\nyarn db-init\n# Optionally seed the database\nyarn db-seed\nyarn workspace database db:generate-images\n# Start the server\nyarn dev\n```\n\n## Workflow\n\n### Branches\n\n- `main` is the main branch. It is protected and requires PRs to be merged into it. It is auto-deployed to https://infinitemystery.app/\n- `staging` is the staging branch. New branches should branch off of this. It is auto-deployed to https://infinite-mystery-staging.up.railway.app/\n\n### Developing a new feature\n\n1. Create a new branch off of `staging` with a descriptive name\n2. Develop your feature\n   - `yarn dev` will spin up the server and watch changes to `apps/web` to auto-reload\n     - You will need to `ctrl-c` and restart `yarn dev` if you make changes anywhere else, like `packages/ai-client`\n   - `yarn ci` will run the full test suite that CI would run\n   - `yarn d-up` will standup the database and other services\n   - `yarn d-down` will tear down the database and other services when you are down\n3. When you are ready to merge your branch, create a PR against `staging`\n4. Once your PR is approved, merge it into `staging`\n5. Once your PR is merged into `staging`, it will be auto-deployed to https://infinite-mystery-staging.up.railway.app/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcephalization%2Finfinite-mystery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcephalization%2Finfinite-mystery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcephalization%2Finfinite-mystery/lists"}