@rt-tools/agent-kit 0.21.0 → 0.23.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 (68) hide show
  1. package/assets/checks/board-long-work.github.mjs +101 -0
  2. package/assets/checks/board-runs.github.mjs +34 -0
  3. package/assets/checks/check-board.github.mjs +16 -2
  4. package/assets/checks/check-reuse.mjs +4 -1
  5. package/assets/checks/check-schema-drift.mjs +65 -6
  6. package/assets/checks/rt-kit-checks.config.mjs +13 -0
  7. package/assets/checks/signals.mjs +41 -1
  8. package/assets/commands/next-session.md +16 -5
  9. package/assets/defaults/project.sh +16 -0
  10. package/assets/hooks/browser-guard-no-asking.sh +5 -1
  11. package/assets/hooks/claim-guard.sh +1 -0
  12. package/assets/hooks/conscience-guard.sh +1 -0
  13. package/assets/hooks/git-guard-delivery.sh +15 -11
  14. package/assets/hooks/git-guard-push-tests.sh +22 -0
  15. package/assets/hooks/glossary-load.sh +23 -2
  16. package/assets/hooks/grill-gate.sh +64 -0
  17. package/assets/hooks/hook-input.sh +1 -0
  18. package/assets/hooks/postmortem-guard.sh +1 -0
  19. package/assets/hooks/proposal-guard.sh +8 -0
  20. package/assets/hooks/turn-exit-guard.sh +1 -0
  21. package/assets/hooks/waiting-turn-guard.sh +1 -0
  22. package/assets/hooks/work-start-guard.sh +2 -0
  23. package/assets/laws/autonomous-work.md +30 -0
  24. package/assets/laws/frontend-application.md +10 -0
  25. package/assets/laws/project-documentation.md +8 -0
  26. package/assets/laws/work-conduct.md +3 -0
  27. package/assets/patterns/autonomous-work-run.md +105 -0
  28. package/assets/patterns/browser-verification-stand.md +1 -1
  29. package/assets/patterns/doc-style-write.md +16 -0
  30. package/assets/patterns/git-workflow-pr-ready.md +93 -0
  31. package/assets/patterns/git-workflow-pr.azure.md +1 -1
  32. package/assets/patterns/git-workflow-pr.github.md +1 -1
  33. package/assets/patterns/git-workflow-pr.gitlab.md +1 -1
  34. package/assets/patterns/task-flow-start.md +47 -47
  35. package/assets/patterns/ts-procedure.md +3 -2
  36. package/assets/rules/autonomous-work.md +92 -0
  37. package/assets/rules/browser-verification.md +6 -0
  38. package/assets/rules/deploy-flow.azure.md +7 -0
  39. package/assets/rules/deploy-flow.github.md +7 -0
  40. package/assets/rules/deploy-flow.gitlab.md +7 -0
  41. package/assets/rules/doc-style.md +18 -0
  42. package/assets/rules/git-workflow.azure.md +13 -0
  43. package/assets/rules/git-workflow.github.md +59 -57
  44. package/assets/rules/git-workflow.gitlab.md +13 -0
  45. package/assets/rules/reuse-first.md +17 -3
  46. package/assets/rules/task-flow.md +62 -63
  47. package/assets/skills/agent-kit.md +20 -20
  48. package/lib/commands.d.ts.map +1 -1
  49. package/lib/commands.js +6 -0
  50. package/lib/commands.js.map +1 -1
  51. package/lib/push-gate.d.ts +14 -0
  52. package/lib/push-gate.d.ts.map +1 -0
  53. package/lib/push-gate.js +93 -0
  54. package/lib/push-gate.js.map +1 -0
  55. package/package.json +1 -1
  56. package/rt-tools-agent-kit-0.23.0.tgz +0 -0
  57. package/assets/laws/application/access.md +0 -34
  58. package/assets/laws/application/locales.md +0 -33
  59. package/assets/laws/application/search-visibility.md +0 -24
  60. package/assets/patterns/permissions-procedure.md +0 -71
  61. package/assets/patterns/seo-page.md +0 -104
  62. package/assets/patterns/seo-verify.md +0 -83
  63. package/assets/patterns/translations-content.md +0 -107
  64. package/assets/patterns/translations-key.md +0 -64
  65. package/assets/rules/permissions.md +0 -116
  66. package/assets/rules/seo.md +0 -139
  67. package/assets/rules/translations.md +0 -96
  68. package/rt-tools-agent-kit-0.21.0.tgz +0 -0
@@ -69,15 +69,15 @@ flowchart TD
69
69
  за которой в очереди работ ничего не стоит. Заводится задача, и работа переносится в ветку с
70
70
  её номером.
71
71
  - **Главная ветка влита в ветку задачи до открытия PR.** Гард отбивает открытие, пока вершина
72
- главной не стала предком текущей, и называет расхождение числом коммитов: иначе ревьювер видит
73
- свою правку вперемешку с чужой, а проверено всё было от основания, которого уже нет.
72
+ главной не стала предком текущей: иначе ревьювер видит свою правку вперемешку с чужой, а
73
+ проверено всё было от основания, которого уже нет.
74
74
  - **Волна веток от одной главной проверяется пробным слиянием, а не по одной:** каждая зелена
75
- сама по себе, а сталкиваются они тем, чего на отдельной ветке не видно.
75
+ сама по себе, а сталкиваются тем, чего на отдельной ветке не видно.
76
76
  - **Ветка следующей работы отводится от предыдущей, пока череда не прервалась.** `git checkout -b
77
- <КЛЮЧ>-<номер>-<slug> <предыдущая ветка>` вместо `origin/main`; от главной — только первая работа
78
- череды. Иначе первое же слияние делает расходящимися все остальные разом.
77
+ <КЛЮЧ>-<номер>-<slug> <предыдущая ветка>` вместо `origin/main`; от главной — первая работа
78
+ череды. Иначе первое слияние разводит все остальные разом.
79
79
  - **У заявки в череде основанием стоит предыдущая ветка, а не главная.** `gh pr create --base
80
- <предыдущая ветка>` — иначе разбор показывает свою правку вперемешку со всем, что под ней. Базу
80
+ <предыдущая ветка>` — иначе разбор показывает правку вперемешку со всем, что под ней. Базу
81
81
  влитой нижней хостинг переносит сам.
