evil-omo 3.17.12 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/README.ja.md +154 -114
  2. package/README.ko.md +197 -150
  3. package/README.ru.md +93 -71
  4. package/README.zh-cn.md +113 -72
  5. package/dist/agents/agent-skill-resolution.d.ts +1 -0
  6. package/dist/agents/builtin-agents/available-skills.d.ts +1 -1
  7. package/dist/agents/builtin-agents/general-agents.d.ts +1 -0
  8. package/dist/agents/builtin-agents.d.ts +1 -1
  9. package/dist/agents/dynamic-agent-core-sections.d.ts +1 -0
  10. package/dist/agents/dynamic-agent-prompt-builder.d.ts +1 -1
  11. package/dist/agents/hephaestus/gpt-5-5.d.ts +0 -4
  12. package/dist/agents/types.d.ts +1 -0
  13. package/dist/cli/doctor/checks/team-mode.d.ts +2 -0
  14. package/dist/cli/doctor/constants.d.ts +1 -0
  15. package/dist/cli/index.js +21099 -20826
  16. package/dist/cli/run/continuation-state.d.ts +1 -0
  17. package/dist/config/index.d.ts +1 -1
  18. package/dist/config/schema/agent-names.d.ts +1 -0
  19. package/dist/config/schema/agent-overrides.d.ts +45 -0
  20. package/dist/config/schema/categories.d.ts +7 -1
  21. package/dist/config/schema/commands.d.ts +1 -0
  22. package/dist/config/schema/evil-omo-config.d.ts +70 -0
  23. package/dist/config/schema/fallback-models.d.ts +5 -0
  24. package/dist/config/schema/hooks.d.ts +1 -0
  25. package/dist/config/schema/keyword-detector.d.ts +21 -0
  26. package/dist/config/schema/team-mode.d.ts +16 -0
  27. package/dist/config/schema.d.ts +2 -0
  28. package/dist/create-hooks.d.ts +3 -0
  29. package/dist/evil-omo.schema.json +191 -47
  30. package/dist/features/background-agent/manager.d.ts +17 -9
  31. package/dist/features/background-agent/process-cleanup.d.ts +4 -0
  32. package/dist/features/background-agent/types.d.ts +16 -12
  33. package/dist/features/background-agent/wait-for-task-session.d.ts +1 -1
  34. package/dist/features/boulder-state/storage.d.ts +1 -0
  35. package/dist/features/builtin-commands/commands.d.ts +1 -0
  36. package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -0
  37. package/dist/features/builtin-commands/templates/refactor.d.ts +1 -0
  38. package/dist/features/builtin-commands/templates/remove-ai-slops.d.ts +1 -0
  39. package/dist/features/builtin-commands/types.d.ts +1 -1
  40. package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +1 -1
  41. package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +1 -1
  42. package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +1 -1
  43. package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +1 -1
  44. package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +1 -1
  45. package/dist/features/builtin-skills/skills/index.d.ts +1 -0
  46. package/dist/features/builtin-skills/skills/team-mode.d.ts +2 -0
  47. package/dist/features/builtin-skills/skills.d.ts +1 -0
  48. package/dist/features/claude-code-plugin-loader/discovery.d.ts +1 -0
  49. package/dist/features/hook-message-injector/injector.d.ts +2 -2
  50. package/dist/features/opencode-skill-loader/loader.d.ts +2 -2
  51. package/dist/features/opencode-skill-loader/skill-resolution-options.d.ts +1 -0
  52. package/dist/features/run-continuation-state/types.d.ts +1 -1
  53. package/dist/features/skill-mcp-manager/types.d.ts +1 -0
  54. package/dist/features/team-mode/deps.d.ts +6 -0
  55. package/dist/features/team-mode/member-guidance.d.ts +2 -0
  56. package/dist/features/team-mode/member-parser.d.ts +16 -0
  57. package/dist/features/team-mode/member-session-resolution.d.ts +6 -0
  58. package/dist/features/team-mode/member-session-routing.d.ts +19 -0
  59. package/dist/features/team-mode/resolve-caller-team-lead.d.ts +8 -0
  60. package/dist/features/team-mode/team-layout-tmux/close-team-member-pane.d.ts +4 -0
  61. package/dist/features/team-mode/team-layout-tmux/layout.d.ts +26 -6
  62. package/dist/features/team-mode/team-layout-tmux/rebalance-team-window.d.ts +9 -0
  63. package/dist/features/team-mode/team-layout-tmux/resolve-caller-tmux-session.d.ts +7 -0
  64. package/dist/features/team-mode/team-layout-tmux/sweep-stale-team-sessions.d.ts +8 -0
  65. package/dist/features/team-mode/team-mailbox/ack.d.ts +2 -0
  66. package/dist/features/team-mode/team-mailbox/inbox.d.ts +3 -0
  67. package/dist/features/team-mode/team-mailbox/index.d.ts +7 -0
  68. package/dist/features/team-mode/team-mailbox/poll.d.ts +10 -0
  69. package/dist/features/team-mode/team-mailbox/reservation.d.ts +11 -0
  70. package/dist/features/team-mode/team-mailbox/send.d.ts +27 -0
  71. package/dist/features/team-mode/team-registry/index.d.ts +3 -0
  72. package/dist/features/team-mode/team-registry/loader.d.ts +12 -0
  73. package/dist/features/team-mode/team-registry/paths.d.ts +13 -0
  74. package/dist/features/team-mode/team-registry/team-spec-input-normalizer.d.ts +6 -0
  75. package/dist/features/team-mode/team-registry/validator.d.ts +10 -0
  76. package/dist/features/team-mode/team-runtime/activate-team-layout.d.ts +4 -0
  77. package/dist/features/team-mode/team-runtime/cleanup-team-run-resources.d.ts +17 -0
  78. package/dist/features/team-mode/team-runtime/create.d.ts +25 -0
  79. package/dist/features/team-mode/team-runtime/delete-team.d.ts +16 -0
  80. package/dist/features/team-mode/team-runtime/index.d.ts +2 -0
  81. package/dist/features/team-mode/team-runtime/resolve-member-dependencies.d.ts +3 -0
  82. package/dist/features/team-mode/team-runtime/resolve-member.d.ts +17 -0
  83. package/dist/features/team-mode/team-runtime/shutdown-helpers.d.ts +11 -0
  84. package/dist/features/team-mode/team-runtime/shutdown-test-fixtures.d.ts +46 -0
  85. package/dist/features/team-mode/team-runtime/shutdown.d.ts +5 -0
  86. package/dist/features/team-mode/team-runtime/status.d.ts +36 -0
  87. package/dist/features/team-mode/team-session-registry.d.ts +11 -0
  88. package/dist/features/team-mode/team-state-store/index.d.ts +1 -0
  89. package/dist/features/team-mode/team-state-store/locks.d.ts +12 -0
  90. package/dist/features/team-mode/team-state-store/resume.d.ts +10 -0
  91. package/dist/features/team-mode/team-state-store/store.d.ts +21 -0
  92. package/dist/features/team-mode/team-tasklist/claim.d.ts +10 -0
  93. package/dist/features/team-mode/team-tasklist/dependencies.d.ts +2 -0
  94. package/dist/features/team-mode/team-tasklist/get.d.ts +3 -0
  95. package/dist/features/team-mode/team-tasklist/index.d.ts +6 -0
  96. package/dist/features/team-mode/team-tasklist/list.d.ts +8 -0
  97. package/dist/features/team-mode/team-tasklist/store.d.ts +3 -0
  98. package/dist/features/team-mode/team-tasklist/test-support.d.ts +9 -0
  99. package/dist/features/team-mode/team-tasklist/update.d.ts +9 -0
  100. package/dist/features/team-mode/tools/index.d.ts +1 -0
  101. package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +188 -0
  102. package/dist/features/team-mode/tools/lifecycle.d.ts +37 -0
  103. package/dist/features/team-mode/tools/messaging.d.ts +31 -0
  104. package/dist/features/team-mode/tools/query.d.ts +16 -0
  105. package/dist/features/team-mode/tools/tasks.d.ts +18 -0
  106. package/dist/features/team-mode/types.d.ts +138 -6
  107. package/dist/features/tmux-subagent/action-executor-core.d.ts +1 -0
  108. package/dist/features/tmux-subagent/action-executor.d.ts +1 -0
  109. package/dist/features/tmux-subagent/attachable-session-status.d.ts +4 -0
  110. package/dist/features/tmux-subagent/manager.d.ts +32 -3
  111. package/dist/features/tmux-subagent/pane-state-querier.d.ts +10 -0
  112. package/dist/features/tmux-subagent/polling.d.ts +1 -0
  113. package/dist/hooks/atlas/atlas-hook.d.ts +1 -1
  114. package/dist/hooks/atlas/boulder-continuation-injector.d.ts +2 -3
  115. package/dist/hooks/atlas/recent-model-resolver.d.ts +9 -1
  116. package/dist/hooks/atlas/tool-execute-after.d.ts +2 -1
  117. package/dist/hooks/atlas/tool-execute-before.d.ts +1 -0
  118. package/dist/hooks/atlas/types.d.ts +8 -2
  119. package/dist/hooks/index.d.ts +3 -0
  120. package/dist/hooks/keyword-detector/constants.d.ts +6 -0
  121. package/dist/hooks/keyword-detector/detector.d.ts +5 -3
  122. package/dist/hooks/keyword-detector/hook.d.ts +2 -1
  123. package/dist/hooks/keyword-detector/hyperplan/default.d.ts +13 -0
  124. package/dist/hooks/keyword-detector/hyperplan/index.d.ts +1 -0
  125. package/dist/hooks/keyword-detector/team/default.d.ts +13 -0
  126. package/dist/hooks/keyword-detector/team/index.d.ts +1 -0
  127. package/dist/hooks/ralph-loop/loop-session-recovery.d.ts +7 -0
  128. package/dist/hooks/session-notification-scheduler.d.ts +2 -4
  129. package/dist/hooks/session-notification-utils.d.ts +1 -0
  130. package/dist/hooks/session-recovery/recover-tool-result-missing.d.ts +2 -2
  131. package/dist/hooks/team-mailbox-injector/hook.d.ts +31 -0
  132. package/dist/hooks/team-mailbox-injector/index.d.ts +2 -0
  133. package/dist/hooks/team-mode-status-injector/hook.d.ts +28 -0
  134. package/dist/hooks/team-mode-status-injector/index.d.ts +1 -0
  135. package/dist/hooks/team-session-events/team-idle-wake-hint.d.ts +38 -0
  136. package/dist/hooks/team-session-events/team-lead-orphan-handler.d.ts +12 -0
  137. package/dist/hooks/team-session-events/team-member-error-handler.d.ts +10 -0
  138. package/dist/hooks/team-session-events/team-member-status-handler.d.ts +10 -0
  139. package/dist/hooks/team-tool-gating/hook.d.ts +3 -0
  140. package/dist/hooks/team-tool-gating/index.d.ts +1 -0
  141. package/dist/hooks/write-existing-file-guard/hook.d.ts +6 -1
  142. package/dist/hooks/write-existing-file-guard/tool-execute-before-handler.d.ts +1 -0
  143. package/dist/index.js +74497 -71438
  144. package/dist/plugin/hooks/create-core-hooks.d.ts +3 -0
  145. package/dist/plugin/hooks/create-tool-guard-hooks.d.ts +2 -1
  146. package/dist/plugin/hooks/create-transform-hooks.d.ts +3 -1
  147. package/dist/plugin/recent-synthetic-idles.d.ts +1 -0
  148. package/dist/plugin/tool-registry.d.ts +16 -0
  149. package/dist/shared/bun-spawn-shim.d.ts +40 -0
  150. package/dist/shared/posthog-activity-state.d.ts +0 -5
  151. package/dist/shared/posthog.d.ts +7 -6
  152. package/dist/shared/project-discovery-dirs.d.ts +1 -0
  153. package/dist/shared/shell-env.d.ts +1 -0
  154. package/dist/shared/tmux/constants.d.ts +1 -1
  155. package/dist/shared/tmux/index.d.ts +1 -0
  156. package/dist/shared/tmux/runner.d.ts +13 -0
  157. package/dist/shared/tmux/tmux-utils/pane-replace.d.ts +1 -1
  158. package/dist/shared/tmux/tmux-utils/pane-spawn.d.ts +13 -1
  159. package/dist/shared/tmux/tmux-utils/session-spawn.d.ts +13 -1
  160. package/dist/shared/tmux/tmux-utils/spawn-process.d.ts +1 -1
  161. package/dist/shared/tmux/tmux-utils/stale-session-sweep.d.ts +9 -2
  162. package/dist/shared/tmux/tmux-utils/window-spawn.d.ts +13 -1
  163. package/dist/shared/tmux/tmux-utils.d.ts +1 -1
  164. package/dist/tools/delegate-task/openai-categories.d.ts +1 -0
  165. package/dist/tools/delegate-task/skill-resolver.d.ts +1 -0
  166. package/dist/tools/delegate-task/subagent-resolver.d.ts +5 -1
  167. package/dist/tools/delegate-task/types.d.ts +1 -0
  168. package/dist/tools/index.d.ts +1 -0
  169. package/dist/tools/look-at/missing-file-error.d.ts +2 -0
  170. package/dist/tools/skill/types.d.ts +2 -0
  171. package/package.json +15 -14
