@qelos/aidev 0.5.0 → 0.5.1
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/README.md +24 -2
- package/dist/__tests__/github.test.js +64 -0
- package/dist/__tests__/github.test.js.map +1 -1
- package/dist/__tests__/hooks.test.js +48 -0
- package/dist/__tests__/hooks.test.js.map +1 -1
- package/dist/__tests__/run.test.js +238 -0
- package/dist/__tests__/run.test.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/run.d.ts +7 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +221 -0
- package/dist/commands/run.js.map +1 -1
- package/dist/github.d.ts +2 -0
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +28 -0
- package/dist/github.js.map +1 -1
- package/dist/hooks.d.ts +15 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +1 -0
- package/dist/hooks.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
It polls your task manager (ClickUp, Jira, Linear, Monday.com, Notion, Trello, or local markdown files), checks whether tasks are clear, runs Claude, Cursor, or Windsurf to implement them, pushes a branch, and moves the task to review. All without touching your keyboard.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
Task
|
|
12
|
+
Task → AI implements → git push → "in review" → AI resolves code review comments
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -22,6 +22,7 @@ Task (ClickUp / Jira / Monday / Notion / Trello / local) → AI implements
|
|
|
22
22
|
- [Concurrency lock](#concurrency-lock)
|
|
23
23
|
- [Configuration](#configuration)
|
|
24
24
|
- [AI agents](#ai-agents)
|
|
25
|
+
- [Code review resolution](#code-review-resolution)
|
|
25
26
|
- [Auto-merge accepted PRs](#auto-merge-accepted-prs)
|
|
26
27
|
- [Dev notes mode](#dev-notes-mode)
|
|
27
28
|
- [Scheduling](#scheduling)
|
|
@@ -40,6 +41,7 @@ Task (ClickUp / Jira / Monday / Notion / Trello / local) → AI implements
|
|
|
40
41
|
4. **Wait** — pending tasks are re-checked on the next run; if a human replied or the trigger word is found, implementation proceeds with the conversation as context
|
|
41
42
|
5. **Implement** — checks out a fresh branch (or reuses an existing one), runs your configured AI agent(s), falls back to the next agent if one fails
|
|
42
43
|
6. **Ship** — commits all changes, pushes the branch, posts a comment with the branch name and a PR link, moves the task to your "in review" status
|
|
44
|
+
7. **Review** — checks tasks already in review for unresolved PR code review comments; if found, runs an AI agent to fix code or reply to discussion threads
|
|
43
45
|
|
|
44
46
|
---
|
|
45
47
|
|
|
@@ -75,7 +77,7 @@ aidev run
|
|
|
75
77
|
| Command | Description |
|
|
76
78
|
|---|---|
|
|
77
79
|
| `aidev init` | Interactive setup — creates `.env.aidev` |
|
|
78
|
-
| `aidev run` | Process
|
|
80
|
+
| `aidev run` | Process open + pending tasks, then check review tasks for unresolved PR comments |
|
|
79
81
|
| `aidev run open` | Only open (non-pending) tasks |
|
|
80
82
|
| `aidev run pending` | Only pending tasks — check for human replies |
|
|
81
83
|
| `aidev run accepted` | Auto-merge PRs for tasks in review with the accepted tag |
|
|
@@ -276,6 +278,7 @@ The module should export an object (or `export default`) whose properties are op
|
|
|
276
278
|
| `beforeResolveConflicts` / `afterResolveConflicts` | Merge conflict resolution with AI | `conflictFiles`, `prompt`; `afterResolveConflicts` has `resolved` |
|
|
277
279
|
| `beforeNonCodeTask` / `afterNonCodeTask` | Non-code tasks | `afterNonCodeTask` includes agent `output` |
|
|
278
280
|
| `beforeThinkingTask` / `afterThinkingTask` | Thinking-tag tasks (subtask plan) | `beforeThinkingTask` may adjust `subtasks` before steps run |
|
|
281
|
+
| `beforeReviewTask` / `afterReviewTask` | Review tasks with unresolved PR comments | `threads`, `prompt`, `branchName`; `afterReviewTask` has `success`, `resolvedCount` |
|
|
279
282
|
|
|
280
283
|
**Second argument: `vm`**
|
|
281
284
|
|
|
@@ -391,6 +394,25 @@ If `NON_CODE_TAG` is not configured, non-code task processing is disabled entire
|
|
|
391
394
|
|
|
392
395
|
---
|
|
393
396
|
|
|
397
|
+
## Code review resolution
|
|
398
|
+
|
|
399
|
+
When `aidev run` executes, it also checks tasks in **review** status for unresolved PR code review comments. If any actionable threads are found, an AI agent is run to address them — either by fixing the code or replying to discussion comments.
|
|
400
|
+
|
|
401
|
+
**How it works:**
|
|
402
|
+
|
|
403
|
+
1. Fetches all tasks in your configured "in review" status
|
|
404
|
+
2. For each task, finds the associated PR by branch name (via `gh` CLI)
|
|
405
|
+
3. Fetches unresolved review threads from the PR
|
|
406
|
+
4. Filters out threads where the last comment is from aidev itself (to avoid re-processing)
|
|
407
|
+
5. Runs an AI agent to address the remaining threads — code fixes are committed and pushed, discussion replies are posted directly on the thread
|
|
408
|
+
6. Resolved threads are marked as resolved on GitHub
|
|
409
|
+
|
|
410
|
+
This runs automatically as part of every `aidev run` (after processing open/pending tasks). No additional configuration is needed beyond having `gh` CLI installed and authenticated.
|
|
411
|
+
|
|
412
|
+
> **Prerequisites:** The [GitHub CLI](https://cli.github.com/) must be installed and authenticated (`gh auth login`). If `gh` is not available, review task processing is silently skipped.
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
394
416
|
## Auto-merge accepted PRs
|
|
395
417
|
|
|
396
418
|
When a task has been reviewed and is ready to merge, tag it with your configured `ACCEPTED_TAG`. On the next run, aidev will automatically merge the PR via the GitHub CLI (`gh`), update the task status, and sync your local main branch.
|
|
@@ -206,4 +206,68 @@ function initRepo(dir) {
|
|
|
206
206
|
}
|
|
207
207
|
});
|
|
208
208
|
});
|
|
209
|
+
// ─── filterUnresolvedByNonAidev ─────────────────────────────────────────────
|
|
210
|
+
(0, node_test_1.describe)('filterUnresolvedByNonAidev', () => {
|
|
211
|
+
const prefix = '🤖 **aidev**';
|
|
212
|
+
const makeThread = (id, comments) => ({
|
|
213
|
+
id,
|
|
214
|
+
path: 'src/index.ts',
|
|
215
|
+
line: 1,
|
|
216
|
+
comments,
|
|
217
|
+
});
|
|
218
|
+
(0, node_test_1.it)('keeps threads where last comment is not from aidev', () => {
|
|
219
|
+
const threads = [
|
|
220
|
+
makeThread('t1', [
|
|
221
|
+
{ body: 'Please fix this', author: 'reviewer' },
|
|
222
|
+
]),
|
|
223
|
+
];
|
|
224
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, prefix);
|
|
225
|
+
strict_1.default.equal(result.length, 1);
|
|
226
|
+
strict_1.default.equal(result[0].id, 't1');
|
|
227
|
+
});
|
|
228
|
+
(0, node_test_1.it)('filters out threads where last comment starts with commentPrefix', () => {
|
|
229
|
+
const threads = [
|
|
230
|
+
makeThread('t1', [
|
|
231
|
+
{ body: 'Please fix this', author: 'reviewer' },
|
|
232
|
+
{ body: `${prefix} I've fixed this in commit abc123`, author: 'aidev-bot' },
|
|
233
|
+
]),
|
|
234
|
+
];
|
|
235
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, prefix);
|
|
236
|
+
strict_1.default.equal(result.length, 0);
|
|
237
|
+
});
|
|
238
|
+
(0, node_test_1.it)('keeps threads where aidev commented but a human replied after', () => {
|
|
239
|
+
const threads = [
|
|
240
|
+
makeThread('t1', [
|
|
241
|
+
{ body: 'Please fix this', author: 'reviewer' },
|
|
242
|
+
{ body: `${prefix} Done`, author: 'aidev-bot' },
|
|
243
|
+
{ body: 'Actually this is still wrong', author: 'reviewer' },
|
|
244
|
+
]),
|
|
245
|
+
];
|
|
246
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, prefix);
|
|
247
|
+
strict_1.default.equal(result.length, 1);
|
|
248
|
+
});
|
|
249
|
+
(0, node_test_1.it)('returns empty array when all threads are aidev-last', () => {
|
|
250
|
+
const threads = [
|
|
251
|
+
makeThread('t1', [{ body: `${prefix} Fixed`, author: 'bot' }]),
|
|
252
|
+
makeThread('t2', [{ body: `${prefix} Replied`, author: 'bot' }]),
|
|
253
|
+
];
|
|
254
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, prefix);
|
|
255
|
+
strict_1.default.equal(result.length, 0);
|
|
256
|
+
});
|
|
257
|
+
(0, node_test_1.it)('keeps threads with no comments', () => {
|
|
258
|
+
const threads = [makeThread('t1', [])];
|
|
259
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, prefix);
|
|
260
|
+
strict_1.default.equal(result.length, 1);
|
|
261
|
+
});
|
|
262
|
+
(0, node_test_1.it)('handles mixed threads correctly', () => {
|
|
263
|
+
const threads = [
|
|
264
|
+
makeThread('t1', [{ body: 'Fix this', author: 'human' }]),
|
|
265
|
+
makeThread('t2', [{ body: `${prefix} Done`, author: 'bot' }]),
|
|
266
|
+
makeThread('t3', [{ body: 'Another issue', author: 'human' }]),
|
|
267
|
+
];
|
|
268
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, prefix);
|
|
269
|
+
strict_1.default.equal(result.length, 2);
|
|
270
|
+
strict_1.default.deepEqual(result.map((t) => t.id), ['t1', 't3']);
|
|
271
|
+
});
|
|
272
|
+
});
|
|
209
273
|
//# sourceMappingURL=github.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.test.js","sourceRoot":"","sources":["../../src/__tests__/github.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAgE;AAChE,gEAAwC;AACxC,2DAA+C;AAC/C,4CAA8B;AAC9B,4CAA8B;AAC9B,gDAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"github.test.js","sourceRoot":"","sources":["../../src/__tests__/github.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -130,6 +130,18 @@ function stubConfig() {
|
|
|
130
130
|
strict_1.default.equal(typeof hooks.beforeRun, 'function');
|
|
131
131
|
strict_1.default.equal(hooks.notAHook, undefined);
|
|
132
132
|
});
|
|
133
|
+
(0, node_test_1.it)('loads beforeReviewTask and afterReviewTask hooks', () => {
|
|
134
|
+
const hooksFile = path.join(tmpDir, 'hooks.js');
|
|
135
|
+
fs.writeFileSync(hooksFile, `
|
|
136
|
+
module.exports = {
|
|
137
|
+
beforeReviewTask: async (ctx) => ctx,
|
|
138
|
+
afterReviewTask: async () => {},
|
|
139
|
+
};
|
|
140
|
+
`, 'utf8');
|
|
141
|
+
const hooks = (0, hooks_1.loadHooks)(hooksFile);
|
|
142
|
+
strict_1.default.equal(typeof hooks.beforeReviewTask, 'function');
|
|
143
|
+
strict_1.default.equal(typeof hooks.afterReviewTask, 'function');
|
|
144
|
+
});
|
|
133
145
|
(0, node_test_1.it)('loads a TypeScript hooks file via jiti', () => {
|
|
134
146
|
const hooksFile = path.join(tmpDir, 'hooks.ts');
|
|
135
147
|
fs.writeFileSync(hooksFile, `
|
|
@@ -224,6 +236,42 @@ function stubConfig() {
|
|
|
224
236
|
strict_1.default.ok(result.prompt.includes('Extra instructions'));
|
|
225
237
|
strict_1.default.ok(result.prompt.includes('Original prompt'));
|
|
226
238
|
});
|
|
239
|
+
(0, node_test_1.it)('allows beforeReviewTask to modify prompt', async () => {
|
|
240
|
+
const hooks = {
|
|
241
|
+
beforeReviewTask: async (ctx) => {
|
|
242
|
+
return { ...ctx, prompt: ctx.prompt + '\nReview extra instructions' };
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
const ctx = {
|
|
246
|
+
task: { id: '1', name: 'review-task', description: '', status: 'in review', url: '', tags: [] },
|
|
247
|
+
config: stubConfig(),
|
|
248
|
+
branchName: 'review-branch',
|
|
249
|
+
threads: [{ id: 'thread-1', path: 'src/foo.ts', line: 10, comments: [{ body: 'fix this', author: 'reviewer' }] }],
|
|
250
|
+
prompt: 'Original review prompt',
|
|
251
|
+
};
|
|
252
|
+
const result = await (0, hooks_1.executeHook)(hooks, 'beforeReviewTask', ctx, mockVM);
|
|
253
|
+
strict_1.default.ok(result.prompt.includes('Review extra instructions'));
|
|
254
|
+
strict_1.default.ok(result.prompt.includes('Original review prompt'));
|
|
255
|
+
strict_1.default.equal(result.threads.length, 1);
|
|
256
|
+
});
|
|
257
|
+
(0, node_test_1.it)('passes success and resolvedCount to afterReviewTask', async () => {
|
|
258
|
+
let captured;
|
|
259
|
+
const hooks = {
|
|
260
|
+
afterReviewTask: async (ctx) => { captured = { success: ctx.success, resolvedCount: ctx.resolvedCount }; },
|
|
261
|
+
};
|
|
262
|
+
const ctx = {
|
|
263
|
+
task: { id: '1', name: 'review-task', description: '', status: 'in review', url: '', tags: [] },
|
|
264
|
+
config: stubConfig(),
|
|
265
|
+
branchName: 'review-branch',
|
|
266
|
+
threads: [],
|
|
267
|
+
prompt: 'prompt',
|
|
268
|
+
success: true,
|
|
269
|
+
resolvedCount: 3,
|
|
270
|
+
};
|
|
271
|
+
await (0, hooks_1.executeHook)(hooks, 'afterReviewTask', ctx, mockVM);
|
|
272
|
+
strict_1.default.equal(captured?.success, true);
|
|
273
|
+
strict_1.default.equal(captured?.resolvedCount, 3);
|
|
274
|
+
});
|
|
227
275
|
(0, node_test_1.it)('allows beforeThinkingTask to adjust subtasks', async () => {
|
|
228
276
|
const hooks = {
|
|
229
277
|
beforeThinkingTask: async (ctx) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../../src/__tests__/hooks.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.test.js","sourceRoot":"","sources":["../../src/__tests__/hooks.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAgE;AAChE,gEAAwC;AACxC,4CAA8B;AAC9B,gDAAkC;AAClC,4CAA8B;AAC9B,oCAAuG;AAKvG,SAAS,UAAU;IACjB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAuB,CAAC;AACpD,CAAC;AAED,gFAAgF;AAEhF,IAAA,oBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,MAAc,CAAC;IAEnB,IAAA,sBAAU,EAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,IAAA,qBAAS,EAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,EAAE,CAAC,CAAC;QAC5B,gBAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC7D,gBAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;;;;;KAK3B,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjD,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;;;;;KAK3B,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;;KAE3B,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,YAAY,CAAC,CAAC;YACtC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;;;;KAI3B,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,iCAAiC,EAAE,MAAM,CAAC,CAAC;QAEvE,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CACd,SAAS,EACT;;;;;;KAMD,EACC,MAAM,CACP,CAAC;QAEF,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjD,gBAAM,CAAC,KAAK,CAAE,KAAiC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;;;;;KAK3B,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACxD,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;;;;;;;KAO3B,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjD,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACxD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;;;;KAI3B,EAAE,MAAM,CAAC,CAAC;QAEX,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,iCAAiC,EAAE,MAAM,CAAC,CAAC;QAEvE,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC;QACnC,gBAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,IAAA,oBAAQ,EAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,MAAM,GAAW;QACrB,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC/D,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC3B,YAAY,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;QAC5B,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;QAC3B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE;KACzD,CAAC;IAEF,IAAA,cAAE,EAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAClE,gBAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,KAAK,GAAe;YACxB,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;SACtD,CAAC;QACF,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAClE,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,KAAK,GAAe;YACxB,SAAS,EAAE,KAAK,IAAI,EAAE,GAAmB,CAAC;SAC3C,CAAC;QACF,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAClE,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,KAAK,GAAe;YACxB,SAAS,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAC;QACF,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAElE,MAAM,gBAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,IAAA,mBAAW,EAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,EAClD,EAAE,OAAO,EAAE,YAAY,EAAE,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,IAAI,UAA8B,CAAC;QACnC,MAAM,KAAK,GAAe;YACxB,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;SACnD,CAAC;QACF,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAClD,gBAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,KAAK,GAAe;YACxB,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5B,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;YACjE,CAAC;SACF,CAAC;QACF,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACnF,MAAM,EAAE,UAAU,EAAE;YACpB,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,iBAAiB;SAC1B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACvE,gBAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACxD,gBAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,KAAK,GAAe;YACxB,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC9B,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,6BAA6B,EAAE,CAAC;YACxE,CAAC;SACF,CAAC;QACF,MAAM,GAAG,GAAsB;YAC7B,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YAC/F,MAAM,EAAE,UAAU,EAAE;YACpB,UAAU,EAAE,eAAe;YAC3B,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;YACjH,MAAM,EAAE,wBAAwB;SACjC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzE,gBAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAC/D,gBAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC5D,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,IAAI,QAAiE,CAAC;QACtE,MAAM,KAAK,GAAe;YACxB,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;SAC3G,CAAC;QACF,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAc,EAAE;YAC3G,MAAM,EAAE,UAAU,EAAE;YACpB,UAAU,EAAE,eAAe;YAC3B,OAAO,EAAE,EAAkC;YAC3C,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,CAAC;SACjB,CAAC;QACF,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzD,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,gBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,KAAK,GAAe;YACxB,kBAAkB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClC,GAAG,GAAG;gBACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CACxD;aACF,CAAC;SACH,CAAC;QACF,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACrF,MAAM,EAAE,UAAU,EAAE;YACpB,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;gBAClE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;aACnE;SACF,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3E,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC5D,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gFAAgF;AAEhF,IAAA,oBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAA,cAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC1B,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAClC,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC3B,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC3B,YAAY,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC5B,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;SAC/C,CAAC;QAEF,MAAM,UAAU,GAAa;YAC3B,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;YACvB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC9D,CAAC;QAEF,MAAM,EAAE,GAAG,IAAA,oBAAY,EAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpD,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1C,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAChD,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACjD,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAChD,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC1B,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAClC,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC3B,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC3B,YAAY,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC5B,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;SAC/C,CAAC;QAEF,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,MAAM,UAAU,GAAa;YAC3B,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;YACvB,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACpB,cAAc,GAAG,MAAM,CAAC;gBACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACxD,CAAC;SACF,CAAC;QAEF,MAAM,EAAE,GAAG,IAAA,oBAAY,EAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE7C,gBAAM,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC5C,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC1B,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAClC,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC3B,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC3B,YAAY,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC5B,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;SAC/C,CAAC;QAEF,MAAM,iBAAiB,GAAa;YAClC,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;YACxB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SAC7D,CAAC;QAEF,MAAM,EAAE,GAAG,IAAA,oBAAY,EAAC,YAAY,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE7C,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,gBAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,MAAM,YAAY,GAAiB;YACjC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC1B,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAClC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,GAAG,MAAM,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;YACtF,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;YAC3B,YAAY,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YAC5B,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;SAC/C,CAAC;QAEF,MAAM,EAAE,GAAG,IAAA,oBAAY,EAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE1C,gBAAM,CAAC,KAAK,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACzC,gBAAM,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const node_test_1 = require("node:test");
|
|
7
7
|
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
8
8
|
const run_1 = require("../commands/run");
|
|
9
|
+
const github_1 = require("../github");
|
|
9
10
|
const baseConfig = {
|
|
10
11
|
provider: 'clickup',
|
|
11
12
|
githubRepo: 'owner/repo',
|
|
@@ -526,4 +527,241 @@ function makeTask(id, priority) {
|
|
|
526
527
|
strict_1.default.ok(prompt.includes('no description provided'));
|
|
527
528
|
});
|
|
528
529
|
});
|
|
530
|
+
// ─── buildReviewPrompt ──────────────────────────────────────────────────────
|
|
531
|
+
(0, node_test_1.describe)('buildReviewPrompt', () => {
|
|
532
|
+
const reviewTask = {
|
|
533
|
+
id: 'rev1',
|
|
534
|
+
name: 'Add caching layer',
|
|
535
|
+
description: 'Add Redis caching to the API endpoints.',
|
|
536
|
+
status: 'review',
|
|
537
|
+
url: 'https://app.clickup.com/t/rev1',
|
|
538
|
+
tags: ['myproject'],
|
|
539
|
+
};
|
|
540
|
+
const sampleThreads = [
|
|
541
|
+
{
|
|
542
|
+
id: 'thread_1',
|
|
543
|
+
path: 'src/cache.ts',
|
|
544
|
+
line: 42,
|
|
545
|
+
comments: [
|
|
546
|
+
{ author: 'alice', body: 'This TTL should be configurable' },
|
|
547
|
+
{ author: 'bob', body: 'Agreed, hardcoded values are fragile' },
|
|
548
|
+
],
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
id: 'thread_2',
|
|
552
|
+
path: 'src/api.ts',
|
|
553
|
+
line: 10,
|
|
554
|
+
comments: [
|
|
555
|
+
{ author: 'alice', body: 'Missing error handling for cache miss' },
|
|
556
|
+
],
|
|
557
|
+
},
|
|
558
|
+
];
|
|
559
|
+
(0, node_test_1.it)('includes task name and description', () => {
|
|
560
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, sampleThreads);
|
|
561
|
+
strict_1.default.ok(prompt.includes('Add caching layer'));
|
|
562
|
+
strict_1.default.ok(prompt.includes('Add Redis caching to the API endpoints.'));
|
|
563
|
+
});
|
|
564
|
+
(0, node_test_1.it)('includes all thread file paths and line numbers', () => {
|
|
565
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, sampleThreads);
|
|
566
|
+
strict_1.default.ok(prompt.includes('`src/cache.ts` (line 42)'));
|
|
567
|
+
strict_1.default.ok(prompt.includes('`src/api.ts` (line 10)'));
|
|
568
|
+
});
|
|
569
|
+
(0, node_test_1.it)('includes all comment bodies', () => {
|
|
570
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, sampleThreads);
|
|
571
|
+
strict_1.default.ok(prompt.includes('This TTL should be configurable'));
|
|
572
|
+
strict_1.default.ok(prompt.includes('Agreed, hardcoded values are fragile'));
|
|
573
|
+
strict_1.default.ok(prompt.includes('Missing error handling for cache miss'));
|
|
574
|
+
});
|
|
575
|
+
(0, node_test_1.it)('includes comment authors', () => {
|
|
576
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, sampleThreads);
|
|
577
|
+
strict_1.default.ok(prompt.includes('**alice**'));
|
|
578
|
+
strict_1.default.ok(prompt.includes('**bob**'));
|
|
579
|
+
});
|
|
580
|
+
(0, node_test_1.it)('includes thread IDs', () => {
|
|
581
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, sampleThreads);
|
|
582
|
+
strict_1.default.ok(prompt.includes('Thread thread_1'));
|
|
583
|
+
strict_1.default.ok(prompt.includes('Thread thread_2'));
|
|
584
|
+
});
|
|
585
|
+
(0, node_test_1.it)('handles threads with no line number', () => {
|
|
586
|
+
const threads = [
|
|
587
|
+
{
|
|
588
|
+
id: 'thread_no_line',
|
|
589
|
+
path: 'README.md',
|
|
590
|
+
line: null,
|
|
591
|
+
comments: [{ author: 'alice', body: 'Update the docs' }],
|
|
592
|
+
},
|
|
593
|
+
];
|
|
594
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, threads);
|
|
595
|
+
strict_1.default.ok(prompt.includes('`README.md`'));
|
|
596
|
+
strict_1.default.ok(!prompt.includes('(line'));
|
|
597
|
+
});
|
|
598
|
+
(0, node_test_1.it)('handles empty threads array', () => {
|
|
599
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, []);
|
|
600
|
+
strict_1.default.ok(prompt.includes('Add caching layer'));
|
|
601
|
+
// Should still produce a valid prompt, just with no thread sections
|
|
602
|
+
strict_1.default.ok(!prompt.includes('Thread '));
|
|
603
|
+
});
|
|
604
|
+
(0, node_test_1.it)('handles missing description gracefully', () => {
|
|
605
|
+
const prompt = (0, run_1.buildReviewPrompt)({ ...reviewTask, description: '' }, sampleThreads);
|
|
606
|
+
strict_1.default.ok(prompt.includes('no description provided'));
|
|
607
|
+
});
|
|
608
|
+
(0, node_test_1.it)('includes AIDEV-REPLY instruction', () => {
|
|
609
|
+
const prompt = (0, run_1.buildReviewPrompt)(reviewTask, sampleThreads);
|
|
610
|
+
strict_1.default.ok(prompt.includes('AIDEV-REPLY'));
|
|
611
|
+
});
|
|
612
|
+
});
|
|
613
|
+
// ─── buildReviewCompletionComment ───────────────────────────────────────────
|
|
614
|
+
(0, node_test_1.describe)('buildReviewCompletionComment', () => {
|
|
615
|
+
(0, node_test_1.it)('includes resolved count', () => {
|
|
616
|
+
const comment = (0, run_1.buildReviewCompletionComment)(baseConfig, 3, 0);
|
|
617
|
+
strict_1.default.ok(comment.includes('Resolved 3 thread(s)'));
|
|
618
|
+
});
|
|
619
|
+
(0, node_test_1.it)('includes replied count', () => {
|
|
620
|
+
const comment = (0, run_1.buildReviewCompletionComment)(baseConfig, 0, 2);
|
|
621
|
+
strict_1.default.ok(comment.includes('Replied to 2 thread(s)'));
|
|
622
|
+
});
|
|
623
|
+
(0, node_test_1.it)('includes both resolved and replied counts', () => {
|
|
624
|
+
const comment = (0, run_1.buildReviewCompletionComment)(baseConfig, 2, 1);
|
|
625
|
+
strict_1.default.ok(comment.includes('Resolved 2 thread(s)'));
|
|
626
|
+
strict_1.default.ok(comment.includes('Replied to 1 thread(s)'));
|
|
627
|
+
});
|
|
628
|
+
(0, node_test_1.it)('uses correct commentPrefix', () => {
|
|
629
|
+
const comment = (0, run_1.buildReviewCompletionComment)(baseConfig, 1, 0);
|
|
630
|
+
strict_1.default.ok(comment.startsWith('[aidev]'));
|
|
631
|
+
});
|
|
632
|
+
(0, node_test_1.it)('uses custom commentPrefix', () => {
|
|
633
|
+
const customConfig = { ...baseConfig, commentPrefix: '[mybot]' };
|
|
634
|
+
const comment = (0, run_1.buildReviewCompletionComment)(customConfig, 1, 1);
|
|
635
|
+
strict_1.default.ok(comment.startsWith('[mybot]'));
|
|
636
|
+
strict_1.default.ok(!comment.includes('[aidev]'));
|
|
637
|
+
});
|
|
638
|
+
(0, node_test_1.it)('mentions code review in the message', () => {
|
|
639
|
+
const comment = (0, run_1.buildReviewCompletionComment)(baseConfig, 1, 0);
|
|
640
|
+
strict_1.default.ok(comment.includes('Code review comments addressed'));
|
|
641
|
+
});
|
|
642
|
+
(0, node_test_1.it)('omits resolved line when count is zero', () => {
|
|
643
|
+
const comment = (0, run_1.buildReviewCompletionComment)(baseConfig, 0, 2);
|
|
644
|
+
strict_1.default.ok(!comment.includes('Resolved'));
|
|
645
|
+
});
|
|
646
|
+
(0, node_test_1.it)('omits replied line when count is zero', () => {
|
|
647
|
+
const comment = (0, run_1.buildReviewCompletionComment)(baseConfig, 3, 0);
|
|
648
|
+
strict_1.default.ok(!comment.includes('Replied'));
|
|
649
|
+
});
|
|
650
|
+
});
|
|
651
|
+
// ─── parseReplyDirectives ───────────────────────────────────────────────────
|
|
652
|
+
(0, node_test_1.describe)('parseReplyDirectives', () => {
|
|
653
|
+
(0, node_test_1.it)('extracts a single AIDEV-REPLY block', () => {
|
|
654
|
+
const output = 'Some text\n<!-- AIDEV-REPLY thread_abc -->This is my reply<!-- /AIDEV-REPLY -->\nMore text';
|
|
655
|
+
const replies = (0, run_1.parseReplyDirectives)(output);
|
|
656
|
+
strict_1.default.equal(replies.length, 1);
|
|
657
|
+
strict_1.default.equal(replies[0].threadId, 'thread_abc');
|
|
658
|
+
strict_1.default.equal(replies[0].body, 'This is my reply');
|
|
659
|
+
});
|
|
660
|
+
(0, node_test_1.it)('extracts multiple AIDEV-REPLY blocks', () => {
|
|
661
|
+
const output = `<!-- AIDEV-REPLY id1 -->Reply one<!-- /AIDEV-REPLY -->
|
|
662
|
+
Some middle text
|
|
663
|
+
<!-- AIDEV-REPLY id2 -->Reply two<!-- /AIDEV-REPLY -->`;
|
|
664
|
+
const replies = (0, run_1.parseReplyDirectives)(output);
|
|
665
|
+
strict_1.default.equal(replies.length, 2);
|
|
666
|
+
strict_1.default.equal(replies[0].threadId, 'id1');
|
|
667
|
+
strict_1.default.equal(replies[0].body, 'Reply one');
|
|
668
|
+
strict_1.default.equal(replies[1].threadId, 'id2');
|
|
669
|
+
strict_1.default.equal(replies[1].body, 'Reply two');
|
|
670
|
+
});
|
|
671
|
+
(0, node_test_1.it)('returns empty array when no AIDEV-REPLY blocks present', () => {
|
|
672
|
+
const output = 'Just regular agent output with no reply directives';
|
|
673
|
+
const replies = (0, run_1.parseReplyDirectives)(output);
|
|
674
|
+
strict_1.default.equal(replies.length, 0);
|
|
675
|
+
});
|
|
676
|
+
(0, node_test_1.it)('trims whitespace from reply body', () => {
|
|
677
|
+
const output = '<!-- AIDEV-REPLY thread_x -->\n This has whitespace \n<!-- /AIDEV-REPLY -->';
|
|
678
|
+
const replies = (0, run_1.parseReplyDirectives)(output);
|
|
679
|
+
strict_1.default.equal(replies.length, 1);
|
|
680
|
+
strict_1.default.equal(replies[0].body, 'This has whitespace');
|
|
681
|
+
});
|
|
682
|
+
(0, node_test_1.it)('handles multiline reply bodies', () => {
|
|
683
|
+
const output = '<!-- AIDEV-REPLY thread_y -->Line one\nLine two\nLine three<!-- /AIDEV-REPLY -->';
|
|
684
|
+
const replies = (0, run_1.parseReplyDirectives)(output);
|
|
685
|
+
strict_1.default.equal(replies.length, 1);
|
|
686
|
+
strict_1.default.ok(replies[0].body.includes('Line one'));
|
|
687
|
+
strict_1.default.ok(replies[0].body.includes('Line three'));
|
|
688
|
+
});
|
|
689
|
+
(0, node_test_1.it)('handles thread IDs with base64 characters', () => {
|
|
690
|
+
const output = '<!-- AIDEV-REPLY abc+/def= -->Reply<!-- /AIDEV-REPLY -->';
|
|
691
|
+
const replies = (0, run_1.parseReplyDirectives)(output);
|
|
692
|
+
strict_1.default.equal(replies.length, 1);
|
|
693
|
+
strict_1.default.equal(replies[0].threadId, 'abc+/def=');
|
|
694
|
+
});
|
|
695
|
+
});
|
|
696
|
+
// ─── filterUnresolvedByNonAidev ─────────────────────────────────────────────
|
|
697
|
+
(0, node_test_1.describe)('filterUnresolvedByNonAidev', () => {
|
|
698
|
+
function makeThread(id, comments) {
|
|
699
|
+
return { id, path: 'src/file.ts', line: 1, comments };
|
|
700
|
+
}
|
|
701
|
+
(0, node_test_1.it)('includes thread where last comment is from a human', () => {
|
|
702
|
+
const threads = [
|
|
703
|
+
makeThread('t1', [
|
|
704
|
+
{ author: 'alice', body: 'Fix this bug' },
|
|
705
|
+
]),
|
|
706
|
+
];
|
|
707
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, '[aidev]');
|
|
708
|
+
strict_1.default.equal(result.length, 1);
|
|
709
|
+
strict_1.default.equal(result[0].id, 't1');
|
|
710
|
+
});
|
|
711
|
+
(0, node_test_1.it)('filters out thread where last comment is from aidev', () => {
|
|
712
|
+
const threads = [
|
|
713
|
+
makeThread('t1', [
|
|
714
|
+
{ author: 'alice', body: 'Fix this bug' },
|
|
715
|
+
{ author: 'bot', body: '[aidev] I have addressed this issue' },
|
|
716
|
+
]),
|
|
717
|
+
];
|
|
718
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, '[aidev]');
|
|
719
|
+
strict_1.default.equal(result.length, 0);
|
|
720
|
+
});
|
|
721
|
+
(0, node_test_1.it)('handles mixed threads — keeps human-last, filters aidev-last', () => {
|
|
722
|
+
const threads = [
|
|
723
|
+
makeThread('t1', [
|
|
724
|
+
{ author: 'alice', body: 'Please refactor this' },
|
|
725
|
+
]),
|
|
726
|
+
makeThread('t2', [
|
|
727
|
+
{ author: 'alice', body: 'Fix the typo' },
|
|
728
|
+
{ author: 'bot', body: '[aidev] Fixed the typo' },
|
|
729
|
+
]),
|
|
730
|
+
makeThread('t3', [
|
|
731
|
+
{ author: 'bot', body: '[aidev] Done' },
|
|
732
|
+
{ author: 'bob', body: 'Actually, this is still wrong' },
|
|
733
|
+
]),
|
|
734
|
+
];
|
|
735
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, '[aidev]');
|
|
736
|
+
strict_1.default.equal(result.length, 2);
|
|
737
|
+
strict_1.default.deepEqual(result.map((t) => t.id), ['t1', 't3']);
|
|
738
|
+
});
|
|
739
|
+
(0, node_test_1.it)('includes thread with empty comments array', () => {
|
|
740
|
+
const threads = [makeThread('t1', [])];
|
|
741
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, '[aidev]');
|
|
742
|
+
strict_1.default.equal(result.length, 1);
|
|
743
|
+
});
|
|
744
|
+
(0, node_test_1.it)('works with custom comment prefix', () => {
|
|
745
|
+
const threads = [
|
|
746
|
+
makeThread('t1', [
|
|
747
|
+
{ author: 'bot', body: '[mybot] I fixed this' },
|
|
748
|
+
]),
|
|
749
|
+
makeThread('t2', [
|
|
750
|
+
{ author: 'alice', body: 'Needs work' },
|
|
751
|
+
]),
|
|
752
|
+
];
|
|
753
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, '[mybot]');
|
|
754
|
+
strict_1.default.equal(result.length, 1);
|
|
755
|
+
strict_1.default.equal(result[0].id, 't2');
|
|
756
|
+
});
|
|
757
|
+
(0, node_test_1.it)('does not filter when aidev prefix appears mid-comment (not at start)', () => {
|
|
758
|
+
const threads = [
|
|
759
|
+
makeThread('t1', [
|
|
760
|
+
{ author: 'alice', body: 'The [aidev] tool did something wrong' },
|
|
761
|
+
]),
|
|
762
|
+
];
|
|
763
|
+
const result = (0, github_1.filterUnresolvedByNonAidev)(threads, '[aidev]');
|
|
764
|
+
strict_1.default.equal(result.length, 1);
|
|
765
|
+
});
|
|
766
|
+
});
|
|
529
767
|
//# sourceMappingURL=run.test.js.map
|