82
82
  - **Череда вливается снизу вверх, и порядок стоит в теле каждой заявки.** Родство веток по
83
83
  списку не видно: строка «стоит на #<номер>» — единственное место, где владелец это прочтёт.
@@ -87,9 +87,9 @@ flowchart TD
87
87
  владельца, разбирающего то же при слиянии, нет ни одной.
88
88
  - **Несошедшиеся условия поставки называются одним отказом.** Гард копит их и печатает разом: всё
89
89
  несошедшееся известно на первом вызове.
90
- - **Условие, известное в начале работы, спрашивается в начале.** Заведение ветки отбивает основание
91
- без вершины главной и чужую почту в подписи. На пуше те же проверки стоят дороже: основание
92
- чинится вливанием с конфликтом, подпись — переписыванием ветки.
90
+ - **Условие, известное в начале работы, спрашивается в начале.** Заведение ветки отбивает
91
+ основание без вершины главной и чужую почту в подписи; на пуше то же чинится вливанием с
92
+ конфликтом и переписыванием ветки.
93
93
  - **Судится то основание, которое названо командой, а не вершина рабочей копии.** Ветку заводят и
94
94
  от `origin/main` прямо — этой командой основание как раз и берут свежим. Основание, о котором
95
95
  дерево ничего не знает, не судится вовсе.
@@ -140,12 +140,10 @@ flowchart TD
140
140
  прогона, а не цвет, и свежей вершине даёт время.
141
141
  - **Прогон, вытесненный из очереди конвейера, сверка называет отдельной строкой.** Он выглядит
142
142
  упавшим, хотя ветку не проверял; отличает их число заданий — у него ноль.
143
- - **Черновик при зелёном прогоне на вершине — расхождение сверки.** Зелёная страница черновика
144
- владельцу ничего не разрешает: кнопка заблокирована хостингом. Внутри хода это закрывает гард,
145
- между ходамисверка.
146
- - **Свои черновики судятся все разом, а не тот один, чья ветка сейчас взята.** Каждый черновик
147
- машинной записи судится двумя признаками — зелёный прогон на его вершине и разобранная папка
148
- задачи в его ветке; лежащая папка означает идущую работу.
143
+ - **Черновик при зелёном прогоне на вершине — расхождение сверки.** Зелёная страница ничего не
144
+ разрешает: кнопка заблокирована хостингом. В ходе это закрывает гард, между ходами — сверка.
145
+ - **Свои черновики судятся все разом, а не тот один, чья ветка взята.** Признака два зелёный
146
+ прогон на вершине и разобранная папка задачи в ветке; лежащая папка означает идущую работу.
149
147
  - **Открытие PR отбивается, пока ветка везёт папку своей задачи.** Кнопку слияния нажимает
150
148
  человек там, где гардов нет, и открытие — последняя точка, где отказ ещё виден тому, кто может
151
149
  его выполнить.
@@ -168,25 +166,32 @@ flowchart TD
168
166
  - **Сборка входит в набор наравне с линтом и юнитами.** Линтер типов не читает, а юниты читают
169
167
  только импортированное тестом: ошибка типов в непокрытом коде доживает до сборки образа, то
170
168
  есть до мержа.
171
- - **Набор гейта пуша не бывает уже набора конвейера.** Гейт обещание, что пуш не приедет
172
- красным. Шаг конвейера, которому в наборе гейта нет ни строки, ни объявленного исключения с
173
- причиной, отбивает пуш, а не печатается рядом: предупреждение читается как разрешение.
174
- - **Набор гейта зовёт умолчание пакета, а не перечисляет его строками.** Переписанный строками, он
175
- закрывает сегодняшнюю дыру и оставляет завтрашнюю: заведённая пакетом проверка до дерева не
176
- доедет. Отсеивать из умолчания законно, но поимённо и с причиной.
177
-
169
+ - **На машине, где раннеров несколько, любой путь от домашнего каталога общий.** Умолчание
170
+ готового шага опасно именно тем, что оно общее: соседнее задание переписывает его под свою
171
+ версию, пока наше стоит между шагами. Каталог установки, имя контейнера и имя сборщика
172
+ называются поэтому по проекту и постоянно, а временный каталог решением не бывает в нём
173
+ живёт хранилище пакетов.
174
+ - **Набор гейта пуша не бывает уже набора конвейера.** Шаг конвейера, которому в наборе нет ни
175
+ строки, ни объявленного исключения с причиной, отбивает пуш, а не печатается рядом:
176
+ предупреждение читается как разрешение.
177
+ - **Набор гейта зовёт умолчание пакета, а не перечисляет его строками.** Переписанный строками,
178
+ он оставляет завтрашнюю дыру: заведённая пакетом проверка до дерева не доедет. Отсеивать из
179
+ умолчания законно, но поимённо и с причиной.
180
+ - **Итоговый набор перед пушем читается разбором состояния, а не сборкой в уме.** Раздел «набор
181
+ перед пушем» печатает его целиком и называет рядом то, что умолчание печатало, а в набор не
182
+ попало: дерево, писавшее надстройку вслепую, дописывало в неё повтор.
178
183
  - **Причина исключения, называющая задачу, судится на живость этой задачи.** Мёртвый номер делает
179
- исключение бессрочным, не сказав об этом ни строкой. Спрашивается тем же ярусом, что состояние
180
- задачи у гарда: нет сети или доступа пропускает молча.
181
- - **Сверка раскладки стоит в наборе гейта пуша наравне с линтом и сборкой.** Правка мимо источника
182
- копится молча: раскладка отказывает по правленому файлу целиком. Статьёй выше это не покрывается —
183
- сверки нет в конвейере.
184
+ исключение бессрочным молча. Спрашивается тем же ярусом, что состояние задачи у гарда.
185
+ - **Сверка раскладки стоит в наборе гейта пуша наравне с линтом и сборкой.** Правка мимо
186
+ источника копится молча, а сверки нет в конвейере.
184
187
  - **После вливания главной ветки набор проверок пересматривается по тому, что ветка везёт
