@qelos/aidev 0.2.8 → 0.2.11

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 (80) hide show
  1. package/.env.aidev.example +51 -37
  2. package/CONTRIBUTING.md +78 -78
  3. package/LICENSE +21 -21
  4. package/README.md +455 -453
  5. package/dist/__tests__/ai-runners.test.js +15 -10
  6. package/dist/__tests__/ai-runners.test.js.map +1 -1
  7. package/dist/__tests__/init.test.js +122 -1
  8. package/dist/__tests__/init.test.js.map +1 -1
  9. package/dist/__tests__/local-provider.test.js +31 -31
  10. package/dist/__tests__/platform.test.js +235 -20
  11. package/dist/__tests__/platform.test.js.map +1 -1
  12. package/dist/__tests__/providers.test.js +413 -21
  13. package/dist/__tests__/providers.test.js.map +1 -1
  14. package/dist/__tests__/run.test.js +19 -0
  15. package/dist/__tests__/run.test.js.map +1 -1
  16. package/dist/ai/antigravity.d.ts +12 -0
  17. package/dist/ai/antigravity.d.ts.map +1 -0
  18. package/dist/ai/antigravity.js +70 -0
  19. package/dist/ai/antigravity.js.map +1 -0
  20. package/dist/ai/codex.d.ts +11 -0
  21. package/dist/ai/codex.d.ts.map +1 -0
  22. package/dist/ai/codex.js +49 -0
  23. package/dist/ai/codex.js.map +1 -0
  24. package/dist/ai/windsurf.d.ts +7 -0
  25. package/dist/ai/windsurf.d.ts.map +1 -1
  26. package/dist/ai/windsurf.js +205 -58
  27. package/dist/ai/windsurf.js.map +1 -1
  28. package/dist/cli.js +2 -0
  29. package/dist/cli.js.map +1 -1
  30. package/dist/commands/help.js +61 -61
  31. package/dist/commands/help.js.map +1 -1
  32. package/dist/commands/init.d.ts +11 -1
  33. package/dist/commands/init.d.ts.map +1 -1
  34. package/dist/commands/init.js +116 -22
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/run.d.ts +4 -0
  37. package/dist/commands/run.d.ts.map +1 -1
  38. package/dist/commands/run.js +155 -117
  39. package/dist/commands/run.js.map +1 -1
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/config.js +16 -1
  42. package/dist/config.js.map +1 -1
  43. package/dist/diagnostics.d.ts.map +1 -1
  44. package/dist/diagnostics.js +1 -0
  45. package/dist/diagnostics.js.map +1 -1
  46. package/dist/github.js +23 -23
  47. package/dist/platform.d.ts +20 -2
  48. package/dist/platform.d.ts.map +1 -1
  49. package/dist/platform.js +74 -3
  50. package/dist/platform.js.map +1 -1
  51. package/dist/providers/assets.d.ts +15 -0
  52. package/dist/providers/assets.d.ts.map +1 -0
  53. package/dist/providers/assets.js +153 -0
  54. package/dist/providers/assets.js.map +1 -0
  55. package/dist/providers/clickup.d.ts +4 -0
  56. package/dist/providers/clickup.d.ts.map +1 -1
  57. package/dist/providers/clickup.js +45 -8
  58. package/dist/providers/clickup.js.map +1 -1
  59. package/dist/providers/index.d.ts.map +1 -1
  60. package/dist/providers/index.js +6 -0
  61. package/dist/providers/index.js.map +1 -1
  62. package/dist/providers/jira.d.ts +11 -0
  63. package/dist/providers/jira.d.ts.map +1 -1
  64. package/dist/providers/jira.js +143 -11
  65. package/dist/providers/jira.js.map +1 -1
  66. package/dist/providers/linear.d.ts +19 -0
  67. package/dist/providers/linear.d.ts.map +1 -0
  68. package/dist/providers/linear.js +214 -0
  69. package/dist/providers/linear.js.map +1 -0
  70. package/dist/providers/monday.d.ts +18 -0
  71. package/dist/providers/monday.d.ts.map +1 -0
  72. package/dist/providers/monday.js +185 -0
  73. package/dist/providers/monday.js.map +1 -0
  74. package/dist/providers/notion.d.ts +21 -0
  75. package/dist/providers/notion.d.ts.map +1 -0
  76. package/dist/providers/notion.js +182 -0
  77. package/dist/providers/notion.js.map +1 -0
  78. package/dist/types.d.ts +11 -0
  79. package/dist/types.d.ts.map +1 -1
  80. package/package.json +50 -50
