{"id":50893168,"url":"https://github.com/denisotree/veles","last_synced_at":"2026-06-27T01:09:02.438Z","repository":{"id":364429973,"uuid":"1267731900","full_name":"denisotree/veles","owner":"denisotree","description":"Minimal CLI agent framework with compounding project memory — gets smarter with every session. Clean, modular, any LLM provider","archived":false,"fork":false,"pushed_at":"2026-06-26T10:36:59.000Z","size":4312,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-26T11:16:59.668Z","etag":null,"topics":["agent","agent-framework","agent-memory","ai","ai-agent","ai-agents","anthropic","autonomous-agents","claude","cli","gemini","llm","llm-agent","long-term-memory","multi-agent","ollama","openai","openrouter","python","self-improving"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/veles-ai/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/denisotree.png","metadata":{"files":{"readme":"README.ar.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-12T20:12:26.000Z","updated_at":"2026-06-26T10:37:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/denisotree/veles","commit_stats":null,"previous_names":["denisotree/veles"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/denisotree/veles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisotree%2Fveles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisotree%2Fveles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisotree%2Fveles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisotree%2Fveles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denisotree","download_url":"https://codeload.github.com/denisotree/veles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denisotree%2Fveles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34838079,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"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":["agent","agent-framework","agent-memory","ai","ai-agent","ai-agents","anthropic","autonomous-agents","claude","cli","gemini","llm","llm-agent","long-term-memory","multi-agent","ollama","openai","openrouter","python","self-improving"],"created_at":"2026-06-15T22:02:38.700Z","updated_at":"2026-06-27T01:09:02.429Z","avatar_url":"https://github.com/denisotree.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Veles\n\n[![CI](https://github.com/denisotree/veles/actions/workflows/ci.yml/badge.svg)](https://github.com/denisotree/veles/actions/workflows/ci.yml)\n[![PyPI](https://img.shields.io/pypi/v/veles-ai.svg)](https://pypi.org/project/veles-ai/)\n[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)\n[![Python 3.13+](https://img.shields.io/badge/python-3.13%2B-blue.svg)](pyproject.toml)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e ·\n  \u003ca href=\"README.zh-CN.md\"\u003e简体中文\u003c/a\u003e ·\n  \u003ca href=\"README.zh-TW.md\"\u003e繁體中文\u003c/a\u003e ·\n  \u003ca href=\"README.ja.md\"\u003e日本語\u003c/a\u003e ·\n  \u003ca href=\"README.ko.md\"\u003e한국어\u003c/a\u003e ·\n  \u003ca href=\"README.es.md\"\u003eEspañol\u003c/a\u003e ·\n  \u003ca href=\"README.fr.md\"\u003eFrançais\u003c/a\u003e ·\n  \u003ca href=\"README.it.md\"\u003eItaliano\u003c/a\u003e ·\n  \u003ca href=\"README.pt-BR.md\"\u003ePortuguês (BR)\u003c/a\u003e ·\n  \u003ca href=\"README.pt-PT.md\"\u003ePortuguês (PT)\u003c/a\u003e ·\n  \u003ca href=\"README.ru.md\"\u003eРусский\u003c/a\u003e ·\n  \u003cb\u003eالعربية\u003c/b\u003e ·\n  \u003ca href=\"README.hi.md\"\u003eहिन्दी\u003c/a\u003e ·\n  \u003ca href=\"README.bn.md\"\u003eবাংলা\u003c/a\u003e ·\n  \u003ca href=\"README.vi.md\"\u003eTiếng Việt\u003c/a\u003e\n\u003c/p\u003e\n\n**إطار عمل بسيط لوكيل سطر الأوامر يزداد ذكاءً مع كل جلسة.**\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/tui-hero.gif\" alt=\"واجهة Veles النصية — اطرح سؤالاً واحصل على إجابة مستندة إلى ذاكرة المشروع نفسه\" width=\"800\"\u003e\n\u003c/p\u003e\n\nعلى عكس أدوات المحادثة التي تبدأ من الصفر في كل مرة، يحتفظ Veles بـ**ذاكرة مشروع منظّمة** — استنتاجات وقواعد ومعرفة منسَّقة تتراكم عبر الجلسات وتجعل الوكيل أكثر فائدة كلما طالت مدة استخدامك له. وطريقة تنظيم *محتواك* قابلة للتوصيل: ويكي LLM على نمط Karpathy افتراضيًا، أو ملاحظات مسطّحة، أو بلا أي بنية على الإطلاق لمستودعات الشيفرة. مبنيّ بنظافة: لا ملفات عملاقة، ولا تقييد بمورّد، ولا مزامنة سحابية.\n\n```bash\nuv tool install veles-ai          # installs the `veles` command\nveles init \u0026\u0026 veles run \"Summarize the project architecture.\"\nveles        # interactive REPL (bare `veles` == `veles tui`)\n```\n\n---\n\n## لماذا Veles؟\n\n**ذاكرة متراكمة** — يُختزَل كل جلسة بواسطة المُنسِّق (Curator) إلى ذاكرة خاصة بكل مشروع (استنتاجات، وقواعد سلوكية، وملخّصات جلسات في `.veles/`). يستدعي الوكيل تلقائيًا الحقائق ذات الصلة والقرارات السابقة — فتتوقف عن إعادة شرح السياق نفسه. وتعمل الذاكرة تحت *أي* تخطيط للمحتوى.\n\n**تخطيطات محتوى قابلة للتوصيل** — يُنشئ `veles init` افتراضيًا ويكي LLM على نمط Karpathy؛ ويمنحك `--layout notes` دليل ملاحظات مسطّحًا؛ بينما لا يضيف `--layout bare` أي بنية على الإطلاق (مثالي لمستودعات الشيفرة). حِزَم التخطيط المخصّصة هي مجرد ملف TOML واحد في `~/.veles/layouts/`.\n\n**توجيه مستقل عن المورّد** — OpenRouter أو Anthropic أو OpenAI أو Gemini أو Ollama أو llamacpp أو اشتراك سطر الأوامر `claude`/`gemini` الخاص بك. ويمكن توجيه أنواع المهام المختلفة (التخطيط، الضغط، الاستنتاجات) إلى نماذج مختلفة.\n\n**مهارات تتراكم** — تتحوّل كتل التوجيه القابلة لإعادة الاستخدام إلى أدوات للوكيل. رقِّ مهارة من مشروع إلى نطاق المستخدم العام فتصبح متاحة في كل مكان. كما يعثر إزالة التكرار المدمج على المهارات شبه المكرّرة قبل أن تتشعّب.\n\n**محلّي أولًا + معزول** — لا تتبّع، ولا مزامنة سحابية. لا يرى الوكيل سوى دليل المشروع النشط. يطلب سُلَّم الثقة الإذن عند كل استدعاء أداة حسّاسة؛ مع إمكانية المنح المسبق لأجل CI.\n\n**معياري لا متجانس** — نواة بسيطة (الذاكرة، حلقة الوكيل، بروتوكول المورّد، سجل الأدوات). وكل ما عداها — الواجهة النصية، والخادم الخفي، وبوابة Telegram، والبحث المعمّق، ومجدول المهام — وحدة اختيارية قابلة للتحميل.\n\n---\n\n## بداية سريعة\n\n**المتطلبات:** Python 3.13+، وmacOS / Linux (وWindows بأفضل جهد ممكن). ثبِّت [uv](https://docs.astral.sh/uv/) أولًا.\n\n```bash\n# 1. Install uv\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# 2. Install veles (the package is published as `veles-ai`; the command is `veles`)\nuv tool install veles-ai\n# …or from source:\n#   git clone https://github.com/denisotree/veles.git \u0026\u0026 cd veles \u0026\u0026 uv tool install .\n\n# 3. Set an API key — OpenRouter is recommended (access to all models, one key)\nexport OPENROUTER_API_KEY=sk-or-v1-...\n\n# 4. Create a project\nmkdir my-project \u0026\u0026 cd my-project\nveles init\n\n# 5. Talk to the agent\nveles run \"Read AGENTS.md and describe this project.\"\n```\n\nافتح الواجهة النصية التفاعلية بدلًا من ذلك (الأمر المجرّد `veles` يفعل الشيء نفسه):\n\n```bash\nveles\n```\n\nعند التشغيل الأول، سيطلب منك معالج الإعداد لغتك المفضّلة، والمورّد، واسم المشروع.\n\n---\n\n## المورّدون\n\n| المورّد | متغيّر البيئة | ملاحظات |\n|---|---|---|\n| **OpenRouter** *(مُوصى به)* | `OPENROUTER_API_KEY` | Claude وGPT وGemini وLlama — مفتاح واحد، مئات النماذج |\n| Anthropic | `ANTHROPIC_API_KEY` | واجهة برمجة مباشرة |\n| OpenAI | `OPENAI_API_KEY` | واجهة برمجة مباشرة |\n| Gemini | `GEMINI_API_KEY` أو `GOOGLE_API_KEY` | واجهة برمجة مباشرة |\n| `claude` CLI | — | يستخدم اشتراك Claude الخاص بك؛ لا حاجة لمفتاح واجهة برمجة |\n| `gemini` CLI | — | يستخدم اشتراك Gemini الخاص بك؛ لا حاجة لمفتاح واجهة برمجة |\n| Ollama | — | نماذج محلية، `http://localhost:11434/v1` |\n| llamacpp | — | نماذج محلية، `http://localhost:8080/v1` |\n| openai-compat | `OPENAI_COMPAT_BASE_URL` | أي نقطة نهاية متوافقة مع OpenAI |\n\nالتجاوز لكل تشغيل:\n\n```bash\nveles run --provider anthropic --model anthropic/claude-opus-4-8 \"...\"\nveles run --provider ollama --model llama3.2 \"...\"\n```\n\nخزّن مفاتيح واجهة البرمجة في سلسلة مفاتيح نظام التشغيل بدلًا من متغيّرات البيئة:\n\n```bash\nveles secret set OPENROUTER_API_KEY    # prompts for value, stores in keychain\n```\n\n---\n\n## سير العمل الأساسي\n\n### اختر تخطيطًا للمحتوى\n\n```bash\nveles init                  # default: Karpathy-style LLM wiki (sources/ + wiki/)\nveles init --layout notes   # a single flat notes/ directory\nveles init --layout bare    # no content scaffold — code repos, free-form work\n```\n\nتعمل ذاكرة الوكيل الخاصّة (الاستنتاجات والقواعد وملخّصات الجلسات في `.veles/`) بالطريقة نفسها تحت كل تخطيط. والحِزَم المخصّصة هي ملف `layout.toml` واحد في `~/.veles/layouts/\u003cname\u003e/`.\n\n### ابنِ قاعدة معرفة (تخطيط llm-wiki)\n\n```bash\nveles add paper.pdf                   # read a source → write a wiki page\nveles add https://example.com/post    # web pages, PDFs, plain text\n\nveles run \"What do we know about the authentication design?\"\nveles curate                          # explicit session → memory consolidation\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/kb-ingest.gif\" alt=\"قاعدة معرفة Veles — ابتلاع مصدر إلى صفحة ويكي، ثم اطرح سؤالاً واحصل على إجابة تستشهد به\" width=\"800\"\u003e\n\u003c/p\u003e\n\nيعمل المُنسِّق تلقائيًا بعد الجلسات. ويلتقط استخراج الاستنتاجات عبارات مثل \"always prefer X\" أو \"never do Y\" ويكتبها كاستنتاجات دائمة للمشروع.\n\n### البحث المعمّق\n\n```bash\nveles research \"What are the trade-offs between SQLite and PostgreSQL for this use case?\"\n```\n\nيفكّك السؤال إلى أسئلة فرعية متوازية، ويستكشف كلًا منها، ثم يركّب تقريرًا منظّمًا.\n\n### الأهداف طويلة المدى\n\n```bash\nveles goal start \"Migrate auth module to the new provider\" --max-cost-usd 2.00\nveles goal list\nveles goal checkpoint \u003cid\u003e \"Completed step 1: identified all call sites\"\n```\n\n### المهام المجدولة\n\n```bash\nveles job add --name \"weekly-review\" --schedule \"0 9 * * 1\" --prompt \"Generate a weekly progress summary\"\nveles job list\n```\n\n---\n\n## توجيه النماذج (المجموعات)\n\nوجِّه أنواع المهام المختلفة إلى نماذج مختلفة — اضبطه مرة واحدة وانسَه.\n\n**عبر سطر الأوامر:**\n```bash\nveles route show                                          # current routing table\nveles route set compressor anthropic/claude-haiku-4-5    # typed override\nveles route reset compressor                             # back to default\n```\n\n**عبر اللغة الطبيعية في `AGENTS.md`:**\n```markdown\n## Routing\nUse Opus for planning and architecture decisions.\nHaiku is fine for compression and insight extraction.\n```\n\n```bash\nveles route refresh    # parse the NL hints; typed overrides always win\n```\n\n---\n\n## المهارات والوحدات\n\n**المهارات** هي كتل توجيه قابلة لإعادة الاستخدام (`SKILL.md`) تتحوّل تلقائيًا إلى أدوات للوكيل.\n\n```bash\nveles skill add https://github.com/org/skill-repo    # install from git\nveles skill add ./local-skill-dir                    # or from local path\nveles skill list                                     # list with telemetry\nveles skill promote my-skill                         # copy to ~/.veles/skills (global)\nveles skill dedup                                    # find near-duplicates\nveles skill suggest-promote --save                   # propose promotions based on usage\n```\n\n**الوحدات** هي إضافات Python يمكنها الارتباط بدورة حياة الوكيل (`pre_turn` و`post_turn` و`pre_tool_call` و`post_tool_call`) والاعتراض على استدعاءات الأدوات.\n\n```bash\nveles module add https://github.com/org/module-repo\nveles module list\n```\n\n---\n\n## الواجهة النصية (TUI)\n\n```bash\nveles                        # new session (bare `veles` launches the TUI)\nveles tui --resume \u003cid\u003e      # continue a session\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/tui-tour.gif\" alt=\"واجهة Veles النصية — أدوات الفحص بالشرطة المائلة (‎/status و‎/context)، وتبديل الأوضاع، ولوحة الأوامر\" width=\"800\"\u003e\n\u003c/p\u003e\n\nتُظهِر أوامر الشرطة المائلة كل شيء مباشرةً — `/status` و`/tokens` و`/context` و`/mode` و`/help` — ويتنقّل `Shift+Tab` بين الأوضاع (تلقائي / تخطيط / كتابة / هدف).\n\n| المفتاح | الإجراء |\n|---|---|\n| `Enter` | إرسال الرسالة |\n| `Shift+Enter` | سطر جديد في المحرّر |\n| `Ctrl+I` | تبديل مُفتِّش نشاط الأدوات |\n| `Ctrl+R` | طبقة منتقي الجلسات |\n| `Ctrl+G` | فتح `$EDITOR` على المسوّدة الحالية |\n| `Tab` | إكمال تلقائي لأوامر الشرطة المائلة |\n| `Ctrl+D` | إنهاء |\n\nأوامر الشرطة المائلة: `/help` · `/model` · `/mode` · `/status` · `/tokens` · `/context` · `/wiki` · `/save \u003cslug\u003e` · `/history` · `/insights` · `/rules` · `/daemon` وغيرها.\n\n---\n\n## الخادم الخفي + Telegram\n\nشغِّل Veles كخادم خفي دائم بواجهة HTTP/WebSocket. في دليل مشروع جديد، يقودك `veles daemon start` عبر الإعداد — تهيئة المشروع، وتمكين الخادم الخفي، و**توصيل قناة**: اختر أولًا *نوع* القناة (Telegram هو المنصّة الوحيدة المتاحة اليوم، لكن المنتقي هو الوصلة التي تُسجَّل عليها القنوات الجديدة)، ثم املأ حقول تلك القناة (رمز البوت، القائمة البيضاء). لا حاجة لفتح الواجهة النصية أولًا.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/daemon-setup.gif\" alt=\"veles daemon start — معالج يُشغِّل الخادم الخفي ويوصِل قناة Telegram (نوع القناة أولًا، ثم رمزها وقائمتها البيضاء)\" width=\"800\"\u003e\n\u003c/p\u003e\n\n```bash\nveles daemon start                        # wizard (fresh dir) → starts on 127.0.0.1:8765\nveles daemon status                       # is it running?\nveles daemon list                         # daemons across all projects\n```\n\nيفتح الأمر المجرّد `veles daemon` لوحة تحكّم حيّة — شجرة من المشروع ← الخوادم الخفية ← القنوات. ابدأ الخوادم الخفية أو أوقِفها أو أعِد تشغيلها أو احذفها، وأضِف القنوات أو أزِلها (نفس تدفّق نوع-القناة-أولًا، المفتاح `c`) عبر كل مشروع، كل ذلك من لوحة المفاتيح:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/daemon-panel.gif\" alt=\"veles daemon — واجهة لوحة التحكّم النصية: شجرة من المشروع ← الخوادم الخفية ← القنوات مع بدء/إيقاف/إعادة تشغيل/حذف وإدارة قنوات مدمجة\" width=\"800\"\u003e\n\u003c/p\u003e\n\nكما يتوفّر معالج القناة نفسه بشكل مستقل (`veles channel add`) على مشروع قيد التشغيل بالفعل.\n\nنقاط نهاية واجهة البرمجة: `POST /v1/runs` لإرسال توجيه، و`WS /v1/runs/{id}/events` لبث الاستجابة، و`GET /v1/sessions` لسرد الجلسات. وتتطلّب جميعها — عدا `GET /v1/health` — ترويسة `Authorization: Bearer \u003ctoken\u003e` (أنشئ واحدًا بـ `veles daemon token add \u003cname\u003e`).\n\nيحصل كل مستخدم Telegram على جلسة دائمة. استخدم `veles channel list-sessions` / `reset-session` لإدارة الربط.\n\n---\n\n## تعدد المشاريع\n\n```bash\nveles project list                       # registered projects\nveles project switch \u003cslug\u003e              # print the absolute path\ncd $(veles project switch \u003cslug\u003e)        # jump to a project\n\nveles subproject init frontend           # create a child project\nveles subproject suggest --save          # agent-detected topic clusters → proposals\n```\n\n---\n\n## الثقة والأمان\n\nيطلب كل استدعاء أداة حسّاسة (تنفيذ صدفة، كتابة ملفات، جلب عناوين URL) الإذن:\n\n```\nTool 'run_shell' wants to execute. Allow?\n  [1] Once  [2] Always for this project  [3] Always everywhere  [4] Refuse\n```\n\nالمنح المسبق لأجل CI أو التشغيلات المستقلّة الممتدّة:\n\n```bash\nveles trust set run_shell --scope project   # pre-grant for this project\nveles autopilot enable --until +2h          # temporary trust bypass (audit-logged)\nveles autopilot disable\n```\n\nلا يرى الوكيل سوى دليل المشروع النشط — أمّا المشاريع الأخرى وهروب الروابط الرمزية واجتياز `..` فمحجوبة.\n\n---\n\n## التصدير / الاستيراد\n\n```bash\nveles export full ./backup.tar.gz        # full backup: memory, sessions, telemetry\nveles export template ./template.tar.gz  # sanitised template (no sources/sessions/PII)\nveles import ./backup.tar.gz --into ./new-dir\n```\n\n---\n\n## مرجع سطر الأوامر\n\n| الأمر | الغرض |\n|---|---|\n| `veles init [name]` | إنشاء مشروع جديد |\n| `veles run \"\u003cprompt\u003e\"` | تشغيل وكيل بدورة واحدة |\n| `veles tui` | واجهة REPL النصية التفاعلية |\n| `veles add \u003cfile\\|url\u003e` | ابتلاع مصدر ← صفحة ويكي |\n| `veles research \"\u003cquestion\u003e\"` | بحث معمّق متعدّد الزوايا |\n| `veles curate` | دمج الجلسات في الويكي |\n| `veles sessions {list,show,delete,search}` | إدارة الجلسات |\n| `veles skill {list,add,remove,promote,demote,dedup,suggest-promote}` | إدارة المهارات |\n| `veles tool {list,show,promote}` | إدارة الأدوات |\n| `veles module {list,add,remove}` | إدارة الإضافات |\n| `veles route {show,set,reset,refresh}` | توجيه النماذج |\n| `veles goal {list,show,start,checkpoint,pause,resume,done,cancel}` | الأهداف طويلة الأفق |\n| `veles job {list,add,show,pause,resume,trigger,remove,history}` | المهام المجدولة |\n| `veles dream` | دورة دمج الذاكرة في الخلفية |\n| `veles project {list,add,remove,switch}` | سجل تعدّد المشاريع |\n| `veles subproject {init,list,switch,remove,suggest}` | المشاريع الفرعية |\n| `veles trust {list,set,revoke,clear}` | منح الثقة |\n| `veles autopilot {enable,disable,status}` | تجاوز مؤقت للثقة |\n| `veles secret {set,get,list,delete}` | أسرار سلسلة مفاتيح نظام التشغيل |\n| `veles daemon {start,stop,status,list,restart,delete,session,token}` | خادم HTTP/WS الخفي |\n| `veles channel {run,list-sessions,reset-session}` | بوابة القنوات الخارجية |\n| `veles mcp {list,test}` | خوادم MCP الخارجية |\n| `veles models \u003cprovider\u003e` | سرد نماذج المورّد |\n| `veles doctor` | فحوص السلامة |\n| `veles export / import` | نسخ المشروع احتياطيًا ونقله |\n\nلكل أمر خيار `--help`.\n\n---\n\n## التوثيق\n\nالتوثيق الكامل — منظّم وفق Diátaxis (دروس تعليمية · أدلة إرشادية · مرجع · شرح):\n\n- **العربية:** [`docs/ar/index.md`](docs/ar/index.md)\n\nلغات أخرى: استخدم محوّل 🌐 أعلى أي صفحة من صفحات التوثيق.\n\n---\n\n## المساهمة\n\nالمساهمات مرحَّب بها للغاية — فـ Veles **مبنيّ ليُوسَّع**. تبقى النواة صغيرة (حلقة الوكيل + ذاكرة المشروع + بروتوكول المورّد)؛ وكل ما عداها تقريبًا نقطة توسيع قابلة للتوصيل، لذا فإن إضافة قدرة نادرًا ما تعني المساس بالنواة:\n\n- **محوّلات المورّدين** (`src/veles/adapters/`) — صِل خلفية نموذج جديدة.\n- **المهارات** — كتل توجيه وأدوات قابلة لإعادة الاستخدام مع وراثة `extends:`، قابلة للترقية من مشروع إلى نطاق المستخدم العام.\n- **الأدوات** — شيفرة Python مكتوبة الأنواع يكتبها الوكيل ويعيد استخدامها، تحت `\u003cproject\u003e/.veles/tools/`.\n- **حِزَم التخطيط** — ملف `layout.toml` واحد في `~/.veles/layouts/\u003cname\u003e/` يُعرِّف تخطيط محتوى كاملًا.\n- **خطّافات الوحدات** — قابلية الرصد والتسجيل والسياسات عبر خطّافات `pre_turn` / `post_turn` (`src/veles/core/modules.py`).\n- **القنوات وخوادم MCP** — بوابات جديدة ومصادر أدوات خارجية.\n- **اللغات** — الترجمات في `src/veles/locales/`.\n\n```bash\ngit clone https://github.com/denisotree/veles.git \u0026\u0026 cd veles\nuv sync                              # runtime + dev dependencies\nuv run pytest                        # the full suite (3200+ tests, no network)\nuv run ruff check src tests \u0026\u0026 uv run mypy\n```\n\nالشيفرة مفكّكة عن قصد — مسؤولية واحدة، لا ملفات عملاقة. اقرأ [`CONTRIBUTING.md`](CONTRIBUTING.md) للاطلاع على الاصطلاحات و[`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) قبل فتح طلب سحب. أفضل المساهمات الأولى: محوّلات المورّدين، ومهارات سير العمل، وخطّافات الوحدات، وملفات اللغات.\n\n---\n\n## الترخيص\n\nApache 2.0 مع منح براءات الاختراع — انظر [`LICENSE`](LICENSE) و[`NOTICE`](NOTICE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisotree%2Fveles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenisotree%2Fveles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisotree%2Fveles/lists"}