185
- теперь.** Вливание меняет состав правки: проверять по тому, что правил автор, — значит
186
- проверять половину, а отвечает ветка целиком.
187
- - **Утверждение о главной ветке делается по удалённой ссылке, а не по локальной.** Локальная
188
- протухает в минуту, когда её подтянули, и молчит об этом. Сравнение пишется от `origin/main`
189
- целиком: смешанные в одной команде, они дают промах, изнутри выглядящий верным.
188
+ теперь.** Проверять по тому, что правил автор, — значит проверять половину: отвечает ветка
189
+ целиком.
190
+ - **Главная ветка берётся удалённой ссылкой и в словах, и в действиях.** Локальная протухает в
191
+ минуту, когда её подтянули, и молчит об этом: это снимок вчерашнего дня. От `origin/main` идут
192
+ и сравнение, и основание новой ветки, и счёт влитого, и подтягивание — смешанные в одной
193
+ команде, ссылки дают промах, изнутри выглядящий верным. Влитая ветка при локальной числится
194
+ невлитой, и уборка кончается списком невлитого, которого нет.
190
195
  - **Правка кода отдаётся человеку открытым PR, а не запушенной веткой.** Ветка во входящие не
191
196
  приходит и обсуждения не имеет: до открытия PR правки для человека нет. Открывается он тем же
192
197
  ходом, которым исполнитель говорит, что работу отдаёт.
@@ -216,36 +221,32 @@ flowchart TD
216
221
  хостинга об авторе гард спрашивает на снятии черновика: влитую заявку не переоткрыть.
217
222
 
218
223
  - **Автор PR не может быть его ревьювером.** Запрос разбора на себя GitHub принимает и молча не
219
- создаёт: разбор выглядит запрошенным. Считаются только запрос и отзыв не от автора.
220
- - **Вызов клиента хостинга идёт из дерева, а связка команд исхода не проверяет.** Репозиторий
221
- клиент берёт у текущего каталога и вне дерева отказывает; следующее звено связки увозит на
222
- хостинг то, что осталось от отказавшего, поэтому тело читается обратно тем же ходом.
223
- - **Метки, исполнитель и ревьювер PR ставятся вызовами `gh api`, а не `gh pr edit`.** На старой
224
- борде `gh pr edit` отвечает отказом про Projects.
224
+ создаёт. Считаются только запрос и отзыв не от автора.
225
+ - **Вызов клиента хостинга идёт из дерева, а связка команд исхода не проверяет.** Вне дерева
226
+ клиент отказывает, а следующее звено увозит на хостинг остаток отказавшего.
227
+ - **Метки, исполнитель и ревьювер PR ставятся вызовами `gh api`, а не `gh pr edit`:** тот
228
+ отвечает отказом про Projects.
225
229
  - **Борда правится запросом GraphQL по идентификатору борды, а не по имени владельца.**
226
- - **Почта машинного коммита копируется из компаньона, а не набирается по памяти.** Служебный адрес
227
- `<число>+<логин>@users.noreply.github.com` сопоставляется по числу: коммит с чужим числом уезжает
228
- подписанным посторонним. Ту же строку держит профиль дерева, и гард отбивает пуш.
229
- - **Личность машинной записи подтверждается ответом хостинга, а не узнаванием строки.** Спрашивают
230
- её токеном, ответом о себе: логин и число приходят вместе.
231
- - **Сценарии гардов задают настройки git сами, а не берут их с машины.** Подпись, включённая на
232
- машине, уводит git в агент ключей, а заблокированный агент роняет весь набор: автор, почта и
233
- подпись идут флагами `-c` прямо в команде.
230
+ - **Почта машинного коммита копируется из компаньона, а не набирается по памяти.** Адрес
231
+ `<число>+<логин>@users.noreply.github.com` сходится по числу: с чужим коммит уезжает подписанным
232
+ посторонним. Ту же строку держит профиль дерева, и гард отбивает пуш.
233
+ - **Личность машинной записи подтверждается ответом хостинга, а не узнаванием строки:** её
234
+ спрашивают токеном, и логин с числом приходят вместе.
235
+ - **Сценарии гардов задают настройки git сами, а не берут их с машины.** Подпись с машины уводит
236
+ git в агент ключей, а заблокированный агент роняет набор: автор, почта и подпись идут флагами
237
+ `-c` в команде.
234
238
 
235
239
  - **Каждый коммит вклада ветки подписан машинной записью, и это проверяется набором пуша.** Гард
236
- судит только коммит, назвавшийся ею; подписанный человеком проходит мимо, а там, где человек не
237
- коммитит вовсе, это промах.
238
- - **Состояние заявки перечитывается у хостинга сразу после публикации, а не берётся из кода
239
- возврата.** Открытие и постановка ревьювера отвечают нулём и тогда, когда не сделали ничего.
240
+ судит коммит, назвавшийся ею; подписанный человеком проходит мимо.
241
+ - **Состояние заявки перечитывается у хостинга сразу после публикации.** Открытие и постановка
242
+ ревьювера отвечают нулём и тогда, когда не сделали ничего.
240
243
  - **Автор открытой заявки и наличие у неё ревьювера сверяются очередью работ.** До слияния оба
241
- промаха не видны: заявка, открытая человеком, ревьювера не получит никогда, и выглядит это как
242
- заявка, которой его просто не поставили.
243
- - **Ревьюверы спрашиваются вызовом REST, а не выборкой клиента.** Её поля собирает GraphQL, а он
244
- требует прав, которых у машинной записи нет: «сошлось» не отличить от «спросить было нечем».
244
+ промаха не видны: открытая человеком заявка ревьювера не получит никогда.
245
+ - **Ревьюверы спрашиваются вызовом REST, а не выборкой клиента.** Её поля собирает GraphQL, прав
246
+ на который у записи нет: «сошлось» неотличимо от «спросить было нечем».
245
247
 
246
- - **Рабочее дерево не опустошается ради прогона инструмента.** Сравнение с прежним состоянием
247
- идёт на второй копии: прятанье уводит незакоммиченную работу туда, где её не видит ни состояние
248
- дерева, ни сверка.
248
+ - **Рабочее дерево не опустошается ради прогона инструмента.** Сравнение идёт на второй копии:
249
+ прятанье уводит незакоммиченную работу туда, где её не видит ни состояние дерева, ни сверка.
249
250
 
250
251
  ## Чего из закона здесь нет
251
252
 
@@ -269,3 +270,4 @@ flowchart TD
269
270
  - `git-workflow-merge` — главная ветка влита в ветку задачи, конфликт разобран.