@@ -1,13 +1,51 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ const fs = __importStar(require("node:fs"));
40
+ const os = __importStar(require("node:os"));
41
+ const path = __importStar(require("node:path"));
6
42
  const node_test_1 = require("node:test");
7
43
  const strict_1 = __importDefault(require("node:assert/strict"));
8
44
  const node_test_2 = require("node:test");
9
45
  const clickup_1 = require("../providers/clickup");
10
46
  const jira_1 = require("../providers/jira");
47
+ const linear_1 = require("../providers/linear");
48
+ const monday_1 = require("../providers/monday");
11
49
  const baseClickUpConfig = {
12
50
  clickupApiKey: 'test-key',
13
51
  clickupTeamId: 'team1',
@@ -22,15 +60,108 @@ const baseJiraConfig = {
22
60
  jiraLabel: 'aidev',
23
61
  assigneeTag: '',
24
62
  };
25
- function mockFetch(body) {
26
- node_test_2.mock.method(globalThis, 'fetch', async () => ({
63
+ const baseLinearConfig = {
64
+ linearApiKey: 'lin_api_test',
65
+ linearTeamId: 'team-uuid-123',
66
+ linearLabel: 'aidev',
67
+ linearPendingStatus: 'Backlog',
68
+ linearInReviewStatus: 'In Review',
69
+ assigneeTag: '',
70
+ };
71
+ const baseMondayConfig = {
72
+ mondayApiToken: 'test-token',
73
+ mondayBoardId: '12345',
74
+ mondayStatusColumnId: 'status',
75
+ mondayGroupId: 'topics',
76
+ clickupPendingStatus: 'Working on it',
77
+ clickupInReviewStatus: 'Done',
78
+ };
79
+ function jsonResponse(body) {
80
+ return {
27
81
  ok: true,
28
82
  status: 200,
83
+ statusText: 'OK',
29
84
  text: async () => JSON.stringify(body),
30
85
  json: async () => body,
31
- }));
86
+ arrayBuffer: async () => Buffer.from(JSON.stringify(body)),
87
+ };
88
+ }
89
+ function binaryResponse(text) {
90
+ return {
91
+ ok: true,
92
+ status: 200,
93
+ statusText: 'OK',
94
+ text: async () => text,
95
+ json: async () => ({ text }),
96
+ arrayBuffer: async () => Buffer.from(text),
97
+ };
98
+ }
99
+ function mockFetch(body) {
100
+ node_test_2.mock.method(globalThis, 'fetch', async () => jsonResponse(body));
101
+ }
102
+ function withTempCwd(fn) {
103
+ const previous = process.cwd();
104
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'aidev-provider-test-'));
105
+ process.chdir(tmpDir);
106
+ return fn(tmpDir).finally(() => {
107
+ process.chdir(previous);
108
+ fs.rmSync(tmpDir, { recursive: true, force: true });
109
+ });
110
+ }
111
+ function mockJiraCommentsFetch(comments, attachments = []) {
112
+ node_test_2.mock.method(globalThis, 'fetch', async (input) => {
113
+ const url = String(input);
114
+ if (url.includes('?fields=attachment')) {
115
+ return jsonResponse({ fields: { attachment: attachments } });
116
+ }
117
+ return jsonResponse({ comments });
118
+ });
32
119
  }