package/README.ru.md CHANGED
@@ -1,13 +1,7 @@
1
- > [!WARNING]
2
- > **Временное уведомление (на этой неделе): сниженная доступность мейнтейнера**
3
- >
4
- > Ключевой мейнтейнер Q получил травму, поэтому на этой неделе ответы по issue/PR и релизы могут задерживаться.
5
- > Спасибо за терпение и поддержку.
6
-
7
1
  > [!TIP]
8
2
  > **Building in Public**
9
3
  >
10
- > Мейнтейнер разрабатывает и поддерживает oh-my-opencode в режиме реального времени с помощью Jobdori — ИИ-ассистента на базе глубоко кастомизированной версии OpenClaw.
4
+ > Мейнтейнер разрабатывает и поддерживает oh-my-openagent в режиме реального времени с помощью Jobdori — ИИ-ассистента на базе глубоко кастомизированной версии OpenClaw.
11
5
  > Каждая фича, каждый фикс, каждый триаж issue — в прямом эфире в нашем Discord.
12
6
  >
13
7
  > [![Building in Public](./.github/assets/building-in-public.png)](https://discord.gg/PUwSMR9XNk)
@@ -17,36 +11,51 @@
17
11
 
18
12
  > [!NOTE]
19
13
  >
20
- > [![Sisyphus Labs - Sisyphus is the agent that codes like your team.](./.github/assets/sisyphuslabs.png?v=2)](https://sisyphuslabs.ai)
14
+ > [![Sisyphus Labs - Meet Dori. Not a demo. Subscribes to everything.](./.github/assets/sisyphuslabs.png?v=4)](https://sisyphuslabs.ai)
21
15
  >
22
- > > **Мы создаём полноценную продуктовую версию Sisyphus, чтобы задать стандарты для frontier-агентов. <br />Присоединяйтесь к листу ожидания [здесь](https://sisyphuslabs.ai).**
16
+ > > **OmO поддерживается Jobdori ИИ-ассистентом, показанным выше. Познакомьтесь со своим Jobdori — Dori. <br />Присоединяйтесь к листу ожидания [здесь](https://sisyphuslabs.ai).**
23
17
 
24
18
  > [!TIP] Будьте с нами!
25
19
  >
26
- > | [](https://discord.gg/PUwSMR9XNk) | Вступайте в наш [Discord](https://discord.gg/PUwSMR9XNk), чтобы общаться с контрибьюторами и пользователями `oh-my-opencode`. |
27
- > | ----------------------------------- | ------------------------------------------------------------ |
28
- > | [](https://x.com/justsisyphus) | Новости и обновления `oh-my-opencode` раньше публиковались на моём аккаунте X. <br /> После ошибочной блокировки, [@justsisyphus](https://x.com/justsisyphus) публикует обновления вместо меня. |
29
- > | [](https://github.com/code-yeongyu) | Подпишитесь на [@code-yeongyu](https://github.com/code-yeongyu) на GitHub, чтобы следить за другими проектами. |
20
+ > | [<img alt="Discord link" src="https://img.shields.io/discord/1452487457085063218?color=5865F2&label=discord&labelColor=black&logo=discord&logoColor=white&style=flat-square" width="156px" />](https://discord.gg/PUwSMR9XNk) | Вступайте в наш [Discord](https://discord.gg/PUwSMR9XNk), чтобы общаться с контрибьюторами и пользователями `oh-my-openagent`. |
21
+ > | :-----| :----- |
22
+ > | [<img alt="X link" src="https://img.shields.io/badge/Follow-%40justsisyphus-00CED1?style=flat-square&logo=x&labelColor=black" width="156px" />](https://x.com/justsisyphus) | Обновления `oh-my-openagent` раньше публиковались на моём аккаунте X. <br /> После ошибочной блокировки [@justsisyphus](https://x.com/justsisyphus) публикует обновления вместо меня. |
23
+ > | [<img alt="GitHub Follow" src="https://img.shields.io/github/followers/code-yeongyu?style=flat-square&logo=github&labelColor=black&color=24292f" width="156px" />](https://github.com/code-yeongyu) | Подпишитесь на [@code-yeongyu](https://github.com/code-yeongyu) на GitHub, чтобы следить за другими проектами. |
30
24
 
31
- <!-- <CENTERED SECTION FOR GITHUB DISPLAY> --> <div align="center">
25
+ <!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
32
26
 
33
- [![Oh My OpenCode](./.github/assets/hero.jpg)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-opencode)
27
+ <div align="center">
34
28
 
35
- [![Preview](./.github/assets/omo.png)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-opencode)
29
+ [![Oh My OpenAgent](./.github/assets/hero.jpg)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-openagent)
30
+
31
+ [![Preview](./.github/assets/omo.png)](https://github.com/code-yeongyu/oh-my-openagent#oh-my-openagent)
36
32
 
37
33
  </div>
38
34
 
39
- > Anthropic [**заблокировал OpenCode из-за нас.**](https://x.com/thdxr/status/2010149530486911014) **Да, это правда.** Они хотят держать вас в замкнутой системе. Claude Code красивая тюрьма, но всё равно тюрьма.
35
+ > Это oh-my-openagent в режиме Team Mode. С Kimi K2.6 и GPT-5.5.
36
+
37
+ > Anthropic [**заблокировал OpenCode из-за нас.**](https://x.com/thdxr/status/2010149530486911014) **Да, это правда.**
38
+ > Они хотят держать вас в замкнутой системе. Claude Code — красивая тюрьма, но всё равно тюрьма.
40
39
  >
41
- > Мы не делаем привязки. Мы работаем с любыми моделями. Claude / Kimi / GLM для оркестрации. GPT для рассуждений. Minimax для скорости. Gemini для творческих задач. Будущее — не в выборе одного победителя, а в оркестровке всех. Модели дешевеют каждый месяц. Умнеют каждый месяц. Ни один провайдер не будет доминировать. Мы строим под открытый рынок, а не под чьи-то огороженные сады.
40
+ > Не нужно платить $200 за 2 часа работы.
41
+ > Будущее — не в выборе одного победителя, а в оркестровке всех. Модели дешевеют каждый месяц. Умнеют каждый месяц. Ни один провайдер не будет доминировать. Мы строим под этот открытый рынок, а не под их огороженные сады.
42
42
 
43
43
  <div align="center">
44
44
 
45
- [![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases) [![npm downloads](https://img.shields.io/npm/dt/oh-my-opencode?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode) [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors) [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members) [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers) [![GitHub Issues](https://img.shields.io/github/issues/code-yeongyu/oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/issues) [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/blob/master/LICENSE.md) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/code-yeongyu/oh-my-openagent)
45
+ [![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-openagent?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/releases)
46
+ [![npm downloads](https://img.shields.io/endpoint?url=https%3A%2F%2Fohmyopenagent.com%2Fapi%2Fnpm-downloads&style=flat-square)](https://www.npmjs.com/package/oh-my-opencode)
47
+ [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-openagent?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/graphs/contributors)
48
+ [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-openagent?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/network/members)
49
+ [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-openagent?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/stargazers)
50
+ [![GitHub Issues](https://img.shields.io/github/issues/code-yeongyu/oh-my-openagent?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/issues)
51
+ [![License](https://img.shields.io/badge/license-SUL--1.0-white?labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-openagent/blob/dev/LICENSE.md)
52
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/code-yeongyu/oh-my-openagent)
46
53
 
47
- English | 한국어 | 日本語 | 简体中文 | Русский
54
+ [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh-cn.md) | [Русский](README.ru.md)
48
55
 
49
- </div> <!-- </CENTERED SECTION FOR GITHUB DISPLAY> -->
56
+ </div>
57
+
58
+ <!-- </CENTERED SECTION FOR GITHUB DISPLAY> -->
50
59
 
51
60
  ## Отзывы
52
61
 
@@ -72,13 +81,13 @@ English | 한국어 | 日本語 | 简体中文 | Русский
72
81
 
73
82
  ------
74
83
 
75
- # Oh My OpenCode
84
+ # Oh My OpenAgent
76
85
 
77
86
  Вы жонглируете Claude Code, Codex, случайными OSS-моделями. Настраиваете рабочие процессы. Дебажите агентов.
78
87
 
79
88
  Мы уже проделали эту работу. Протестировали всё. Оставили только то, что реально работает.
80
89
 
81
- Установите OmO. Введите `ultrawork`. Готово.
90
+ Установите oh-my-openagent. Введите `ultrawork`. Готово.
82
91
 
83
92
  ## Установка
84
93
 
@@ -87,11 +96,11 @@ English | 한국어 | 日本語 | 简体中文 | Русский
87
96
  Скопируйте и вставьте этот промпт в ваш LLM-агент (Claude Code, AmpCode, Cursor и т.д.):
88
97
 
89
98
  ```
90
- Install and configure oh-my-opencode by following the instructions here:
99
+ Install and configure oh-my-openagent by following the instructions here:
91
100
  https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/docs/guide/installation.md
92
101
  ```
93
102
 
94
- Или прочитайте руководство по установке, но серьёзно — пусть агент сделает это за вас. Люди ошибаются в конфигах.
103
+ Или прочитайте [руководство по установке](docs/guide/installation.md), но серьёзно — пусть агент сделает это за вас. Люди ошибаются в конфигах.
95
104
 
96
105
  ### Для LLM-агентов
97
106
 
@@ -101,9 +110,9 @@ https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/do
101
110
  curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/docs/guide/installation.md
102
111
  ```
103
112
 
104
- **Примечание**: Используйте опубликованное имя пакета и бинарника `oh-my-opencode`. Внутри `opencode.json` слой совместимости теперь предпочитает точку входа плагина `oh-my-openagent`, в то время как устаревшие записи `oh-my-opencode` все еще загружаются с предупреждением. Файлы конфигурации плагина по-прежнему часто используют `oh-my-opencode.json` или `oh-my-opencode.jsonc`, и как устаревшие, так и переименованные базовые имена распознаются во время переходного периода.
113
+ **Примечание**: Опубликованное имя npm-пакета и CLI-бинарника по-прежнему `oh-my-opencode` (в переходный период пакет также дублируется под именем `oh-my-openagent`). Внутри `opencode.json` слой совместимости теперь предпочитает точку входа плагина `oh-my-openagent`, в то время как устаревшие записи `oh-my-opencode` всё ещё загружаются с предупреждением. Файлы конфигурации плагина по-прежнему часто называются `oh-my-opencode.json` или `oh-my-opencode.jsonc`; в переходный период распознаются как устаревшие, так и новые имена.
105
114
 
106
- Анонимная телеметрия включена по умолчанию для улучшения надежности установки и работы. Она использует PostHog с хешированным идентификатором установки, никогда не используя исходное имя хоста, и может быть отключена с помощью `OMO_SEND_ANONYMOUS_TELEMETRY=0` или `OMO_DISABLE_POSTHOG=1`. См. [Политику конфиденциальности](docs/legal/privacy-policy.md) и [Условия обслуживания](docs/legal/terms-of-service.md).
115
+ Анонимная телеметрия включена по умолчанию для подсчёта активных установок (DAU/WAU/MAU). Не более одного события на машину за UTC-сутки, использует хешированный идентификатор установки, никогда не использует исходное имя хоста, и не создаёт PostHog person profile. Можно отключить через `OMO_SEND_ANONYMOUS_TELEMETRY=0` или `OMO_DISABLE_POSTHOG=1`. См. [Политику конфиденциальности](docs/legal/privacy-policy.md) и [Условия обслуживания](docs/legal/terms-of-service.md).
107
116
 
108
117
  ------
109
118
 
@@ -115,6 +124,7 @@ curl -s https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/head
115
124
  Read this and tell me why it's not just another boilerplate: https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/README.md
116
125
  ```
117
126
 
127
+
118
128
  ## Ключевые возможности
119
129
 
120
130
  ### 🪄 `ultrawork`
@@ -125,19 +135,19 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
125
135
 
126
136
  Всё описанное ниже, каждая функция, каждая оптимизация — вам не нужно это знать. Оно просто работает.
127
137
 
128
- Даже при наличии только следующих подписок ultrawork будет работать отлично (проект не аффилирован с ними, это личная рекомендация):
138
+ Даже только со следующими подписками `ultrawork` работает отлично (проект не аффилирован с ними, это личные рекомендации):
129
139
 
130
140
  - [Подписка ChatGPT ($20)](https://chatgpt.com/)
131
141
  - [Подписка Kimi Code ($19)](https://www.kimi.com/code)
132
142
  - [Тариф GLM Coding ($10)](https://z.ai/subscribe)
133
- - При доступе к оплате за токены использование моделей Kimi и Gemini обойдётся недорого.
143
+ - Если у вас есть доступ к оплате за токены, использование моделей Kimi и Gemini обойдётся недорого.
134
144
 
135
145
  | | Функция | Что делает |
136
146
  | --- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
137
147
  | 🤖 | **Дисциплинированные агенты** | Sisyphus оркестрирует Hephaestus, Oracle, Librarian, Explore. Полноценная AI-команда разработки в параллельном режиме. |
138
148
  | ⚡ | **`ultrawork` / `ulw`** | Одно слово. Все агенты активируются. Не останавливается, пока задача не выполнена. |
139
149
  | 🚪 | **[IntentGate](https://factory.ai/news/terminal-bench)** | Анализирует истинное намерение пользователя перед классификацией и действием. Никакого буквального неверного толкования. |
140
- | 🔗 | **Инструмент правок на основе хэш-якорей** | Хэш содержимого `LINE#ID` проверяет каждое изменение. Ноль ошибок с устаревшими строками. Вдохновлено [oh-my-pi](https://github.com/can1357/oh-my-pi). [Проблема обвязки →](https://blog.can.ac/2026/02/12/the-harness-problem/) |
150
+ | 🔗 | **Инструмент правок на основе хэш-якорей** | Хэш содержимого `LINE#ID` проверяет каждое изменение. Ноль ошибок с устаревшими строками. Вдохновлено [oh-my-pi](https://github.com/can1357/oh-my-pi). [The Harness Problem →](https://blog.can.ac/2026/02/12/the-harness-problem/) |
141
151
  | 🛠️ | **LSP + AST-Grep** | Переименование в рабочем пространстве, диагностика перед сборкой, переписывание с учётом AST. Точность IDE для агентов. |
142
152
  | 🧠 | **Фоновые агенты** | Запускайте 5+ специалистов параллельно. Контекст остаётся компактным. Результаты — когда готовы. |
143
153
  | 📚 | **Встроенные MCP** | Exa (веб-поиск), Context7 (официальная документация), Grep.app (поиск по GitHub). Всегда включены. |
@@ -152,19 +162,22 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
152
162
 
153
163
  ### Дисциплинированные агенты
154
164
 
155
- <table><tr> <td align="center"><img src=".github/assets/sisyphus.png" height="300" /></td> <td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td> </tr></table>
165
+ <table><tr>
166
+ <td align="center"><img src=".github/assets/sisyphus.png" height="300" /></td>
167
+ <td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td>
168
+ </tr></table>
156
169
 
157
- **Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) — главный оркестратор. Он планирует, делегирует задачи специалистам и доводит их до завершения с агрессивным параллельным выполнением. Он не останавливается на полпути.
170
+ **Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) — главный оркестратор. Он планирует, делегирует задачи специалистам и доводит их до завершения с агрессивным параллельным выполнением. Он не останавливается на полпути.
158
171
 
159
172
  **Hephaestus** (`gpt-5.4`) — автономный глубокий исполнитель. Дайте ему цель, а не рецепт. Он исследует кодовую базу, изучает паттерны и выполняет задачи сквозным образом без лишних подсказок. *Законный Мастер.*
160
173
 
161
- **Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) — стратегический планировщик. Режим интервью: задаёт вопросы, определяет объём работ и формирует детальный план до того, как написана хотя бы одна строка кода.
174
+ **Prometheus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) — стратегический планировщик. Режим интервью: он задаёт вопросы, определяет объём работ и формирует детальный план до того, как написана хотя бы одна строка кода.
162
175
 
163
- Каждый агент настроен под сильные стороны своей модели. Никакого ручного переключения между моделями. Подробнее →
176
+ Каждый агент настроен под сильные стороны своей модели. Никакого ручного переключения между моделями. [Подробнее →](docs/guide/overview.md)
164
177
 
165
178
  > Anthropic [заблокировал OpenCode из-за нас.](https://x.com/thdxr/status/2010149530486911014) Именно поэтому Hephaestus зовётся «Законным Мастером». Ирония намеренная.
166
179
  >
167
- > Мы работаем лучше всего на Opus, но Kimi K2.5 + GPT-5.4 уже превосходят ванильный Claude Code. Никакой настройки не требуется.
180
+ > Мы работаем лучше всего на Opus, но Kimi K2.6 + GPT-5.4 уже превосходят ванильный Claude Code. Никакой настройки не требуется.
168
181
 
169
182
  ### Оркестрация агентов
170
183
 
@@ -177,7 +190,7 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
177
190
  | `quick` | Изменения в одном файле, опечатки |
178
191
  | `ultrabrain` | Сложная логика, архитектурные решения |
179
192
 
180
- Агент сообщает тип задачи. Обвязка подбирает нужную модель. Вы ни к чему не прикасаетесь.
193
+ Агент сообщает тип задачи, а обвязка подбирает нужную модель. `ultrabrain` теперь по умолчанию направляется в GPT-5.4 xhigh. Вы ни к чему не прикасаетесь.
181
194
 
182
195
  ### Совместимость с Claude Code
183
196
 
@@ -189,10 +202,10 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
189
202
 
190
203
  LSP, AST-Grep, Tmux, MCP — реально интегрированы, а не склеены скотчем.
191
204
 
192
- - **LSP**: `lsp_rename`, `lsp_goto_definition`, `lsp_find_references`, `lsp_diagnostics`. Точность IDE для каждого агента
193
- - **AST-Grep**: Поиск и переписывание кода с учётом синтаксических паттернов для 25 языков
194
- - **Tmux**: Полноценный интерактивный терминал. REPL, дебаггеры, TUI-приложения. Агент остаётся в сессии
195
- - **MCP**: Веб-поиск, официальная документация, поиск по коду на GitHub. Всё встроено
205
+ - **LSP**: `lsp_rename`, `lsp_goto_definition`, `lsp_find_references`, `lsp_diagnostics`. Точность IDE для каждого агента.
206
+ - **AST-Grep**: Поиск и переписывание кода с учётом синтаксических паттернов для 25 языков.
207
+ - **Tmux**: Полноценный интерактивный терминал. REPL, дебаггеры, TUI-приложения. Агент остаётся в сессии.
208
+ - **MCP**: Веб-поиск, официальная документация, поиск по коду на GitHub. Всё встроено.
196
209
 
197
210
  ### MCP, встроенные в навыки
198
211
 
@@ -202,13 +215,13 @@ MCP-серверы съедают бюджет контекста. Мы это
202
215
 
203
216
  ### Лучше пишет код. Правки на основе хэш-якорей
204
217
 
205
- Проблема обвязки реальна. Большинство сбоев агентов — не вина модели. Это вина инструмента правок.
218
+ Проблема обвязки реальна. Большинство сбоев агентов — не вина модели, а вина инструмента правок.
206
219
 
207
220
  > *«Ни один из этих инструментов не даёт модели стабильный, проверяемый идентификатор строк, которые она хочет изменить... Все они полагаются на то, что модель воспроизведёт контент, который уже видела. Когда это не получается — а так бывает нередко — пользователь обвиняет модель.»*
208
221
  >
209
- > <br/>— [Can Bölük, «Проблема обвязки»](https://blog.can.ac/2026/02/12/the-harness-problem/)
222
+ > <br/>— [Can Bölük, The Harness Problem](https://blog.can.ac/2026/02/12/the-harness-problem/)
210
223
 
211
- Вдохновлённые [oh-my-pi](https://github.com/can1357/oh-my-pi), мы реализовали **Hashline**. Каждая строка, которую читает агент, возвращается с тегом хэша содержимого:
224
+ Вдохновлённые [oh-my-pi](https://github.com/can1357/oh-my-pi), мы сделали **Hashline**. Каждая строка, которую читает агент, возвращается с тегом хэша содержимого:
212
225
 
213
226
  ```
214
227
  11#VK| function hello() {
@@ -218,7 +231,7 @@ MCP-серверы съедают бюджет контекста. Мы это
218
231
 
219
232
  Агент редактирует, ссылаясь на эти теги. Если файл изменился с момента последнего чтения, хэш не совпадёт, и правка будет отклонена до любого повреждения. Никакого воспроизведения пробелов. Никаких ошибок с устаревшими строками.
220
233
 
221
- Grok Code Fast 1: успешность **6.7% → 68.3%**. Просто за счёт замены инструмента правок.
234
+ Grok Code Fast 1: успешность **6.7% → 68.3%**, просто за счёт замены инструмента правок.
222
235
 
223
236
  ### Глубокая инициализация. `/init-deep`
224
237
 
@@ -239,37 +252,37 @@ project/
239
252
 
240
253
  Сложная задача? Не нужно молиться и надеяться на промпт.
241
254
 
242
- `/start-work` вызывает Prometheus. **Интервьюирует вас как настоящий инженер**, определяет объём работ и неоднозначности, формирует проверенный план до прикосновения к коду. Агент знает, что строит, прежде чем начать.
255
+ `/start-work` вызывает Prometheus. Он **интервьюирует вас как настоящий инженер**, определяет объём работ и неоднозначности и формирует проверенный план до прикосновения к коду. Агент знает, что строит, прежде чем начать.
243
256
 
244
257
  ### Навыки
245
258
 
246
259
  Навыки — это не просто промпты. Каждый привносит:
247
260
 
248
- - Системные инструкции, настроенные под предметную область
249
- - Встроенные MCP-серверы, запускаемые по необходимости
250
- - Ограниченные разрешения. Агенты остаются в рамках
261
+ - Системные инструкции, настроенные под предметную область.
262
+ - Встроенные MCP-серверы, запускаемые по необходимости.
263
+ - Ограниченные разрешения, чтобы агенты оставались в рамках.
251
264
 
252
265
  Встроенные: `playwright` (автоматизация браузера), `git-master` (атомарные коммиты, хирургия rebase), `frontend-ui-ux` (UI с упором на дизайн).
253
266
 
254
- Добавьте свои: `.opencode/skills/*/SKILL.md` или `~/.config/opencode/skills/*/SKILL.md`.
267
+ Добавьте свои в `.opencode/skills/*/SKILL.md` или `~/.config/opencode/skills/*/SKILL.md`.
255
268
 
256
- **Хотите полное описание возможностей?** Смотрите **документацию по функциям** — агенты, хуки, инструменты, MCP и всё остальное подробно.
269
+ **Хотите полное описание возможностей?** Смотрите **[документацию по функциям](docs/reference/features.md)** — агенты, хуки, инструменты, MCP и всё остальное подробно.
257
270
 
258
271
  ------
259
272
 
260
- > **Впервые в oh-my-opencode?** Прочитайте **Обзор**, чтобы понять, что у вас есть, или ознакомьтесь с **руководством по оркестрации**, чтобы узнать, как агенты взаимодействуют.
273
+ > **Впервые в oh-my-openagent?** Прочитайте **[Overview](docs/guide/overview.md)**, чтобы понять, что у вас есть, или ознакомьтесь с **[Orchestration Guide](docs/guide/orchestration.md)**, чтобы узнать, как агенты взаимодействуют.
261
274
 
262
275
  ## Удаление
263
276
 
264
- Чтобы удалить oh-my-opencode:
277
+ Чтобы удалить oh-my-openagent:
265
278
 
266
279
  1. **Удалите плагин из конфига OpenCode**
267
280
 
268
- Отредактируйте `~/.config/opencode/opencode.json` (или `opencode.jsonc`) и уберите `"oh-my-opencode"` из массива `plugin`:
281
+ Отредактируйте `~/.config/opencode/opencode.json` (или `opencode.jsonc`) и уберите `"oh-my-openagent"` или устаревшую запись `"oh-my-opencode"` из массива `plugin`:
269
282
 
270
283
  ```bash
271
284
  # С помощью jq
272
- jq '.plugin = [.plugin[] | select(. != "oh-my-opencode")]' \
285
+ jq '.plugin = [.plugin[] | select(. != "oh-my-openagent" and . != "oh-my-opencode")]' \
273
286
  ~/.config/opencode/opencode.json > /tmp/oc.json && \
274
287
  mv /tmp/oc.json ~/.config/opencode/opencode.json
275
288
  ```
@@ -277,11 +290,13 @@ project/
277
290
  2. **Удалите файлы конфигурации (опционально)**
278
291
 
279
292
  ```bash
280
- # Удалить пользовательский конфиг
281
- rm -f ~/.config/opencode/oh-my-opencode.json ~/.config/opencode/oh-my-opencode.jsonc
293
+ # Удалить файлы конфигурации плагина, распознаваемые в переходный период
294
+ rm -f ~/.config/opencode/oh-my-openagent.jsonc ~/.config/opencode/oh-my-openagent.json \
295
+ ~/.config/opencode/oh-my-opencode.jsonc ~/.config/opencode/oh-my-opencode.json
282
296
 
283
297
  # Удалить конфиг проекта (если существует)
284
- rm -f .opencode/oh-my-opencode.json .opencode/oh-my-opencode.jsonc
298
+ rm -f .opencode/oh-my-openagent.jsonc .opencode/oh-my-openagent.json \
299
+ .opencode/oh-my-opencode.jsonc .opencode/oh-my-opencode.json
285
300
  ```
286
301
 
287
302
  3. **Проверьте удаление**
@@ -295,7 +310,7 @@ project/
295
310
 
296
311
  Функции, которые, как вы будете думать, должны были существовать всегда. Попробовав раз, вы не сможете вернуться назад.
297
312
 
298
- Смотрите полную документацию по функциям.
313
+ Полная [документация по функциям](docs/reference/features.md).
299
314
 
300
315
  **Краткий обзор:**
301
316
 
@@ -308,17 +323,21 @@ project/
308
323
  - **Встроенные MCP**: websearch (Exa), context7 (документация), grep_app (поиск по GitHub)
309
324
  - **Инструменты сессий**: Список, чтение, поиск и анализ истории сессий
310
325
  - **Инструменты продуктивности**: Ralph Loop, Todo Enforcer, Comment Checker, Think Mode и другое
311
- - **Настройка моделей**: Сопоставление агент–модель встроено в руководство по установке
326
+ - **Команда Doctor**: Встроенная диагностика (`bunx oh-my-opencode doctor`) проверяет регистрацию плагина, конфиг, модели и окружение
327
+ - **Фолбэки моделей**: `fallback_models` позволяет смешивать простые строки моделей и объектные настройки per-fallback в одном массиве
328
+ - **Файловые промпты**: Загрузка промптов из файлов через `file://` в конфигурации агентов
329
+ - **Восстановление сессии**: Автоматическое восстановление при ошибках сессии, достижении лимита контекстного окна и сбоях API
330
+ - **Настройка моделей**: Сопоставление агент–модель встроено в [руководство по установке](docs/guide/installation.md#step-5-understand-your-model-setup)
312
331
 
313
332
  ## Конфигурация
314
333
 
315
334
  Продуманные настройки по умолчанию, которые можно изменить при необходимости.
316
335
 
317
- Смотрите документацию по конфигурации.
336
+ Смотрите [документацию по конфигурации](docs/reference/configuration.md).
318
337
 
319
338
  **Краткий обзор:**
320
339
 
321
- - **Расположение конфигов**: `.opencode/oh-my-opencode.jsonc` или `.opencode/oh-my-opencode.json` (проект), `~/.config/opencode/oh-my-opencode.jsonc` или `~/.config/opencode/oh-my-opencode.json` (пользователь)
340
+ - **Расположение конфигов**: Слой совместимости распознаёт как `oh-my-openagent.json[c]`, так и устаревшие `oh-my-opencode.json[c]` файлы конфигурации плагина. Существующие установки по-прежнему часто используют устаревшее имя.
322
341
  - **Поддержка JSONC**: Комментарии и конечные запятые поддерживаются
323
342
  - **Агенты**: Переопределение моделей, температур, промптов и разрешений для любого агента
324
343
  - **Встроенные навыки**: `playwright` (автоматизация браузера), `git-master` (атомарные коммиты)
@@ -330,9 +349,10 @@ project/
330
349
  - **LSP**: Полная поддержка LSP с инструментами рефакторинга
331
350
  - **Экспериментальное**: Агрессивное усечение, автовозобновление и другое
332
351
 
352
+
333
353
  ## Слово автора
334
354
 
335
- **Хотите узнать философию?** Прочитайте Манифест Ultrawork.
355
+ **Хотите узнать философию?** Прочитайте [Манифест Ultrawork](docs/manifesto.md).
336
356
 
337
357
  ------
338
358
 
@@ -340,9 +360,9 @@ project/
340
360
 
341
361
  Каждая проблема, с которой я столкнулся, — её решение уже встроено в этот плагин. Устанавливайте и работайте.
342
362
 
343
- Если OpenCode — это Debian/Arch, то OmO — это Ubuntu/[Omarchy](https://omarchy.org/).
363
+ Если OpenCode — это Debian/Arch, то oh-my-openagent — это Ubuntu/[Omarchy](https://omarchy.org/).
344
364
 
345
- Сильное влияние со стороны [AmpCode](https://ampcode.com) и [Claude Code](https://code.claude.com/docs/overview). Функции портированы, часто улучшены. Продолжаем строить. Это **Open**Code.
365
+ Сильно вдохновлено [AmpCode](https://ampcode.com) и [Claude Code](https://code.claude.com/docs/overview). Функции портированы, часто улучшены. Продолжаем строить. Это **Open**Code.
346
366
 
347
367
  Другие обвязки обещают оркестрацию нескольких моделей. Мы её поставляем. Плюс стабильность. Плюс функции, которые реально работают.
348
368
 
@@ -358,21 +378,23 @@ project/
358
378
 
359
379
  Этот плагин — дистилляция. Берём лучшее. Есть улучшения? PR приветствуются.
360
380
 
361
- **Хватит мучиться с выбором обвязки.** **Я буду исследовать, воровать лучшее и поставлять это сюда.**
381
+ **Хватит мучиться с выбором обвязки.**
382
+ **Я буду исследовать, воровать лучшее и поставлять это сюда.**
362
383
 
363
384
  Звучит высокомерно? Знаете, как сделать лучше? Контрибьютьте. Добро пожаловать.
364
385
 
365
- Никакой аффилиации с упомянутыми проектами/моделями. Только личные эксперименты.
386
+ Никакой аффилиации с упомянутыми проектами или моделями. Только личные эксперименты.
366
387
 
367
- 99% этого проекта было создано с помощью OpenCode. Я почти не знаю TypeScript. **Но эту документацию я лично просматривал и во многом переписывал.**
388
+ 99% этого проекта было создано с помощью OpenCode. Я почти не знаю TypeScript, **но эту документацию я лично просматривал и во многом переписывал.**
368
389
 
369
390
  ## Любимый профессионалами из
370
391
 
371
- - Indent
372
- - Spray решение для influencer-маркетинга, vovushop платформа кросс-граничной торговли, vreview AI-решение для маркетинга отзывов в commerce
392
+ - [Indent](https://indentcorp.com)
393
+ - Создатели Spray (решение для influencer-маркетинга), vovushop (платформа трансграничной торговли) и vreview (AI-решение для маркетинга отзывов в commerce).
373
394
  - [Google](https://google.com)
374
395
  - [Microsoft](https://microsoft.com)
375
- - ELESTYLE
376
- - elepay — мультимобильный платёжный шлюз, OneQR — мобильное SaaS-приложение для безналичных расчётов
396
+ - [Vercel](https://vercel.com)
397
+ - [ELESTYLE](https://elestyle.jp)
398
+ - Создатели elepay (мультимобильный платёжный шлюз) и OneQR (мобильное SaaS-приложение для безналичных расчётов).
377
399
 
378
400
  *Особая благодарность [@junhoyeo](https://github.com/junhoyeo) за это потрясающее hero-изображение.*