270
271
  - `git-workflow-stack` — череда веток: ветвление от предыдущей, основание заявки, порядок отдачи.
271
272
  - `git-workflow-freshness` — свои открытые заявки: чтение всех разом, отставание против спора.
273
+ - `git-workflow-pr-ready` — доведение отданного: снятый черновик, разбор красного, волна по череде.
@@ -159,12 +159,21 @@ flowchart TD
159
159
  только то, что импортировано тестом: ошибка типов в непокрытом коде доживает до сборки
160
160
  образа, то есть до слияния. Четыре слияния подряд так и уехали в главную ветку, ломая
161
161
  выкатку.
162
+ - **На машине, где раннеров несколько, любой путь от домашнего каталога общий.** Умолчание
163
+ готового шага опасно именно тем, что оно общее: соседнее задание переписывает его под свою
164
+ версию, пока наше стоит между шагами. Каталог установки, имя контейнера и имя сборщика
165
+ называются поэтому по проекту и постоянно, а временный каталог решением не бывает — в нём
166
+ живёт хранилище пакетов.
162
167
  - **Набор гейта пуша не бывает уже набора конвейера.** Гейт — обещание, что пуш не приедет
163
168
  красным; набор, из которого выкинуты сборка и снимки, обещает то, чего не проверяет. Шаг
164
169
  конвейера, которому в наборе гейта нет ни строки, ни объявленного исключения с причиной,
165
170
  отбивает пуш, а не печатается рядом с ним: напечатанное предупреждение исполнитель читает как
166
171
  разрешение. Дважды подряд правка, прошедшая гейт целиком, была отбита конвейером — и оба раза
167
172
  зелёный гейт был прочитан как «локально всё зелено».
173
+ - **Итоговый набор перед пушем читается разбором состояния, а не сборкой в уме.** Он собирается
174
+ из умолчания пакета и надстройки дерева, и прочитать сборку было нечем: раздел «набор перед
175
+ пушем» печатает его целиком, по команде на строку, а рядом называет то, что умолчание печатало,
176
+ а в набор не попало. Дерево, писавшее надстройку вслепую, дописывало в неё повтор.
168
177
  - **Причина исключения, называющая задачу, судится на живость этой задачи.** Отсрочка со сроком
169
178
  и отсрочка без срока выглядят одинаково, пока номер никто не спросил; мёртвый номер в причине
170
179
  делает исключение бессрочным, не сказав об этом ни строкой. Спрашивается тем же ярусом, что
@@ -186,6 +195,10 @@ flowchart TD
186
195
  сломана, она описывает вчерашний день. Сравнение веток пишется от `origin/main` целиком —
187
196
  смешав в одной команде удалённую ссылку для одной стороны и локальную для другой, промах
188
197
  изнутри выглядит правильным.
198
+ - **Удалённую ссылку берут не только слова, но и действия.** Основание новой ветки, счёт влитого
199
+ и подтягивание главной судятся по ней же: локальная — снимок последнего подтягивания, и работа,
200
+ начатая от неё, стартует от основания, которого в главной уже нет. Влитая ветка при ней числится
201
+ невлитой, и уборка кончается списком невлитого, которого нет.
189
202
  - **Слияние по кнопке «Merge when pipeline succeeds» не заменяет проверок до пуша.** Конвейер
190
203
  видит только то, что уже отправлено, а отправленная красная ветка занимает очередь работ и
191
204
  выглядит готовой к разбору.
@@ -64,7 +64,16 @@ flowchart TD
64
64
  - **Панель правки записи наследует общую основу, а не собирается своей разметкой.** Тогда она
65
65
  открывается, закрывается и спрашивает про несохранённое одинаково во всех разделах.
66
66
  - **Об удаче и об отказе сообщает общая шина, а не своя разметка на экране.** Своё сообщение
67
- расходится с соседним видом, местом и временем показа.
67
+ расходится с соседним видом, местом и временем показа. Готовое сообщение набора, поставленное
68
+ на экран, — та же своя разметка: правило говорит про место показа, а не про тег, и замена
69
+ своего абзаца на готовый компонент нарушения не снимает — она снимает признак.
70
+ - **Инлайновое сообщение законно там, где панель правки записи остаётся открытой после отказа.**
71
+ Держит его основа панели; экран, список и публичная страница к этому месту не относятся.
72
+ - **Маркер отступления ставится после чтения инвентаря готового, и прочитанное называется рядом.**
73
+ Объяснение при маркере называет компонент кита и то, чего в нём не хватает. Маркер без этого —
74
+ не отступление, а глушитель: он снимает признак, ничего не доказав.
75
+ - **Проверка не снимается с гейта ради того, чтобы пуш прошёл.** Расхождение закрывается готовым
76
+ либо объявляется отступлением в самом коде; надстройка профиля для этого не средство.
68
77
  - **Компонент объявляется тремя файлами: `.ts`, `.html`, `.scss`.** `template:` и `styles:` в
69
78
  декораторе, атрибут `style=` и правка размеров через `[ngStyle]` — это стили, до которых не
70
79
  дотянется ни кит, ни `stylelint`.
@@ -107,13 +116,18 @@ flowchart TD
107
116
  Списком их здесь нет: признак — это данные, а не текст правила и не код проверки. Наборы лежат
108
117
  при пакете, по файлу на пакет rt-tools, и в каждом только то, что везёт он сам. Дерево называет
109
118
  нужные ему наборы ключом `reuse.bundles` в настройке проверок и дописывает свои признаки файлом,
110
- названным ключом `reuse.signals`; совпавший ключ замещает пакетный, новый дописывается. Гард на
119
+ названным ключом `reuse.signals`; совпавший ключ замещает пакетный, новый дописывается. Там же
120
+ дерево называет директивы своей дизайн-системы — ключом `reuse.kitDirectives`: нативный тег,
121
+ несущий такую директиву, из признаков вырезается, потому что источник вида в дереве бывает не
122
+ один. Гард на
111
123
  правке и сплошная проверка читают отсюда оба — разойтись им нечем.
112
124
 
113
125
  Что бывает признаком:
114
126
 
115
127
  - нативный контрол в шаблоне там, где кит везёт свой;