33
120
  // ─── ClickUpProvider.getComments ─────────────────────────────────────────────
121
+ (0, node_test_1.describe)('ClickUpProvider.fetchTasks', () => {
122
+ (0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
123
+ (0, node_test_1.it)('downloads task attachments and appends local asset paths to the description', async () => {
124
+ await withTempCwd(async (cwd) => {
125
+ node_test_2.mock.method(globalThis, 'fetch', async (input, init) => {
126
+ const url = String(input);
127
+ if (url.includes('/team/team1/task')) {
128
+ return jsonResponse({
129
+ tasks: [
130
+ {
131
+ id: 'task1',
132
+ name: 'Task with file',
133
+ description: 'Handle the attached screenshot.',
134
+ status: { status: 'open' },
135
+ priority: { id: '1' },
136
+ url: 'https://app.clickup.com/t/task1',
137
+ tags: [{ name: 'aidev' }],
138
+ },
139
+ ],
140
+ });
141
+ }
142
+ if (url.endsWith('/task/task1')) {
143
+ return jsonResponse({
144
+ attachments: [
145
+ {
146
+ id: 'att1',
147
+ title: 'Screenshot 1.png',
148
+ url: 'https://files.example/screenshot.png',
149
+ },
150
+ ],
151
+ });
152
+ }
153
+ strict_1.default.equal(init?.headers instanceof Object ? init.headers.Authorization : undefined, 'test-key');
154
+ return binaryResponse('image-bytes');
155
+ });
156
+ const provider = new clickup_1.ClickUpProvider(baseClickUpConfig);
157
+ const tasks = await provider.fetchTasks();
158
+ strict_1.default.equal(tasks.length, 1);
159
+ strict_1.default.match(tasks[0].description, /Local asset files/);
160
+ strict_1.default.match(tasks[0].description, /\.aidev\/assets\/task1\/att1-Screenshot-1\.png/);
161
+ strict_1.default.ok(fs.existsSync(path.join(cwd, '.aidev', 'assets', 'task1', 'att1-Screenshot-1.png')));
162
+ });
163
+ });
164
+ });
34
165
  (0, node_test_1.describe)('ClickUpProvider.getComments', () => {
35
166
  (0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
36
167
  (0, node_test_1.it)('sorts newest-first API response into oldest-first (ascending by date)', async () => {
@@ -115,39 +246,300 @@ function mockFetch(body) {
115
246
  };
116
247
  }
117
248
  (0, node_test_1.it)('extracts plain text from ADF body', async () => {
118
- mockFetch({
119
- comments: [
120
- { id: '1', body: adfComment('hello world'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T10:00:00.000Z' },
121
- ],
122
- });
249
+ mockJiraCommentsFetch([
250
+ { id: '1', body: adfComment('hello world'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T10:00:00.000Z' },
251
+ ]);
123
252
  const provider = new jira_1.JiraProvider(baseJiraConfig);
124
253
  const comments = await provider.getComments('PROJ-1');
125
254
  strict_1.default.equal(comments[0].text, 'hello world');
126
255
  });
127
256
  (0, node_test_1.it)('sorts out-of-order API response into ascending date order', async () => {
128
- mockFetch({
129
- comments: [
130
- { id: '3', body: adfComment('aidev-continue'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T12:00:00.000Z' },
131
- { id: '1', body: adfComment('[aidev] Starting'), author: { displayName: 'bot', accountId: 'b1' }, created: '2024-01-01T10:00:00.000Z' },
132
- { id: '2', body: adfComment('User reply'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T11:00:00.000Z' },
133
- ],
134
- });
257
+ mockJiraCommentsFetch([
258
+ { id: '3', body: adfComment('aidev-continue'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T12:00:00.000Z' },
259
+ { id: '1', body: adfComment('[aidev] Starting'), author: { displayName: 'bot', accountId: 'b1' }, created: '2024-01-01T10:00:00.000Z' },
260
+ { id: '2', body: adfComment('User reply'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T11:00:00.000Z' },
261
+ ]);
135
262
  const provider = new jira_1.JiraProvider(baseJiraConfig);
136
263
  const comments = await provider.getComments('PROJ-1');
137
264
  strict_1.default.equal(comments[0].text, '[aidev] Starting'); // oldest first
138
265
  strict_1.default.equal(comments[2].text, 'aidev-continue'); // newest last
139
266
  });
140
267
  (0, node_test_1.it)('trigger word is detected when newest comment contains it', async () => {
141
- mockFetch({
142
- comments: [
143
- { id: '1', body: adfComment('[aidev] Clarification needed'), author: { displayName: 'bot', accountId: 'b1' }, created: '2024-01-01T10:00:00.000Z' },
144
- { id: '2', body: adfComment('aidev-continue'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T11:00:00.000Z' },
145
- ],
146
- });
268
+ mockJiraCommentsFetch([
269
+ { id: '1', body: adfComment('[aidev] Clarification needed'), author: { displayName: 'bot', accountId: 'b1' }, created: '2024-01-01T10:00:00.000Z' },
270
+ { id: '2', body: adfComment('aidev-continue'), author: { displayName: 'Alice', accountId: 'a1' }, created: '2024-01-01T11:00:00.000Z' },
271
+ ]);
147
272
  const provider = new jira_1.JiraProvider(baseJiraConfig);
148
273
  const comments = await provider.getComments('PROJ-1');
149
274
  const last = comments[comments.length - 1];
150
275
  strict_1.default.ok(last.text.toLowerCase().includes('aidev-continue'));
151
276
  });
277
+ (0, node_test_1.it)('appends local asset paths when a comment links a native Jira attachment', async () => {
278
+ await withTempCwd(async (cwd) => {
279
+ node_test_2.mock.method(globalThis, 'fetch', async (input) => {
280
+ const url = String(input);
281
+ if (url.includes('?fields=attachment')) {
282
+ return jsonResponse({
283
+ fields: {
284
+ attachment: [
285
+ {
286
+ id: '101',
287
+ filename: 'trace.json',
288
+ content: 'https://example.atlassian.net/rest/api/3/attachment/content/101',
289
+ },
290
+ ],
291
+ },
292
+ });
293
+ }
294
+ if (url.endsWith('/comment')) {
295
+ return jsonResponse({
296
+ comments: [
297
+ {
298
+ id: '1',
299
+ body: {
300
+ type: 'doc',
301
+ version: 1,
302
+ content: [
303
+ {
304
+ type: 'paragraph',
305
+ content: [
306
+ { type: 'text', text: 'Please inspect ' },
307
+ {
308
+ type: 'text',
309
+ text: 'the trace',
310
+ marks: [
311
+ {
312
+ type: 'link',
313
+ attrs: {
314
+ href: 'https://example.atlassian.net/rest/api/3/attachment/content/101',
315
+ },
316
+ },
317
+ ],
318
+ },
319
+ ],
320
+ },
321
+ ],
322
+ },
323
+ author: { displayName: 'Alice', accountId: 'a1' },
324
+ created: '2024-01-01T10:00:00.000Z',
325
+ },
326
+ ],
327
+ });
328
+ }
329
+ return binaryResponse('{"trace":true}');
330
+ });
331
+ const provider = new jira_1.JiraProvider(baseJiraConfig);
332
+ const comments = await provider.getComments('PROJ-1');
333
+ strict_1.default.match(comments[0].text, /Local asset files referenced by this comment/);
334
+ strict_1.default.match(comments[0].text, /\.aidev\/assets\/PROJ-1\/101-trace\.json/);
335
+ strict_1.default.ok(fs.existsSync(path.join(cwd, '.aidev', 'assets', 'PROJ-1', '101-trace.json')));
336
+ });
337
+ });
338
+ });
339
+ (0, node_test_1.describe)('JiraProvider.fetchTasks', () => {
340
+ (0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
341
+ (0, node_test_1.it)('downloads issue attachments and appends local asset paths to the description', async () => {
342
+ await withTempCwd(async (cwd) => {
343
+ node_test_2.mock.method(globalThis, 'fetch', async (input) => {
344
+ const url = String(input);
345
+ if (url.includes('/search/jql')) {
346
+ return jsonResponse({
347
+ issues: [
348
+ {
349
+ id: '1001',
350
+ key: 'PROJ-1',
351
+ fields: {
352
+ summary: 'Handle uploaded trace',
353
+ description: {
354
+ type: 'doc',
355
+ version: 1,
356
+ content: [{ type: 'paragraph', content: [{ type: 'text', text: 'Review the trace file.' }] }],
357
+ },
358
+ status: { name: 'Open' },
359
+ priority: { id: '2' },
360
+ labels: ['aidev'],
361
+ self: 'https://example.atlassian.net/rest/api/3/issue/1001',
362
+ attachment: [
363
+ {
364
+ id: '101',
365
+ filename: 'trace.json',
366
+ content: 'https://example.atlassian.net/rest/api/3/attachment/content/101',
367
+ },
368
+ ],
369
+ },
370
+ },
371
+ ],
372
+ });
373
+ }
374
+ return binaryResponse('{"trace":true}');
375
+ });
376
+ const provider = new jira_1.JiraProvider(baseJiraConfig);
377
+ const tasks = await provider.fetchTasks();
378
+ strict_1.default.equal(tasks.length, 1);
379
+ strict_1.default.match(tasks[0].description, /Local asset files/);
380
+ strict_1.default.match(tasks[0].description, /\.aidev\/assets\/PROJ-1\/101-trace\.json/);
381
+ strict_1.default.ok(fs.existsSync(path.join(cwd, '.aidev', 'assets', 'PROJ-1', '101-trace.json')));
382
+ });
383
+ });
384
+ });
385
+ // ─── LinearProvider ─────────────────────────────────────────────────────────
386
+ (0, node_test_1.describe)('LinearProvider.fetchTasks', () => {
387
+ (0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
388
+ (0, node_test_1.it)('returns issues with identifier as id and state name as status', async () => {
389
+ node_test_2.mock.method(globalThis, 'fetch', async (_url, init) => {
390
+ const body = init?.body ? JSON.parse(init.body) : {};
391
+ if (body.query?.includes('workflowStates')) {
392
+ return jsonResponse({
393
+ data: { workflowStates: { nodes: [{ id: 's1', name: 'Backlog', type: 'unstarted' }, { id: 's2', name: 'In Review', type: 'started' }] } },
394
+ });
395
+ }
396
+ if (body.query?.includes('issues')) {
397
+ return jsonResponse({
398
+ data: {
399
+ issues: {
400
+ nodes: [
401
+ {
402
+ id: 'issue-uuid-1',
403
+ identifier: 'ENG-42',
404
+ title: 'Fix login',
405
+ description: 'Fix the login flow.',
406
+ url: 'https://linear.app/org/issue/ENG-42',
407
+ state: { id: 's1', name: 'Backlog', type: 'unstarted' },
408
+ priority: 2,
409
+ labels: { nodes: [{ name: 'aidev' }] },
410
+ },
411
+ ],
412
+ },
413
+ },
414
+ });
415
+ }
416
+ return jsonResponse({ data: {} });
417
+ });
418
+ const provider = new linear_1.LinearProvider(baseLinearConfig);
419
+ const tasks = await provider.fetchTasks();
420
+ strict_1.default.equal(tasks.length, 1);
421
+ strict_1.default.equal(tasks[0].id, 'ENG-42');
422
+ strict_1.default.equal(tasks[0].name, 'Fix login');
423
+ strict_1.default.equal(tasks[0].description, 'Fix the login flow.');
424
+ strict_1.default.equal(tasks[0].status, 'Backlog');
425
+ strict_1.default.equal(tasks[0].url, 'https://linear.app/org/issue/ENG-42');
426
+ strict_1.default.deepEqual(tasks[0].tags, ['aidev']);
427
+ strict_1.default.equal(tasks[0].priority, 2);
428
+ });
429
+ });
430
+ (0, node_test_1.describe)('LinearProvider.getComments', () => {
431
+ (0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
432
+ (0, node_test_1.it)('returns comments sorted ascending by date', async () => {
433
+ node_test_2.mock.method(globalThis, 'fetch', async (_url, init) => {
434
+ const body = init?.body ? JSON.parse(init.body) : {};
435
+ if (body.query?.includes('issues') && body.variables?.filter?.identifier) {
436
+ return jsonResponse({ data: { issues: { nodes: [{ id: 'issue-uuid-1' }] } } });
437
+ }
438
+ if (body.query?.includes('issue(id:')) {
439
+ return jsonResponse({
440
+ data: {
441
+ issue: {
442
+ comments: {
443
+ nodes: [
444
+ { id: 'c1', body: '[aidev] Starting', user: { name: 'Bot', id: 'u1' }, createdAt: '2024-01-01T10:00:00.000Z' },
445
+ { id: 'c2', body: 'aidev-continue', user: { name: 'Alice', id: 'u2' }, createdAt: '2024-01-01T11:00:00.000Z' },
446
+ ],
447
+ },
448
+ },
449
+ },
450
+ });
451
+ }
452
+ return jsonResponse({ data: {} });
453
+ });
454
+ const provider = new linear_1.LinearProvider(baseLinearConfig);
455
+ const comments = await provider.getComments('ENG-42');
456
+ strict_1.default.equal(comments.length, 2);
457
+ strict_1.default.equal(comments[0].text, '[aidev] Starting');
458
+ strict_1.default.equal(comments[1].text, 'aidev-continue');
459
+ strict_1.default.equal(comments[1].author, 'Alice');
460
+ });
461
+ });
462
+ // ─── MondayProvider ───────────────────────────────────────────────────────────
463
+ (0, node_test_1.describe)('MondayProvider.fetchTasks', () => {
464
+ (0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
465
+ (0, node_test_1.it)('returns items whose status matches pending or in-review', async () => {
466
+ node_test_2.mock.method(globalThis, 'fetch', async (_input, init) => {
467
+ const body = typeof (init?.body) === 'string' ? JSON.parse(init.body) : {};
468
+ const query = body.query;
469
+ if (query.includes('boards') && query.includes('items_page')) {
470
+ return jsonResponse({
471
+ data: {
472
+ boards: [
473
+ {
474
+ items_page: {
475
+ cursor: null,
476
+ items: [
477
+ {
478
+ id: '1001',
479
+ name: 'Task one',
480
+ url: 'https://example.monday.com/boards/12345/pulses/1001',
481
+ description: { description: 'Do something' },
482
+ column_values: [
483
+ { id: 'status', value: '{"label":"Working on it"}', text: 'Working on it' },
484
+ ],
485
+ },
486
+ {
487
+ id: '1002',
488
+ name: 'Task two',
489
+ url: 'https://example.monday.com/boards/12345/pulses/1002',
490
+ description: { description: '' },
491
+ column_values: [
492
+ { id: 'status', value: '{"label":"Done"}', text: 'Done' },
493
+ ],
494
+ },
495
+ {
496
+ id: '1003',
497
+ name: 'Task three',
498
+ url: '',
499
+ description: {},
500
+ column_values: [
501
+ { id: 'status', value: '{}', text: 'Stuck' },
502
+ ],
503
+ },
504
+ ],
505
+ },
506
+ },
507
+ ],
508
+ },
509
+ });
510
+ }
511
+ return jsonResponse({});
512
+ });
513
+ const provider = new monday_1.MondayProvider(baseMondayConfig);
514
+ const tasks = await provider.fetchTasks();
515
+ strict_1.default.equal(tasks.length, 2);
516
+ strict_1.default.equal(tasks[0].id, '1001');
517
+ strict_1.default.equal(tasks[0].name, 'Task one');
518
+ strict_1.default.equal(tasks[0].status, 'Working on it');
519
+ strict_1.default.equal(tasks[1].id, '1002');
520
+ strict_1.default.equal(tasks[1].status, 'Done');
521
+ });
522
+ });
523
+ (0, node_test_1.describe)('MondayProvider.getComments', () => {
524
+ (0, node_test_1.afterEach)(() => node_test_2.mock.restoreAll());
525
+ (0, node_test_1.it)('returns updates sorted ascending by date', async () => {
526
+ node_test_2.mock.method(globalThis, 'fetch', async () => jsonResponse({
527
+ data: {
528
+ items: [
529
+ {
530
+ updates: [
531
+ { id: 'u2', text_body: 'Newest', body: '<p>Newest</p>', created_at: '2024-01-02T12:00:00Z', creator: { id: 'u1', name: 'Alice' } },
532
+ { id: 'u1', text_body: 'Oldest', body: '<p>Oldest</p>', created_at: '2024-01-01T10:00:00Z', creator: { id: 'u1', name: 'Alice' } },
533
+ ],
534
+ },
535
+ ],
536
+ },
537
+ }));
538
+ const provider = new monday_1.MondayProvider(baseMondayConfig);
539
+ const comments = await provider.getComments('1001');
540
+ strict_1.default.equal(comments.length, 2);
541
+ strict_1.default.equal(comments[0].text, 'Oldest');
542
+ strict_1.default.equal(comments[1].text, 'Newest');
543
+ });
152
544
  });
153
545
  //# sourceMappingURL=providers.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.test.js","sourceRoot":"","sources":["../../src/__tests__/providers.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.test.js","sourceRoot":"","sources":["../../src/__tests__/providers.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ 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
9
  const baseConfig = {
10
+ provider: 'clickup',
10
11
  githubRepo: 'owner/repo',
11
12
  githubBaseBranch: 'main',
12
13
  clickupInReviewStatus: 'review',
@@ -328,6 +329,24 @@ function makeTask(id, priority) {
328
329
  strict_1.default.equal(sorted[0].id, 'a');
329
330
  });
330
331
  });
332
+ // ─── getRunSkipReason ─────────────────────────────────────────────────────────
333
+ (0, node_test_1.describe)('getRunSkipReason', () => {
334
+ (0, node_test_1.it)('allows open tasks for the default all filter', () => {
335
+ strict_1.default.equal((0, run_1.getRunSkipReason)('open', 'all', 'pending'), null);
336
+ });
337
+ (0, node_test_1.it)('allows configured pending tasks for the default all filter', () => {
338
+ strict_1.default.equal((0, run_1.getRunSkipReason)('Pending Review', 'all', 'pending review'), null);
339
+ });
340
+ (0, node_test_1.it)('skips statuses that are neither open nor pending', () => {
341
+ strict_1.default.equal((0, run_1.getRunSkipReason)('failed', 'all', 'pending'), 'status "failed" is not open or pending');
342
+ });
343
+ (0, node_test_1.it)('skips pending tasks for the open filter', () => {
344
+ strict_1.default.equal((0, run_1.getRunSkipReason)('pending', 'open', 'pending'), 'filter=open but task is pending');
345
+ });
346
+ (0, node_test_1.it)('skips open tasks for the pending filter', () => {
347
+ strict_1.default.equal((0, run_1.getRunSkipReason)('open', 'pending', 'pending'), 'filter=pending but task is not pending');
348
+ });
349
+ });
331
350
  // ─── buildConflictResolutionPrompt ───────────────────────────────────────────
332
351
  (0, node_test_1.describe)('buildConflictResolutionPrompt', () => {
333
352
  const task = {