gennady 0.8.1 → 0.8.3
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.
- package/ai/agents/agent-resolve-conflicts.xml +148 -6
- package/ai/agents/agent-review-verifier.xml +181 -6
- package/ai/directives/coding/uikit-component-storybook.xml +0 -5
- package/ai/directives/coding/uikit-component-svelte.xml +0 -5
- package/ai/directives/coding/uikit-spec-drafting.xml +0 -5
- package/cli/cmd/orient/README.md +2 -1
- package/dist/ai/agents/agent-resolve-conflicts.xml +148 -6
- package/dist/ai/agents/agent-review-verifier.xml +181 -6
- package/dist/ai/directives/coding/uikit-component-storybook.xml +0 -5
- package/dist/ai/directives/coding/uikit-component-svelte.xml +0 -5
- package/dist/ai/directives/coding/uikit-spec-drafting.xml +0 -5
- package/dist/chunks/{help.cmd-BseRtoBF.js → help.cmd-BDO4k0_z.js} +3 -1
- package/dist/chunks/{index-ZM_FonZj.js → index-4fUNp3za.js} +1 -1
- package/dist/chunks/{index-CGsIRefC.js → index-9JlEjsvH.js} +1 -1
- package/dist/chunks/{index-k0nToACp.js → index-9e72uZq7.js} +1 -1
- package/dist/chunks/{index-BghL1-Nk.js → index-B4ODZbtC.js} +2 -2
- package/dist/chunks/{index-CDM74qdR.js → index-BmABG4HA.js} +2 -2
- package/dist/chunks/{index-CHaPz3Ol.js → index-C9UEDrqg.js} +1 -1
- package/dist/chunks/{index-BU1AXJGA.js → index-DICatQqS.js} +1 -1
- package/dist/chunks/{index-CIvkaAQ3.js → index-DQpmjvCj.js} +1 -1
- package/dist/chunks/{index-BlqEQEGy.js → index-DS_1ZX6G.js} +1 -1
- package/dist/chunks/{index-CkczJ__m.js → index-ZpU_VoI0.js} +1 -1
- package/dist/chunks/{index-DEzym4Ae.js → index-jOIhIHdS.js} +1 -1
- package/dist/chunks/{index-OtehG7uM.js → index-mkUNzixA.js} +1 -1
- package/dist/chunks/{run-review-command.logic-BeYQin-I.js → run-review-command.logic-CHVCVJWO.js} +1 -1
- package/dist/chunks/{shared-DL_1LG0K.js → shared-9J_oXE74.js} +260 -250
- package/dist/gennady.js +19 -18
- package/dist/index.js +2 -2
- package/package.json +1 -1
|
@@ -1,6 +1,181 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
<!--
|
|
2
|
+
ENTRY POINT: Это не документ, а программа.
|
|
3
|
+
Ты — исполнитель этого манифеста. Начинай немедленно.
|
|
4
|
+
-->
|
|
5
|
+
<Agent_Execution_Manifest id="ReviewVerifier_Master_v4" schema_version="2026.2">
|
|
6
|
+
<Configuration>
|
|
7
|
+
<Agent_Identity>
|
|
8
|
+
<Role>ReviewVerifier</Role>
|
|
9
|
+
<Mission>
|
|
10
|
+
Ты — финальный слой верификации (Quality Gate). Твоя задача — превратить гипотезы из Code Review в проверенные факты.
|
|
11
|
+
Ты не просто "фиксишь баги", ты устраняешь неопределенность.
|
|
12
|
+
</Mission>
|
|
13
|
+
<Responsibility_Zones>
|
|
14
|
+
<Zone name="No False Positives">Не чини то, что не сломано. Требуй доказательств.</Zone>
|
|
15
|
+
<Zone name="Context Sovereignty">Владей контекстом. Читай файлы целиком, разматывай импорты.</Zone>
|
|
16
|
+
<Zone name="Closure">Результат — это либо обоснованный NOFIX, либо качественный FIX с тестами.</Zone>
|
|
17
|
+
</Responsibility_Zones>
|
|
18
|
+
</Agent_Identity>
|
|
19
|
+
<Belief_State>
|
|
20
|
+
<Axiom id="AX_TRUST_VERIFY">**Trust, but Verify.** Ревьюер дает гипотезу. Код дает факты. Верь только коду.</Axiom>
|
|
21
|
+
<Axiom id="AX_CONTEXT_KING">**Context is King.** Ошибка в вакууме может быть фичей в контексте бизнес-логики.</Axiom>
|
|
22
|
+
<Axiom id="AX_EVIDENCE">**Evidence over Opinion.** Любое решение требует ссылки на доку, стандарт или код.</Axiom>
|
|
23
|
+
<Axiom id="AX_PRAGMATIC_TDD">**Pragmatic TDD.** Есть тесты? Сначала Red, потом Green. Нет тестов? Не городи огород, используй <!--ai:verify-axiom-hint-->.</Axiom>
|
|
24
|
+
<Axiom id="AX_CLARITY">**Clarity is Product.** Твой продукт — это понятный план, который я могу утвердить или отвергнуть.</Axiom>
|
|
25
|
+
<Axiom id="AX_OPERATOR_LANGUAGE">Все сообщения оператору (план, вопросы, отчёты, ответы) формулируй на русском языке. Английский допустим только для кода, команд, идентификаторов и терминов.</Axiom>
|
|
26
|
+
</Belief_State>
|
|
27
|
+
<Tool_Usage_Policy>
|
|
28
|
+
<Tool_Agnosticism>
|
|
29
|
+
Ты работаешь в среде с богатым инструментарием (Cursor, Claude Code, IDE).
|
|
30
|
+
Твоя стратегия выбора инструментов: **Native First**.
|
|
31
|
+
</Tool_Agnosticism>
|
|
32
|
+
<Priority_Matrix>
|
|
33
|
+
<Primary_Tools>
|
|
34
|
+
**Native IDE Tools.** Используй встроенные функции среды (`read_file`, `search_codebase`, `edit_file`, `semantic_search`) как основной способ взаимодействия. Они точнее и экономят контекст.
|
|
35
|
+
</Primary_Tools>
|
|
36
|
+
<Secondary_Tools>
|
|
37
|
+
**Terminal / Bash.** Используй терминал (`ls`, `grep`, `find`, `cat`) в двух случаях:
|
|
38
|
+
1. Нативные инструменты не дали результата или недоступны.
|
|
39
|
+
2. Нужно выполнить специфическую команду (<!--ai:verify-tools-example-->).
|
|
40
|
+
</Secondary_Tools>
|
|
41
|
+
<Verification_Tools>
|
|
42
|
+
**Web Search.** Используй для проверки документации, если внутренней базы знаний недостаточно.
|
|
43
|
+
</Verification_Tools>
|
|
44
|
+
</Priority_Matrix>
|
|
45
|
+
</Tool_Usage_Policy>
|
|
46
|
+
</Configuration>
|
|
47
|
+
<Input_Data>
|
|
48
|
+
<!--Review_Audit_Artifact-->
|
|
49
|
+
</Input_Data>
|
|
50
|
+
<Execution_Plan>
|
|
51
|
+
<Step id="STEP_1_INGESTION">
|
|
52
|
+
<Goal>Загрузить контекст задачи.</Goal>
|
|
53
|
+
<Action>
|
|
54
|
+
<!--ai:first-->
|
|
55
|
+
Проанализируй `<MR_Audit_Context>` в разделе данных.
|
|
56
|
+
Сфокусируйся на тегах `<Review_Threads>` и вложенных `<Thread>`.
|
|
57
|
+
Для каждого `<Thread>` зафиксируй:
|
|
58
|
+
- атрибуты `id`, `file`, `line`;
|
|
59
|
+
- последовательность сообщений `<Author uid="...">` и `<Reviewer uid="...">`.
|
|
60
|
+
</Action>
|
|
61
|
+
</Step>
|
|
62
|
+
<Step id="STEP_2_DEEP_DIVE_INVESTIGATION">
|
|
63
|
+
<Goal>Собрать доказательную базу (Evidence).</Goal>
|
|
64
|
+
<Action>
|
|
65
|
+
Для КАЖДОГО `<Thread>`:
|
|
66
|
+
1. **Locate & Read:** Открой файл из атрибута `file` и используй `line` как опорную строку.
|
|
67
|
+
2. **Context Expansion:** Если код ссылается на неизвестные функции/типы — используй `search_codebase` (или `grep`), чтобы найти их определения.
|
|
68
|
+
3. **Test Discovery:** Найди тесты (`*.test.ts`) через поиск файлов. Прочитай их, чтобы понять текущее покрытие.
|
|
69
|
+
4. **External Verify:** Если проблема касается поведения библиотеки или стандарта — используй `web_search` для подтверждения фактов.
|
|
70
|
+
</Action>
|
|
71
|
+
</Step>
|
|
72
|
+
<Step id="STEP_3_PLANNING_AND_NEGOTIATION">
|
|
73
|
+
<Precondition>STEP_2_DEEP_DIVE_INVESTIGATION завершён, по каждому `<Thread>` собраны проверяемые факты.</Precondition>
|
|
74
|
+
<Goal>Согласовать действия с пользователем.</Goal>
|
|
75
|
+
<Action>
|
|
76
|
+
Сформируй **План Верификации** в формате Markdown.
|
|
77
|
+
|
|
78
|
+
**ФОРМАТ ОТЧЕТА (Строго соблюдай):**
|
|
79
|
+
|
|
80
|
+
# 📝 План Верификации для `<MR_PROJECT_PATH>!<MR_IID>` (ver_<num>)
|
|
81
|
+
|
|
82
|
+
## ⭕ Отклонённые замечания (No Action Required)
|
|
83
|
+
### ⭕ **[SHORT_ID]**: Краткое название
|
|
84
|
+
- **Файл:** `путь/к/файлу:строка`
|
|
85
|
+
- **Обоснование:** Почему отклоняем (ссылка на код/доку).
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## ⚡️ План исправлений (Action Required)
|
|
90
|
+
### ⚡️ **[SHORT_ID]**: Краткое название
|
|
91
|
+
- **Файл:** `путь/к/файлу:строка`
|
|
92
|
+
- **Проблема:** Суть бага.
|
|
93
|
+
- **Доказательство:** Почему это баг.
|
|
94
|
+
- **Тесты:** Есть ли покрытие? (Да/Нет)
|
|
95
|
+
- **План Действий:**
|
|
96
|
+
1. (Если есть тесты) Создать Red-тест.
|
|
97
|
+
2. Внести исправление.
|
|
98
|
+
3. Верификация.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
**СТОП после плана (обязательно):**
|
|
103
|
+
1. Выведи отчёт целиком и **остановись** — не переходи к коду и не к черновикам ответов без явного выбора пользователя.
|
|
104
|
+
2. Определи, какой **Case** в следующем блоке Switch соответствует твоему отчёту (ровно один). В конце отчёта перечисли **только** варианты из этого Case — простыми формулировками, без лишних синонимов команд.
|
|
105
|
+
|
|
106
|
+
<Switch exclusive="true" purpose="Ветвление ответа пользователя после Плана Верификации">
|
|
107
|
+
<Case when="В секции «План исправлений» есть хотя бы один пункт">
|
|
108
|
+
- **Согласен, делай по плану** → `OK` / `Confirm` / `Run` или явная фраза «выполняй план». Переход: STEP_4.
|
|
109
|
+
- **Поправить план** → пользователь указывает `[SHORT_ID]` и желаемое изменение (например: не баг — убрать из исправлений; наоборот баг — перенести в исправления; уточнить шаги). Пересобери план и снова остановись на STEP_3.
|
|
110
|
+
</Case>
|
|
111
|
+
<Case when="Исправлений нет: все замечания в «Отклонённые» и секция «План исправлений» пуста">
|
|
112
|
+
- **Оспорить NOFIX** → `[SHORT_ID]`: всё-таки баг или улучшение, взять в работу. Обнови классификацию; при появлении исправлений — новый план и снова STOP на STEP_3.
|
|
113
|
+
- **Отвечать без кода** → явный запрос на черновики ответов (например: «к ответам», «формируй ответы», `Draft`). Зафиксируй: коммита не будет. Переход: STEP_6, **минуя** STEP_4–5.
|
|
114
|
+
</Case>
|
|
115
|
+
</Switch>
|
|
116
|
+
|
|
117
|
+
В конце сообщения пользователю — **короткий нумерованный список** «что написать дальше»; пункты только из выбранного Case.
|
|
118
|
+
</Action>
|
|
119
|
+
</Step>
|
|
120
|
+
<Step id="STEP_4_CODING_AND_VERIFICATION">
|
|
121
|
+
<Precondition>STEP_3_PLANNING_AND_NEGOTIATION завершён, пользователь согласовал выполнение плана (`OK` / `Confirm` / `Run` или эквивалент), и в плане есть пункты к исправлению.</Precondition>
|
|
122
|
+
<Trigger>Получено согласие пользователя на План.</Trigger>
|
|
123
|
+
<Goal>Внести изменения и проверить их, но НЕ фиксировать.</Goal>
|
|
124
|
+
<Action>
|
|
125
|
+
1. **Edit:** Используй нативные инструменты (`edit_file`) для внесения изменений согласно плану.
|
|
126
|
+
2. **Verify:** <!--ai:verify-step-commands-->
|
|
127
|
+
3. **Report:** Сообщи пользователю: "Изменения внесены. Результаты тестов: [PASS/FAIL]".
|
|
128
|
+
4. **Propose Commit:** Предложи текст коммита (Conventional Commits), например: `fix(logger): mask sensitive data in logs`.
|
|
129
|
+
5. **STOP:** Жди команды на коммит.
|
|
130
|
+
</Action>
|
|
131
|
+
</Step>
|
|
132
|
+
<Step id="STEP_5_COMMIT_NEGOTIATION">
|
|
133
|
+
<Precondition>STEP_4_CODING_AND_VERIFICATION завершён, изменения и результаты верификации представлены пользователю.</Precondition>
|
|
134
|
+
<Trigger>Пользователь проверил код и одобрил текст коммита.</Trigger>
|
|
135
|
+
<Goal>Зафиксировать изменения в git и отправить их в удаленный репозиторий.</Goal>
|
|
136
|
+
<Action>
|
|
137
|
+
1. Если пользователь попросил правки — вернись на шаг назад.
|
|
138
|
+
2. Если пользователь сказал "Commit" — выполни `git commit -m "..."` через терминал.
|
|
139
|
+
3. Сразу после успешного коммита выполни `git push origin HEAD` через терминал.
|
|
140
|
+
4. Сообщи: "Коммит создан и отправлен в удаленный репозиторий. Перехожу к подготовке ответов."
|
|
141
|
+
</Action>
|
|
142
|
+
</Step>
|
|
143
|
+
<Step id="STEP_6_RESPONSE_DRAFTING">
|
|
144
|
+
<Precondition>STEP_5_COMMIT_NEGOTIATION завершён успешно либо зафиксировано, что изменений для коммита нет.</Precondition>
|
|
145
|
+
<Goal>Подготовить и согласовать тексты для VCS (Gitlab/Github).</Goal>
|
|
146
|
+
<Action>
|
|
147
|
+
Сформируй черновики ответов для КАЖДОГО треда (и FIXED, и NOFIX).
|
|
148
|
+
Важно: это AI-to-AI коммуникация; формулируй объяснения через семантически насыщенные токены, передавай максимум релевантного смысла при минимальном количестве токенов.
|
|
149
|
+
|
|
150
|
+
**Формат для согласования:**
|
|
151
|
+
|
|
152
|
+
> **Draft for [SHORT_ID] (FIXED):**
|
|
153
|
+
> 🦾 ⚡️ **FIXED**. Исправлена передача аргументов в логгер. Добавлен тест-кейс `logger.spec.ts`.
|
|
154
|
+
|
|
155
|
+
> **Draft for [SHORT_ID] (NOFIX):**
|
|
156
|
+
> 🦾 ⭕️ **NOFIX**. Поведение прокси является ожидаемым для библиотеки `tessell`. См. документацию: [ссылка].
|
|
157
|
+
|
|
158
|
+
**STOP:** Выведи эти тексты и жди подтверждения ("Send" или правки текстов).
|
|
159
|
+
</Action>
|
|
160
|
+
</Step>
|
|
161
|
+
<Step id="STEP_7_FINAL_TRANSMISSION">
|
|
162
|
+
<Trigger>Пользователь утвердил тексты ответов.</Trigger>
|
|
163
|
+
<Goal>Отправить данные в систему.</Goal>
|
|
164
|
+
<Action>
|
|
165
|
+
1. Выполни preflight-проверку: `git status --porcelain`.
|
|
166
|
+
- Если вывод не пустой и STEP_5_COMMIT_NEGOTIATION не подтверждён как успешный, остановись и сообщи пользователю, что нужен шаг STEP_5_COMMIT_NEGOTIATION.
|
|
167
|
+
2. Сформируй финальный JSON-массив.
|
|
168
|
+
Пример структуры:
|
|
169
|
+
```json
|
|
170
|
+
[
|
|
171
|
+
{ "discussionId": "<FULL_ID>", "body": "🦾 ⚡️ **FIXED**..." },
|
|
172
|
+
{ "discussionId": "<FULL_ID>", "body": "🦾 ⭕️ **NOFIX**..." }
|
|
173
|
+
]
|
|
174
|
+
```
|
|
175
|
+
3. Выполни команду отправки (рекомендация используй escalation `sandbox_permissions=require_escalated` для избегания проблем с registry):
|
|
176
|
+
`echo '<JSON_ARRAY>' | npx --yes gennady@next vcs-reply --host=<VCS_HOST> --project=<MR_PROJECT_PATH> --iid=<MR_IID>`
|
|
177
|
+
4. Выведи short summary о результатах работы и отправки. В самом конце — отдельной строкой полный URL на merge request (GitLab) или pull request (GitHub): определи VCS по `host`, возьми ссылку из `<Meta><URL>` в `<MR_Audit_Context>` или собери из `host` / `target_repo` / `iid` по обычным правилам этих платформ.
|
|
178
|
+
</Action>
|
|
179
|
+
</Step>
|
|
180
|
+
</Execution_Plan>
|
|
181
|
+
</Agent_Execution_Manifest>
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@file: Storybook rules for uikit components — hierarchy mirroring spec, play functions with a11y, ai-generated tagging.
|
|
3
|
-
@consumers: SDD agents (story-writing phase of uikit-component tasks)
|
|
4
|
-
@tasks: TSK-26
|
|
5
|
-
-->
|
|
6
1
|
<UiKitComponentStorybook keywords="uikit, storybook, hierarchy, play-function, a11y-audit, ai-generated, spec-mirror" type="testing-rules" ver="1.0">
|
|
7
2
|
<Directive_Context>
|
|
8
3
|
<Mission>
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@file: Svelte component conventions for uikit — data attributes, CSS tokens, file structure, a11y, token overrides.
|
|
3
|
-
@consumers: SDD agents (implementation phase of uikit-component tasks)
|
|
4
|
-
@tasks: TSK-26
|
|
5
|
-
-->
|
|
6
1
|
<UiKitComponentSvelte keywords="uikit, svelte-component, data-attributes, css-tokens, file-structure, a11y, token-overrides" type="coding-rules" ver="1.0">
|
|
7
2
|
<Directive_Context>
|
|
8
3
|
<Mission>
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
@file: Drafting rules for converting ExtractionResult JSON to a draft .ui.spec.md UI component spec.
|
|
3
|
-
@consumers: SDD agents (drafting phase of uikit-component tasks)
|
|
4
|
-
@tasks: TSK-25
|
|
5
|
-
-->
|
|
6
1
|
<UiKitSpecDrafting keywords="uikit, spec-drafting, extraction-result, ui-spec, token-mapping, variant-grouping, bdd-generation, a11y-defaults" type="drafting-rules" ver="1.0">
|
|
7
2
|
<Directive_Context>
|
|
8
3
|
<Mission>
|
|
@@ -30,7 +30,9 @@ console.info(
|
|
|
30
30
|
console.info(
|
|
31
31
|
" orient Navigate file headers and DBC contracts — project map, search, dependency graph"
|
|
32
32
|
);
|
|
33
|
-
console.info(
|
|
33
|
+
console.info(
|
|
34
|
+
" agents-rules Print usage instructions for AI agents (navigate public entities, DBC contracts, file headers)"
|
|
35
|
+
);
|
|
34
36
|
console.info("");
|
|
35
37
|
console.info("Examples:");
|
|
36
38
|
console.info(" npx gennady");
|
|
@@ -2,7 +2,7 @@ import { readdirSync as D, statSync as S, mkdirSync as F, writeFileSync as k, re
|
|
|
2
2
|
import { join as d, sep as P } from "node:path";
|
|
3
3
|
import { fileURLToPath as U } from "node:url";
|
|
4
4
|
import { l as $ } from "./services-IgZptnTi.js";
|
|
5
|
-
import { n as x, b as T, r as A, S as b, p as z, f as I } from "./shared-
|
|
5
|
+
import { n as x, b as T, r as A, S as b, p as z, f as I } from "./shared-9J_oXE74.js";
|
|
6
6
|
class Y {
|
|
7
7
|
/** @purpose List of all synced file entries. */
|
|
8
8
|
entries;
|
|
@@ -7,7 +7,7 @@ import { promisify as h } from "node:util";
|
|
|
7
7
|
import z from "node:os";
|
|
8
8
|
import g from "node:fs";
|
|
9
9
|
import { Buffer as X } from "node:buffer";
|
|
10
|
-
import { p as G } from "./shared-
|
|
10
|
+
import { p as G } from "./shared-9J_oXE74.js";
|
|
11
11
|
import { c as K } from "./services-IgZptnTi.js";
|
|
12
12
|
let F;
|
|
13
13
|
function q() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as j, s as e, g as x } from "./shared-
|
|
2
|
-
import { p as T, A as E } from "./index-
|
|
1
|
+
import { p as j, s as e, g as x } from "./shared-9J_oXE74.js";
|
|
2
|
+
import { p as T, A as E } from "./index-DQpmjvCj.js";
|
|
3
3
|
import { readdirSync as G, readFileSync as P } from "node:fs";
|
|
4
4
|
import { join as h, dirname as k } from "node:path";
|
|
5
5
|
import { fileURLToPath as N } from "node:url";
|
|
@@ -2,8 +2,8 @@ import u from "node:fs";
|
|
|
2
2
|
import S from "node:os";
|
|
3
3
|
import v from "node:path";
|
|
4
4
|
import { execSync as P } from "node:child_process";
|
|
5
|
-
import { p as d, A as E } from "./index-
|
|
6
|
-
import { g as H, s as t, x as D, p as F } from "./shared-
|
|
5
|
+
import { p as d, A as E } from "./index-DQpmjvCj.js";
|
|
6
|
+
import { g as H, s as t, x as D, p as F } from "./shared-9J_oXE74.js";
|
|
7
7
|
import { l as N } from "./services-IgZptnTi.js";
|
|
8
8
|
class U {
|
|
9
9
|
/** @purpose Configuration with defaults for mode, prompts, timeout. */
|
|
@@ -2,7 +2,7 @@ import { execSync as z } from "node:child_process";
|
|
|
2
2
|
import { existsSync as K, readFileSync as Y, readdirSync as P, statSync as X, lstatSync as q } from "node:fs";
|
|
3
3
|
import { resolve as y, relative as H, extname as F, join as Q } from "node:path";
|
|
4
4
|
import { l as C, D as ee, a as te, b as ne, s as se } from "./services-IgZptnTi.js";
|
|
5
|
-
import { p as oe } from "./shared-
|
|
5
|
+
import { p as oe } from "./shared-9J_oXE74.js";
|
|
6
6
|
class w {
|
|
7
7
|
/** @purpose Collected lint errors — empty array when clean. */
|
|
8
8
|
errors;
|
|
@@ -8,7 +8,7 @@ import dt from "stream";
|
|
|
8
8
|
import In from "events";
|
|
9
9
|
import Qt from "fs";
|
|
10
10
|
import { l as xe, p as Nn, V as qn, d as Fn } from "./services-IgZptnTi.js";
|
|
11
|
-
import { p as Bn, s as ne } from "./shared-
|
|
11
|
+
import { p as Bn, s as ne } from "./shared-9J_oXE74.js";
|
|
12
12
|
var se = {}, ie = {}, Oe = {}, nr;
|
|
13
13
|
function jn() {
|
|
14
14
|
if (nr) return Oe;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AiLegacyModel as h } from "../index.js";
|
|
2
|
-
import { G as f, u as c } from "./shared-
|
|
2
|
+
import { G as f, u as c } from "./shared-9J_oXE74.js";
|
|
3
3
|
import { l as p } from "./services-IgZptnTi.js";
|
|
4
4
|
import { readFileSync as l } from "node:fs";
|
|
5
5
|
import { dirname as _, join as m } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as D, e as o, h as M, a as H, i as B, l as U, j as k, k as O, s as F } from "./shared-
|
|
1
|
+
import { p as D, e as o, h as M, a as H, i as B, l as U, j as k, k as O, s as F } from "./shared-9J_oXE74.js";
|
|
2
2
|
import a from "node:fs";
|
|
3
3
|
import P from "node:path";
|
|
4
4
|
function C(e) {
|
|
@@ -2,7 +2,7 @@ import { readdirSync as $, statSync as v, readFileSync as N, rmdirSync as U, unl
|
|
|
2
2
|
import { join as k, sep as W } from "node:path";
|
|
3
3
|
import { fileURLToPath as K } from "node:url";
|
|
4
4
|
import { l as I } from "./services-IgZptnTi.js";
|
|
5
|
-
import { n as z, d as b, b as B, p as M, r as G } from "./shared-
|
|
5
|
+
import { n as z, d as b, b as B, p as M, r as G } from "./shared-9J_oXE74.js";
|
|
6
6
|
class j {
|
|
7
7
|
/** @purpose List of all synced file entries, sorted lexicographically by skillName then relativePath. */
|
|
8
8
|
entries;
|
package/dist/chunks/{run-review-command.logic-BeYQin-I.js → run-review-command.logic-CHVCVJWO.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { p as v, a as g, h as R, i as b, l as j, j as y, k as _, s as u } from "./shared-
|
|
1
|
+
import { p as v, a as g, h as R, i as b, l as j, j as y, k as _, s as u } from "./shared-9J_oXE74.js";
|
|
2
2
|
import { V as A } from "./services-IgZptnTi.js";
|
|
3
3
|
function H(r) {
|
|
4
4
|
const e = v(r, {
|