116
- - отказ, предупреждение или ожидание, собранные руками вместо готового;
128
+ - отказ, предупреждение или ожидание, собранные руками вместо готового, — признак называет тег,
129
+ а решение принимается по месту показа: готовое сообщение на экране закрывает признак, не
130
+ закрывая нарушения;
117
131
  - наложение поверх страницы, объявленное своими стилями, — подложка, порядок слоёв, вращение;
118
132
  - раскладка, объявленная в файле стилей экрана, а не применённая директивами из общего слоя;
119
133
  - своя реализация того, что даёт основа кита, вместо наследования;
@@ -115,56 +115,60 @@ flowchart TD
115
115
  правится.** Гард хода работы требует три вещи: папку задачи по имени ветки, замысел в ней и
116
116
  объявленное в ходе работы состояние. Договорённость о продукте требует свой гард на те же
117
117
  события.
118
- - **Гард судит объявленный переход, а не наличие файлов.** Пустой замысел, положенный ради
119
- снятия отказа, лежит так же, как написанный, поэтому отказ снимает объявленное состояние —
120
- `этап-идёт`, `этапы-кончились`, `разбор-кончился`. Четвёртый путь не состояние, а история
121
- ветки: папка, разобранная её коммитом, означает отданную работу, и правка по замечаниям идёт
122
- без замысла на диске.
118
+ - **Гард судит объявленный переход, а не наличие файлов.** Пустой замысел лежит так же, как
119
+ написанный, поэтому отказ снимает объявленное состояние — `этап-идёт`, `этапы-кончились`,
120
+ `разбор-кончился`. Четвёртый путь не состояние, а история ветки: папка, разобранная её
121
+ коммитом, означает отданную работу, и правка по замечаниям идёт без замысла на диске.
123
122
  - **Строка состояния, переведённая вперёд, — то же объявление намерения, только машиночитаемое.**
124
- Пустоты за ней не видно никому: состояние объявляется тем ходом, в котором его обязательное
125
- действие начато делом, а не тем, в котором о нём отчитались.
126
- - **Отказ по состоянию называет обязательное действие объявленного состояния.**
127
- Исполнитель, которому сказано только «не в том состоянии», перепишет строку состояния вместо
128
- того, чтобы сделать шаг.
123
+ Состояние объявляется тем ходом, в котором его обязательное действие начато делом.
124
+ - **Отказ по состоянию называет обязательное действие объявленного состояния.** Услышав только
125
+ «не в том состоянии», исполнитель перепишет строку состояния вместо шага.
129
126
  - **Именем состояния считается только слово из перечня.** Своё слово не говорит ни о входе, ни о
130
- выходе, ни об обязательном действии, а перечень называет все три.
131
- - **Два требования — два гарда, и снять одно можно, не теряя второго.** Одним файлом отказ от
132
- требования договорённости снимал заодно папку задачи то, о чём дерево не просило. Судят
133
- порознь: строка о неизменном поведении снимает договорённость, а не требование дойти до
134
- правки кода.
127
+ выходе, ни об обязательном действии.
128
+ - **Два требования — два гарда, и снять одно можно, не теряя второго.** Судят порознь: строка о
129
+ неизменном поведении снимает договорённость, а не требование дойти до правки кода.
135
130
  - **Влитая договорённость ветку не запирает.** После вливания директории «предложено» на диске
136
- нет, а замысел на неё ссылается до конца работы: гард отличает влитое от незаведённого по
137
- истории ветки. Иначе правкам по замечаниям не было бы дороги.
131
+ нет, а замысел ссылается на неё до конца работы: влитое от незаведённого гард отличает по
132
+ истории ветки.
138
133
  - **Договорённость требуется по путям правки, а не по оценке задачи.** `apps/**` и `libs/**` —
139
134
  признак; правила, тексты, обвязка и зависимости под него не подпадают. Обход — строка
140
135
  `**Поведение:** не меняется — <причина владельца>` в замысле; пустая причина не принимается.
141
136
  - **Что требует слова владельца, берётся списком, а не оценкой на месте.** Оценку «это безопасно»
142
- назначает тот, кому она удобна, и меняется она с настроением разговора, а не со свойствами
143
- команды. Недовольство владельца простоем разрешением не бывает.
137
+ назначает тот, кому она удобна. Недовольство владельца простоем разрешением не бывает.
138
+ - **На команду владельца ответ начинается с результата, а не с намерения и не с его обоснования.**
139
+ Владелец, поставивший задачу, мнения о ней не запрашивал, и обоснование при уже принятом чужом
140
+ решении читается его оценкой: авторство переписывается на исполнителя. Исключение одно —
141
+ исполнение упёрлось в препятствие: тогда называется препятствие, а не отношение к задаче.
144
142
  - **Заход работу не начинает сам.** Начало требует слова владельца в этом же заходе: передача,
145
143
  состояние из хука запуска и назначенный эпик говорят, что делать, если работать, и молчат о
146
144
  том, работать ли. Судится это формой реплики, а не смыслом: правка кода после пустой реплики,
147
145
  одного слова или одного пути ход не заканчивает.
148
- - **Указание работать по ходу работы покрывает все его шаги, включая меняющие историю.** Отметка
149
- этапа, пуш и заявка предписаны им самим: спрашивают о том, чего в нём нет.
146
+ - **Указание работать по ходу работы покрывает все его шаги, включая меняющие историю.**
147
+ Спрашивают о том, чего в ходе работы нет.
150
148
  - **Вопрос, записанный прошлым заходом, вопросом владельца не становится.** Он адресован автору
151
149
  передачи, и часть таких вопросов закрыта шагом работы.
150
+ - **Указание владельца действует до его отмены, и новый факт против него — строка в ответе о
151
+ цене, а не новый вопрос.** Переспрашивают то, чего указание не покрывает; обстоятельство,
152
+ меняющее цену указания, но не смысл, называется вслух, и работа идёт дальше. Меню, где два
153
+ варианта из трёх предлагают отменить решение владельца, и есть такая отмена. Правило о развилке
154
+ говорит, КАК задавать вопрос, и молчит о том, задавать ли его вовсе.
155
+ - **Ответ, данный репликой владельца, записан наравне с ответом в документе.** Вопрос, на который
156
+ в разговоре уже отвечали, второй раз не задают.
152
157
  - **Слово владельца об устройстве — постановка, а не решение.** Названное им обычно уже живёт в
