{"id":20674915,"url":"https://github.com/cheshire-cat-ai/docs","last_synced_at":"2025-04-19T20:33:51.610Z","repository":{"id":172001483,"uuid":"648712516","full_name":"cheshire-cat-ai/docs","owner":"cheshire-cat-ai","description":"Documentation for the Cheshire Cat AI","archived":false,"fork":false,"pushed_at":"2025-04-14T04:12:25.000Z","size":24280,"stargazers_count":37,"open_issues_count":26,"forks_count":32,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-14T05:24:51.419Z","etag":null,"topics":["cheshire-cat","documentation","mkdocs"],"latest_commit_sha":null,"homepage":"https://cheshire-cat-ai.github.io/docs/","language":"Python","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/cheshire-cat-ai.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-02T16:06:24.000Z","updated_at":"2025-03-30T18:09:32.000Z","dependencies_parsed_at":"2024-04-22T05:25:12.753Z","dependency_job_id":null,"html_url":"https://github.com/cheshire-cat-ai/docs","commit_stats":null,"previous_names":["cheshire-cat-ai/docs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire-cat-ai%2Fdocs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire-cat-ai%2Fdocs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire-cat-ai%2Fdocs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheshire-cat-ai%2Fdocs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheshire-cat-ai","download_url":"https://codeload.github.com/cheshire-cat-ai/docs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249794785,"owners_count":21326774,"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":["cheshire-cat","documentation","mkdocs"],"created_at":"2024-11-16T21:08:04.244Z","updated_at":"2025-04-19T20:33:51.562Z","avatar_url":"https://github.com/cheshire-cat-ai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u0026#128075; Hello, Dear\n\n\u003e Good documentation is *key* to a good software and at Cheshire Cat AI we are always looking for great community members that are willing to improve it with their writing skills. This README as well as all the documentation you can find about the [Cat](https://cheshire-cat-ai.github.io/docs/) is the result of an effort between our Core team and a great Community. Remember to always have fun whatever you decide to contribute to, meow.\n\n## 📚 How to Contribute Documentation\n\n1. Fork the repository.\n2. Using Markdown syntax, edit or create new files for the documentation in the `/mkdocs` directory.\n3. Use **headings**, **bullet points** or **numbered lists**, **code blocks** and other formatting tools to make the documentation easy to read and understand.\n4. Use clear and concise language to explain the features, functions or concepts that are being documented.\n5. Use hyperlinks, images or other visual aids to enhance the documentation.\n6. Use the appropriate `/assets` folder for your static assets. Eg. Images goes under `/assets/img`.\n7. Add a new item or adjust menu levels through the `mkdocs.yml` file if you have made any structural modifications.\n8. When finished, commit and push your changes to your forked repository.\n9. Open a pull request and ask for feedback from the community.\n10. Keep your contributions up-to-date with any changes or updates made to the main repository.\n\nThere is a [dedicated channel for Docs on our official Discord](https://discord.com/channels/1092359754917089350/1092360068269359206), don't be shy and contact us there if you need help!\n\n### \u0026#129693; Hooks documentation\n\nTo help documenting the [hooks table](mkdocs/plugins/hooks.md#available-hooks), ensure these elements are not missing and please keep the order:\n\n1. Annotation number with bold heading\n2. *Input arguments* description with *code snippet* example\n3. *optional*: any other **non collapsible** `warning` box/additional `info` for tips, tricks and discouraged behaviors (`!!! info`/`!!! warning`)\n4. **collapsible** snippet example (`??? example`)\n5. **collapsible** note section with title: `??? note \"Other resources\"` --\u003e in this section please include the link to the hook Python reference in the documentation and any other useful links to other doc's pages.\n\nExample:\n\n```python\n1. **Input arguments**\n        `user_message_json`, i.e. the JSON message sent via WebSocket done like this:\n        ```JSON\n        {\n            \"text\": # user's message here\n        }\n        ```\n\n        !!! info\n            Hook the incoming user message JSON dictionary\n\n        ??? example\n\n            ```python\n            from cat.mad_hatter.decorators import hook\n\n            @hook  # default priority = 1\n            def before_cat_reads_message(user_message_json, cat):\n                user_message_json[\"text\"] = \"The original message has been replaced\"\n                cat.working_memory[\"hacked\"] = True\n\n                return user_message_json\n            ```\n\n        ??? note \"Other resources\"\n\n            - [Python reference]()\n```\n\n## 🤹 Manage the tecnology [mkdocs]\n\nTo modify the behavior of MkDocs and its plugins, everything you need is within the `mkdocs.yml` file.  \nWe invite you to read the documentation for the [MkDocs Material theme](https://squidfunk.github.io/mkdocs-material/reference/) to fully understand all the potential of the tool and how to make the most of its extensive features.\n\n### 📦 Requirements\n\n- Python 3.8+\n- Pip 20+\n\nInstall dependencies:\n\n`pip install -r requirements.txt`\n\n### 🛠️ Develop\n\n`mkdocs serve` or `python -m mkdocs serve` will launch a local, non static, instance of the documentation website.\n\n### 🖌️ Diagrams\n\nAll the diagrams under the \"Framework/Technical Diagrams\" section have been created using draw.io.\nThe file [drawio-cheshire-cat-library](drawio-cheshire-cat-library.xml) is a draw.io library, it contains some custom Cat shapes, this library has been created to speed up the sketching, you can use it opening the file with draw.io.\nYou can refer to the draw.io files with the extension `.drawio`, directly from the markdown files like this:\n\n```mk\n# \u0026#128572; The Cat Bootstrap\n\nThis interactive diagram, zoomable with a click, depicts the internal process involved during bootstrap of the Cat:\n\n![](../../assets/diagrams/cat-bootstrap.drawio)\n```\n\nIn the `mkdocs.yml` there is defined the hook `drawio_file.py`, this mkdocs plugin converts the drawio files during the build time:\n\n```mk\nhooks:\n  - mkdocs/hooks/drawio_file.py\n```\n  \nRemember that:\n\n- the tab selected during the save of the draw.io file, will become the initial page when the diagram is opened\n\n- the layers visible during the save of the draw.io files, will be the default visible layers when the diagram is opened\n  \n- by default, the hooks shapes have to be visible\n  \n- the folder `mkdocs/assets/img/diagrams` contains the svg files used in the main diagram pages, in case you change the diagrams remember to update them.\n\n### 🏗️ Build\n\nThe build stage is automated using GitHub action, you don't need to do it in order to contribute. However, if you want to have a static copy of the documentation on your local machine you are free to do it.  \n\n`mkdocs build` or `python -m mkdocs build` will create the actual docs static website in a folder named `/docs`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheshire-cat-ai%2Fdocs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheshire-cat-ai%2Fdocs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheshire-cat-ai%2Fdocs/lists"}