153
- дереве под этим самым словом: у него есть имя на экране, раздел в спеке и поле в модели. Прежде
154
- чем строить, слово сверяется с ними, а разошлось прочтение с деревом — спрашивается владелец, до
155
- правки: истолкованное по ближайшему коду, оно выглядит исполненной просьбой ровно до приёмки.
158
+ дереве под этим самым словом именем на экране, разделом спека, полем модели, и сверяется с
159
+ ними до правки. Разошлось прочтение спрашивается владелец: истолкованное по ближайшему коду
160
+ выглядит исполненной просьбой ровно до приёмки.
156
161
  - **Папка задачи заводится под любую работу, без исключений.** Исключение, у которого есть хоть
157
- одна законная форма, исполняется как разрешение. Заводится она до первой правки: сколько
158
- заходов уйдёт на работу, заранее не знает никто.
162
+ одна законная форма, исполняется как разрешение. Заводится она до первой правки.
159
163
  - **Папка задачи едет в ветку коммитом, а не живёт в одном рабочем дереве.** Незакоммиченная,
160
- она проходит все правки без отказа, а признак отданной работы берётся из истории: отказ придёт
161
- в последней точке, когда замысел уже снят. Вне истории законен один черновик без номера.
164
+ она проходит все правки без отказа, а отказ приходит в последней точке, когда замысел уже снят:
165
+ признак отданной работы берётся из истории. Вне истории законен один черновик без номера.
162
166
  - **Папка задачи разбирается последним коммитом до открытия PR, а не после одобрения.** Человек
163
167
  вливает, как только видит зелёное, и закрывающему коммиту места не остаётся вовсе. Цена:
164
168
  замысла с этой минуты на диске нет, и признак отданной работы гард берёт из истории ветки.
165
- - **Открыв PR, исполнитель называет владельцу три вещи: номер, чего ждёт и что сделает следом.**
166
- Ждёт он прогона, следом идёт снятие черновика. Зелёный прогон говорит, что не сломано, и молчит
167
- о заблокированной у черновика кнопке слияния.
169
+ - **Открыв PR, исполнитель называет владельцу номер, чего ждёт и что сделает следом.** Ждёт он
170
+ прогона, следом снимает черновик: зелёный прогон говорит, что не сломано, и молчит о
171
+ заблокированной у черновика кнопке слияния.
168
172
  - **Просьба о слиянии — отдельный ход, и раньше зелёного прогона её не бывает.** Порядок один:
169
173
  папка разобрана и запушена → PR открыт черновиком → прогон зелёный → черновик снят →
170
174
  исполнитель просит влить, называя номер.
@@ -174,66 +178,60 @@ flowchart TD
174
178
  - **Гард замысла — нижняя граница требования, а не его предел.** Он требует папку только под
175
179
  правку кода приложения, а статья выше — под любую работу. Прочитанный как признак, он
176
180
  становится разрешением работать без замысла везде, куда не смотрит.
177
- - **Указание работать по правилу — это указание делать его шаги, включая те, что меняют
178
- историю.** Отметка сделанного этапа, коммит, пуш и открытие заявки правилом предписаны, и
179
- отдельного слова владельца на каждый из них не требуется: спросить надо о том, чего в правиле
180
- нет. Ход, который довёл работу до готовности и встал перед коммитом, работу не отдал, а спрятал.
181
- - **Взятая задача ходом не кончается.** Заведение задачи, ветки, колонки и папки подготовка, а
182
- не работа: они переводят её в состояние записанного замысла, где обязательное действие уже
183
- другое. Держит это страж выхода хода, называя в отказе первый этап замысла.
184
- - **Ожидание одной части этапа остановкой этапа не бывает.** Части, которые от ожидаемого не
185
- зависят, делаются тем же ходом, а владельцу называется, что сделано и что осталось на его шаг.
186
- Отбитая гардом команда и отклонённый вызов читаются так же: сперва делается всё, что мимо них.
181
+ - **Указание работать по правилу — это указание делать его шаги, включая меняющие историю.**
182
+ Отметка этапа, коммит, пуш и открытие заявки правилом предписаны: спросить надо о том, чего в
183
+ нём нет. Ход, доведший работу до готовности и вставший перед коммитом, её не отдал, а спрятал.
184
+ - **Взятая задача ходом не кончается.** Заведение задачи, ветки, колонки и папки подготовка:
185
+ она переводит работу в состояние записанного замысла, где действие уже другое. Держит это страж
186
+ выхода хода, называя в отказе первый этап.
187
+ - **Ожидание одной части этапа остановкой этапа не бывает.** Независимые от ожидаемого части
188
+ делаются тем же ходом, а владельцу называется, что сделано и что осталось на его шаг. Отбитая
189
+ команда читается так же: сперва делается всё, что мимо неё.
187
190
  - **Сделанное отмечается только в ходе работы.** «Где стоим» перезаписывается каждым заходом, а
188
191
  не дописывается: это первое, что читает следующий заход.
189
192
  - **Слово для нового понятия ищется в словаре дерева.** Общую часть везёт пакет, предметную
190
193
  дописывает дерево надстройкой; словарь уезжает в контекст на запуске сессии целиком, поэтому
191
194
  «не читал» основанием не бывает.
192
195
  - **Папка задачи заводится черновиком и получает номер командой.** До конца разбора неизвестно,
193
- сколько задач из него выйдет, поэтому номер не может быть первым. Команда заведения
194
- переименовывает черновик, проставляет шапку замысла и собирает папку с образца, снимая с копий
195
- шапку раскладки.
196
+ сколько задач из него выйдет, поэтому номер не бывает первым. Команда переименовывает черновик,
197
+ проставляет шапку замысла и снимает с копий шапку раскладки.
196
198
  - **Брошенный разбор виден.** Черновик старше недели перечисляет сверка очереди.
197
199
  - **Следующая задача берётся из замысла эпика, а список очереди работ спрашивается только там, где
198
200
  эпика нет.** По списку номеров первая задача чужого эпика неотличима от своей. Кончившийся эпик
199
201
  называется владельцу тем же ходом, которым берётся работа вне его.
200
- - **Эпик не закрывается по признаку, подтверждённому только чтением.** Признак, проверяемый
201
- глазами, называется проверенным лишь вместе с командой или замером и их выводом.
202
+ - **Эпик не закрывается по признаку, подтверждённому только чтением.** Проверяемое глазами
203
+ называется проверенным лишь вместе с командой и её выводом.
202
204
  - **Задачи эпика заводятся все разом, тем же ходом, что и сам эпик.** Заведение по одной прячет
203
205
  объём. Номера возвращаются в раздел порядка той же правкой: без них «взять следующую» отвечает
204
206
  названием, а не карточкой.
205
207
 
206
208
  - **Замысел эпика лежит там, где его найдут без сети и после мержа.** Карточка порядка задач не
207
- держит, а папка задачи держала бы его до слияния первой из них; каталог называет компаньон
208
- правила. Имя, адрес и способ, названные владельцем по ходу, дописываются туда же тем ходом,
209
- каким приняты.
209
+ держит, а папка задачи держала бы его до слияния первой; каталог называет компаньон правила.
210
+ Названное владельцем по ходу дописывается туда же тем ходом, каким принято.
210
211
  - **Сборка по образцу начинается с чтения самого образца, а не пересказа о нём.** Пересказ лежит
211
212
  в разборе просьбы и в замысле эпика; образцом они не считаются. Повторяемая часть открывается
212
213
  целиком — обходом каталогов, а не одним файлом, за которым пришли.
213
214
  - **Что действует на дерево, а не на правку, лежит вне индекса.** Путь к образцу и разрешение
214
- работать вне эпика ветке не принадлежат: записанные файлом репозитория, они в ней и остаются,
215
- а следующая, отведённая от главной, их не несёт. Место записи — рядом с передачей захода.
215
+ работать вне эпика ветке не принадлежат и живут рядом с передачей захода.
216
216
  - **Закрытая работа разбирается правилами, и это шаг закрытия, а не отдельная просьба.** Что
217
- грузилось, что помогло и чего не хватило, видно только тому заходу, который работу вёл. Разбор
218
- кончается правкой слоя правил или предложением наружу; ведёт его роль разбора закрытой задачи,
219
- если дерево её разложило.
217
+ грузилось и чего не хватило, видно только заходу, который работу вёл. Разбор кончается правкой
218
+ слоя правил или предложением наружу.
220
219
  - **Разбор закрытой работы уходит в фон, а исполнитель берёт следующую задачу.** Роль работает
221
- своим ходом и ничего не спрашивает. Сводку собирают до запуска, вернувшиеся находки принимают
222
- одним ходом.
220
+ своим ходом; сводку собирают до запуска, находки принимают одним ходом.
223
221
  - **Находки разбора ждут владельца, а в пакет уезжает только сводка наблюдений.** Предложение —
224
222
  заготовка правки чужого дерева, и уехавшая без разбора, она становится работой того, кто её не
225
223
  заказывал. Сводка уезжает всегда: она говорит, чем пользовались, и мнением не бывает.
226
- - **Дешёвый шаг закрытия идёт раньше дорогого, а прогон — после вливания.** Вливание договорённости
227
- и приведение текстов стоят минуты, прогон — окно захода. Идущий после вливания, он проверяет и его
228
- самого: идущий до, он смотрит то, что в главную не поедет.
224
+ - **Дешёвый шаг закрытия идёт раньше дорогого, а прогон — после вливания.** Вливание
225
+ договорённости и приведение текстов стоят минуты, прогон — окно захода; идущий до вливания, он
226
+ смотрит то, что в главную не поедет.
229
227
  - **Договорённость вливается в спек домена одним из последних коммитов ветки, до открытия PR.**
230
228
  К этому моменту код написан, привязки известны, и в главной ветке директория `proposed/` не
231
229
  появляется вовсе. Готовые к вливанию перечисляет `npm run check:specs`.
232
230
  - **Папка закрытой задачи разбирается, а не переносится целиком.** В `docs/archive/` уезжает то, что
233
231
  объясняет решение; остальное удаляется. Неразобранную ловит сверка очереди.
234
232
  - **Открытие PR и снятие черновика отбиваются, пока ветка везёт папку своей задачи.** Слияние
235
- нажимает человек на хостинге, где гардов нет: снятый черновик он читает как приглашение влить и
236
- кнопку нажимает, не дожидаясь коммита уборки. Судится содержимое ветки, а не рабочее дерево.
233
+ нажимает человек на хостинге, где гардов нет: снятый черновик он читает приглашением влить.
234
+ Судится содержимое ветки, а не рабочее дерево.
237
235
  - **Ветка, снёсшая папку, обязана прибавить запись в архив.** Снести дешевле, чем разобрать, а
238
236
  первым уходит разбор просьбы — единственная запись слов владельца.
239
237
  - **Обход — строка `Task-folder-skip: <причина>` в PR или в самой команде.** Пустая причина обходом
@@ -253,8 +251,9 @@ flowchart TD
253
251
  видит правку файла и не знает ни о разведке до первого вопроса, ни о шести обязательных, ни об
254
252
  ответах на них — пустая таблица проходит так же, как заполненная.
255
253
 
256
- Гард разговора судит завершение хода, а не отправку вопроса: к моменту отказа вопрос уже у
257
- владельца. Отсюда порядок правило читается первым движением захода, а не по отказу гарда.
254
+ Понимания текста у гарда разговора нет: второй его признак судит общие слова темы вопроса и
255
+ последней реплики владельца, а не смысл вопрос о другом предмете, названный прежними словами,
256
+ он отобьёт. Отказ называет законный ход: назвать то, чего в прежнем ответе владельца нет.
258
257
 
259
258
  Неизменность замысла не стережёт ничто: правка по ходу отличима от первоначальной записи только
260
259
  по истории.
@@ -228,17 +228,17 @@ npx agent-kit adopt [файлы] # отдать пакету свой файл,
228
228
 
229
229
  ## Установка туда, где уже всё своё
230
230
 
231
- 1. `init`, затем `skip` на всё, что дерево держит само. Пустая раскладка — законное начало.
232
- 2. Снимок того, что говорят проверки дерева, до единой правки. Он и есть мерило.
231
+ 1. `init`, затем `skip` на всё, что дерево держит само; пустая раскладка — законное начало.
232
+ 2. Снимок того, что говорят проверки дерева, до единой правки: он и есть мерило.
233
233
  3. Ресурс за ресурсом: пакетную редакцию довести до здешней, предметность вынести в
234
234
  надстройку, снять отказ, разложить, прогнать сценарии и сверить снимок.
235
235
  4. Разложенное поверх своего пакет не пишет: файл без шапки для него чужой. Отдаётся он
236
- командой `adopt` — прежнее содержимое ложится рядом с пометкой `.before-rt-kit`, и снять его
237
- потом решает владелец.
238
- 5. Свои сценарии отданного файла переписываются под пакетное поведение либо снимаются. Чинить
239
- пакетную редакцию на месте нельзя: правка разложенной копии живёт до следующей раскладки, а
240
- её адрес источник пакета или надстройка дерева. Сценарий, ждущий поведения снятого файла,
241
- краснеет и после верной отдачи: он проверяет то, чего в дереве больше нет.
236
+ командой `adopt` — прежнее содержимое ложится рядом с пометкой `.before-rt-kit`.
237
+ 5. Ресурс, у которого здешняя редакция богаче пакетной по существу, в раскладку не берётся.
238
+ Признак статья, которой в пакетной редакции нет и не может быть: она выводится из предмета
239
+ дерева. Он уходит в `skip`, а наверх едет предложение снять его из пакета.
240
+ 6. Свои сценарии отданного файла переписываются под пакетное поведение либо снимаются: чинить
241
+ пакетную редакцию на месте нельзя, её адрес источник пакета или надстройка.
242
242
 
243
243
  ## Свойства дерева
244
244
 
@@ -272,6 +272,10 @@ npx agent-kit adopt [файлы] # отдать пакету свой файл,
272
272
 
273
273
  ## Ловушки раскладки
274
274
 
275
+ - **Словарь — такой же разложенный ресурс, как правило.** Хук запуска кладёт его в контекст
276
+ целиком, до первой реплики, и оттого он выглядит обычным документом дерева; шапка у него есть,
277
+ но читается служебной строкой. Новое слово идёт в надстройку словаря, своим разделом.
278
+
275
279
  - **Запись файла командой оболочки судится по всем путям, названным в её теле.** Гейт вынимает
276
280
  пути из текста команды, а тело документа читает целиком, как только в команде встречается имя
277
281
  интерпретатора, — и строка запуска первой строкой записываемого файла возвращает его туда сама.
@@ -281,18 +285,14 @@ npx agent-kit adopt [файлы] # отдать пакету свой файл,
281
285
  оболочки остаётся для того, что файлом дерева не станет.
282
286
  - **Своё, стоящее рядом с разложенным, повторяет его механику молча.** Проверка, гард и утилита
283
287
  дерева лежат в тех же каталогах, что и пакетные, а общий разбор списка известного, корни
284
- исходников, список пропускаемых каталогов и снимок долга приезжают модулем настройки проверок.
285
- Второе такое же заводится в своей проверке без единого сигнала: имена разные, форма разная, и
286
- повтора не видит ни сверка раскладки файл не разложен, ни проверка повторов, которая ищет
287
- совпадение текста. Признак один, и он читается, а не ищется: до того как в своей проверке
288
+ исходников и снимок долга приезжают модулем настройки проверок. Второе такое же заводится без
289
+ сигнала: повтора не видит ни сверка раскладки файл не разложен, ни проверка повторов,
290
+ которая ищет совпадение текста. Признак один, и он читается: до того как в своей проверке
288
291
  заводится разбор списка, чтение настройки или сравнение с накопленным, смотрят, что
289
- экспортирует модуль настройки проверок и чем живут соседние проверки.
292
+ экспортирует модуль настройки проверок.
290
293
  - **Правило, загруженное инструментом, бывает показано не целиком, и обрыв ничем не помечен.**
291
294
  Длинный файл приезжает в контекст обрезанным по строке, а снаружи это выглядит концом: показанное
292
- кончается осмысленным пунктом, и число разделов с оглавлением никто не сверяет. Бьёт обрыв ровно
293
- по хвосту, а хвост то место, где дерево отменяет умолчания пакета: разделы надстройки сливаются
294
- по совпавшему заголовку и новыми уходят в конец. Заход, читавший правило до конца по своему
295
- ощущению, исполнил пакетный образец буквально и открыл заявку черновиком там, где дерево
296
- черновиков не держит вовсе. Отсюда порядок: решение о порядке работы принимается только после
297
- того, как показанные строки сверены с длиной файла — одной командой, — а расходятся они, файл
298
- дочитывается чтением.
295
+ кончается осмысленным пунктом. Бьёт обрыв ровно по хвосту, а хвост то место, где дерево
296
+ отменяет умолчания пакета: разделы надстройки сливаются по совпавшему заголовку и новыми уходят
297
+ в конец. Отсюда порядок: решение о порядке работы принимается после того, как показанные строки
298
+ сверены с длиной файла одной командой, а расходятся они файл дочитывается чтением.
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../projects/agent-kit/src/lib/commands.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsB7C,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AA2DD,+DAA+D;AAC/D,eAAO,MAAM,WAAW,EAAE,MAAyB,CAAC;AA0ZpD;;;;GAIG;AACH,wBAAgB,IAAI,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,SAAS,MAAM,EAAO,EAC5B,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC/C,SAAS,GAAE,MAAW,GACvB,iBAAiB,CAgCnB;AAmKD,wBAAgB,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,iBAAiB,CA8DzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,iBAAiB,CA+CpF;AAQD,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B;AA8JD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,iBAAiB,CA6DlF;AA0BD,wBAAgB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,CA6E3D;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,CA2DzD"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../projects/agent-kit/src/lib/commands.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAuB7C,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AA2DD,+DAA+D;AAC/D,eAAO,MAAM,WAAW,EAAE,MAAyB,CAAC;AA0ZpD;;;;GAIG;AACH,wBAAgB,IAAI,CAChB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,SAAS,MAAM,EAAO,EAC5B,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC/C,SAAS,GAAE,MAAW,GACvB,iBAAiB,CAgCnB;AAmKD,wBAAgB,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,iBAAiB,CA8DzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,iBAAiB,CA+CpF;AAQD,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B;AA8JD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,iBAAiB,CA6DlF;AA0BD,wBAAgB,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,CAkF3D;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,CA2DzD"}