@qelos/aidev 0.3.0 → 0.4.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 (61) hide show
  1. package/.env.aidev.example +81 -62
  2. package/CONTRIBUTING.md +78 -78
  3. package/LICENSE +21 -21
  4. package/README.md +499 -467
  5. package/dist/__tests__/clickup-format.test.d.ts +2 -0
  6. package/dist/__tests__/clickup-format.test.d.ts.map +1 -0
  7. package/dist/__tests__/clickup-format.test.js +256 -0
  8. package/dist/__tests__/clickup-format.test.js.map +1 -0
  9. package/dist/__tests__/hooks.test.d.ts +2 -0
  10. package/dist/__tests__/hooks.test.d.ts.map +1 -0
  11. package/dist/__tests__/hooks.test.js +329 -0
  12. package/dist/__tests__/hooks.test.js.map +1 -0
  13. package/dist/__tests__/init.test.js +33 -0
  14. package/dist/__tests__/init.test.js.map +1 -1
  15. package/dist/__tests__/local-provider.test.js +31 -31
  16. package/dist/__tests__/platform.test.js +5 -5
  17. package/dist/__tests__/providers.test.js +166 -0
  18. package/dist/__tests__/providers.test.js.map +1 -1
  19. package/dist/__tests__/run.test.js +21 -8
  20. package/dist/__tests__/run.test.js.map +1 -1
  21. package/dist/cli.js +5 -1
  22. package/dist/cli.js.map +1 -1
  23. package/dist/commands/help.d.ts.map +1 -1
  24. package/dist/commands/help.js +67 -61
  25. package/dist/commands/help.js.map +1 -1
  26. package/dist/commands/init.d.ts +1 -0
  27. package/dist/commands/init.d.ts.map +1 -1
  28. package/dist/commands/init.js +125 -0
  29. package/dist/commands/init.js.map +1 -1
  30. package/dist/commands/run.d.ts +2 -1
  31. package/dist/commands/run.d.ts.map +1 -1
  32. package/dist/commands/run.js +248 -119
  33. package/dist/commands/run.js.map +1 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +16 -1
  36. package/dist/config.js.map +1 -1
  37. package/dist/github.js +23 -23
  38. package/dist/hooks.d.ts +106 -0
  39. package/dist/hooks.d.ts.map +1 -0
  40. package/dist/hooks.js +146 -0
  41. package/dist/hooks.js.map +1 -0
  42. package/dist/providers/clickup-format.d.ts +16 -0
  43. package/dist/providers/clickup-format.d.ts.map +1 -0
  44. package/dist/providers/clickup-format.js +255 -0
  45. package/dist/providers/clickup-format.js.map +1 -0
  46. package/dist/providers/clickup.d.ts.map +1 -1
  47. package/dist/providers/clickup.js +8 -6
  48. package/dist/providers/clickup.js.map +1 -1
  49. package/dist/providers/index.d.ts.map +1 -1
  50. package/dist/providers/index.js +2 -1
  51. package/dist/providers/index.js.map +1 -1
  52. package/dist/providers/linear.js +70 -70
  53. package/dist/providers/monday.js +39 -39
  54. package/dist/providers/trello.d.ts +32 -0
  55. package/dist/providers/trello.d.ts.map +1 -0
  56. package/dist/providers/trello.js +227 -0
  57. package/dist/providers/trello.js.map +1 -0
  58. package/dist/types.d.ts +12 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/package.json +51 -50
  61. package/scripts/run-tests.cjs +18 -18
@@ -53,21 +53,21 @@ class MondayProvider {
53
53
  }
54
54
  async fetchTasks() {
55
55
  logger_1.logger.debug(`Fetching items from Monday board ${this.boardId}`);
56
- const query = `
57
- query ($boardId: ID!, $limit: Int!) {
58
- boards(ids: [$boardId]) {
59
- items_page(limit: $limit) {
60
- cursor
61
- items {
62
- id
63
- name
64
- url
65
- description { description }
66
- column_values { id value text }
67
- }
68
- }
69
- }
70
- }
56
+ const query = `
57
+ query ($boardId: ID!, $limit: Int!) {
58
+ boards(ids: [$boardId]) {
59
+ items_page(limit: $limit) {
60
+ cursor
61
+ items {
62
+ id
63
+ name
64
+ url
65
+ description { description }
66
+ column_values { id value text }
67
+ }
68
+ }
69
+ }
70
+ }
71
71
  `;
72
72
  const data = await this.graphql(query, {
73
73
  boardId: this.boardId,
@@ -97,10 +97,10 @@ class MondayProvider {
97
97
  }
98
98
  async postComment(taskId, text) {
99
99
  logger_1.logger.debug(`Posting update to Monday item ${taskId}`);
100
- const mutation = `
101
- mutation ($itemId: ID!, $body: String!) {
102
- create_update(item_id: $itemId, body: $body) { id }
103
- }
100
+ const mutation = `
101
+ mutation ($itemId: ID!, $body: String!) {
102
+ create_update(item_id: $itemId, body: $body) { id }
103
+ }
104
104
  `;
105
105
  await this.graphql(mutation, {
106
106
  itemId: taskId,
@@ -109,18 +109,18 @@ class MondayProvider {
109
109
  }
110
110
  async getComments(taskId) {
111
111
  logger_1.logger.debug(`Fetching updates for Monday item ${taskId}`);
112
- const query = `
113
- query ($itemId: ID!) {
114
- items(ids: [$itemId]) {
115
- updates(limit: 100) {
116
- id
117
- text_body
118
- body
119
- created_at
120
- creator { id name }
121
- }
122
- }
123
- }
112
+ const query = `
113
+ query ($itemId: ID!) {
114
+ items(ids: [$itemId]) {
115
+ updates(limit: 100) {
116
+ id
117
+ text_body
118
+ body
119
+ created_at
120
+ creator { id name }
121
+ }
122
+ }
123
+ }
124
124
  `;
125
125
  const data = await this.graphql(query, { itemId: taskId });
126
126
  const item = data.items?.[0];
@@ -137,10 +137,10 @@ class MondayProvider {
137
137
  }
138
138
  async updateStatus(taskId, status) {
139
139
  logger_1.logger.debug(`Updating Monday item ${taskId} status to "${status}"`);
140
- const mutation = `
141
- mutation ($boardId: ID!, $itemId: ID!, $columnId: String!, $value: String!) {
142
- change_column_value(board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) { id }
143
- }
140
+ const mutation = `
141
+ mutation ($boardId: ID!, $itemId: ID!, $columnId: String!, $value: String!) {
142
+ change_column_value(board_id: $boardId, item_id: $itemId, column_id: $columnId, value: $value) { id }
143
+ }
144
144
  `;
145
145
  const value = JSON.stringify({ label: status });
146
146
  await this.graphql(mutation, {
@@ -152,10 +152,10 @@ class MondayProvider {
152
152
  }
153
153
  async createTask(params) {
154
154
  const groupId = this.groupId || 'topics';
155
- const mutation = `
156
- mutation ($boardId: ID!, $groupId: String!, $itemName: String!, $columnValues: JSON) {
157
- create_item(board_id: $boardId, group_id: $groupId, item_name: $itemName, column_values: $columnValues) { id }
158
- }
155
+ const mutation = `
156
+ mutation ($boardId: ID!, $groupId: String!, $itemName: String!, $columnValues: JSON) {
157
+ create_item(board_id: $boardId, group_id: $groupId, item_name: $itemName, column_values: $columnValues) { id }
158
+ }
159
159
  `;
160
160
  const columnValues = {};
161
161
  if (this.statusColumnId) {
@@ -0,0 +1,32 @@
1
+ import { Task, Comment, Config, CreateTaskParams, CreateTaskResult } from '../types';
2
+ import { TaskProvider } from './base';
3
+ export declare class TrelloProvider implements TaskProvider {
4
+ private readonly apiKey;
5
+ private readonly token;
6
+ private readonly boardId;
7
+ private readonly labelName;
8
+ private readonly openSemantic;
9
+ private readonly pendingSemantic;
10
+ private readonly inReviewSemantic;
11
+ private readonly openListName;
12
+ private readonly pendingListName;
13
+ private readonly inProgressListName;
14
+ private readonly inReviewListName;
15
+ constructor(config: Config);
16
+ private authUrl;
17
+ private request;
18
+ private fetchLists;
19
+ private findListId;
20
+ private listIdToSemantic;
21
+ private cardHasLabel;
22
+ private fetchMyMemberId;
23
+ private fetchCardAttachments;
24
+ /** Trello attachment URLs may require key/token when the board is private. */
25
+ private attachDownloadUrl;
26
+ fetchTasks(): Promise<Task[]>;
27
+ postComment(taskId: string, text: string): Promise<void>;
28
+ getComments(taskId: string): Promise<Comment[]>;
29
+ updateStatus(taskId: string, status: string): Promise<void>;
30
+ createTask(params: CreateTaskParams): Promise<CreateTaskResult>;
31
+ }
32
+ //# sourceMappingURL=trello.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trello.d.ts","sourceRoot":"","sources":["../../src/providers/trello.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA4CtC,qBAAa,cAAe,YAAW,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,MAAM,EAAE,MAAM;IAc1B,OAAO,CAAC,OAAO;YAOD,OAAO;YA4CP,UAAU;IAMxB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,YAAY;YAMN,eAAe;YAKf,oBAAoB;IAsBlC,8EAA8E;IAC9E,OAAO,CAAC,iBAAiB;IAanB,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IA6C7B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAuB/C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B3D,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwCtE"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrelloProvider = void 0;
4
+ const logger_1 = require("../logger");
5
+ const assets_1 = require("./assets");
6
+ const TRELLO_API = 'https://api.trello.com/1';
7
+ class TrelloProvider {
8
+ constructor(config) {
9
+ this.apiKey = config.trelloApiKey;
10
+ this.token = config.trelloToken;
11
+ this.boardId = config.trelloBoardId;
12
+ this.labelName = config.trelloLabel;
13
+ this.openSemantic = config.trelloOpenStatus || 'open';
14
+ this.pendingSemantic = config.trelloPendingStatus || 'pending';
15
+ this.inReviewSemantic = config.trelloInReviewStatus || 'review';
16
+ this.openListName = config.trelloOpenList || 'To Do';
17
+ this.pendingListName = config.trelloPendingList || 'Blocked';
18
+ this.inProgressListName = config.trelloInProgressList || 'Doing';
19
+ this.inReviewListName = config.trelloInReviewList || 'In Review';
20
+ }
21
+ authUrl(path) {
22
+ const url = new URL(path.startsWith('http') ? path : `${TRELLO_API}${path.startsWith('/') ? path : `/${path}`}`);
23
+ url.searchParams.set('key', this.apiKey);
24
+ url.searchParams.set('token', this.token);
25
+ return url.toString();
26
+ }
27
+ async request(path, options = {}) {
28
+ const url = this.authUrl(path);
29
+ const maxAttempts = 3;
30
+ let lastError;
31
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
32
+ try {
33
+ const res = await fetch(url, options);
34
+ if (!res.ok) {
35
+ const body = await res.text();
36
+ throw new Error(`Trello API error ${res.status}: ${body}`);
37
+ }
38
+ const text = await res.text();
39
+ if (!text)
40
+ return undefined;
41
+ try {
42
+ return JSON.parse(text);
43
+ }
44
+ catch {
45
+ throw new Error(`Trello API: expected JSON, got: ${text.slice(0, 200)}`);
46
+ }
47
+ }
48
+ catch (err) {
49
+ lastError = err instanceof Error ? err : new Error(String(err));
50
+ const isNetworkError = lastError.message.includes('fetch failed')
51
+ || lastError.message.includes('ECONNRESET')
52
+ || lastError.message.includes('ETIMEDOUT')
53
+ || lastError.message.includes('UND_ERR_SOCKET');
54
+ if (!isNetworkError || attempt === maxAttempts) {
55
+ const cause = err?.cause;
56
+ const detail = cause instanceof Error ? `: ${cause.message}` : '';
57
+ throw new Error(`Trello API request failed (${options.method || 'GET'} ${path})${detail}`);
58
+ }
59
+ const delay = attempt * 1000;
60
+ logger_1.logger.debug(`Fetch attempt ${attempt}/${maxAttempts} failed, retrying in ${delay}ms...`);
61
+ await new Promise((resolve) => setTimeout(resolve, delay));
62
+ }
63
+ }
64
+ throw lastError;
65
+ }
66
+ async fetchLists() {
67
+ return this.request(`/boards/${encodeURIComponent(this.boardId)}/lists?fields=id,name`);
68
+ }
69
+ findListId(lists, displayName) {
70
+ const want = displayName.trim().toLowerCase();
71
+ const found = lists.find((l) => l.name.trim().toLowerCase() === want);
72
+ if (!found) {
73
+ const names = lists.map((l) => `"${l.name}"`).join(', ');
74
+ throw new Error(`Trello board ${this.boardId}: no list named "${displayName}". Available lists: ${names || '(none)'}`);
75
+ }
76
+ return found.id;
77
+ }
78
+ listIdToSemantic(listId, openListId, pendingListId) {
79
+ if (listId === openListId)
80
+ return this.openSemantic.toLowerCase();
81
+ if (listId === pendingListId)
82
+ return this.pendingSemantic.toLowerCase();
83
+ return null;
84
+ }
85
+ cardHasLabel(card) {
86
+ if (this.labelName === '*')
87
+ return true;
88
+ const want = this.labelName.trim().toLowerCase();
89
+ return card.labels.some((l) => l.name.trim().toLowerCase() === want);
90
+ }
91
+ async fetchMyMemberId() {
92
+ const me = await this.request('/members/me?fields=id');
93
+ return me.id;
94
+ }
95
+ async fetchCardAttachments(cardId) {
96
+ const attachments = await this.request(`/cards/${encodeURIComponent(cardId)}/attachments?fields=id,name,url`);
97
+ const native = attachments
98
+ .filter((a) => Boolean(a.url))
99
+ .map((a) => ({
100
+ id: a.id,
101
+ name: a.name,
102
+ url: this.attachDownloadUrl(a.url),
103
+ }));
104
+ return (0, assets_1.downloadAttachments)(cardId, native, {});
105
+ }
106
+ /** Trello attachment URLs may require key/token when the board is private. */
107
+ attachDownloadUrl(url) {
108
+ try {
109
+ const u = new URL(url);
110
+ if (u.hostname.includes('trello.com')) {
111
+ u.searchParams.set('key', this.apiKey);
112
+ u.searchParams.set('token', this.token);
113
+ }
114
+ return u.toString();
115
+ }
116
+ catch {
117
+ return url;
118
+ }
119
+ }
120
+ async fetchTasks() {
121
+ logger_1.logger.debug(`Fetching Trello cards on board ${this.boardId} with label "${this.labelName}" (assigned to token user)`);
122
+ const [lists, myId] = await Promise.all([this.fetchLists(), this.fetchMyMemberId()]);
123
+ const openListId = this.findListId(lists, this.openListName);
124
+ const pendingListId = this.findListId(lists, this.pendingListName);
125
+ const cards = await this.request(`/boards/${encodeURIComponent(this.boardId)}/cards?fields=id,name,desc,url,idList,idMembers,labels&labels=true`);
126
+ const eligible = cards.filter((c) => {
127
+ if (!c.idMembers.includes(myId))
128
+ return false;
129
+ if (!this.cardHasLabel(c))
130
+ return false;
131
+ const sem = this.listIdToSemantic(c.idList, openListId, pendingListId);
132
+ return sem !== null;
133
+ });
134
+ return Promise.all(eligible.map(async (c) => {
135
+ let attachments = [];
136
+ try {
137
+ attachments = await this.fetchCardAttachments(c.id);
138
+ }
139
+ catch (err) {
140
+ logger_1.logger.warn(`[${c.id}] Failed to fetch Trello attachments: ${err instanceof Error ? err.message : String(err)}`);
141
+ }
142
+ const sem = this.listIdToSemantic(c.idList, openListId, pendingListId);
143
+ return {
144
+ id: c.id,
145
+ name: c.name,
146
+ description: (0, assets_1.appendAttachmentPaths)(c.desc || '', attachments),
147
+ status: sem,
148
+ url: c.url,
149
+ tags: c.labels.map((l) => l.name),
150
+ };
151
+ }));
152
+ }
153
+ async postComment(taskId, text) {
154
+ logger_1.logger.debug(`Posting comment to Trello card ${taskId}`);
155
+ const path = `/cards/${encodeURIComponent(taskId)}/actions/comments?text=${encodeURIComponent(text)}`;
156
+ await this.request(path, { method: 'POST' });
157
+ }
158
+ async getComments(taskId) {
159
+ logger_1.logger.debug(`Fetching comments for Trello card ${taskId}`);
160
+ const actions = await this.request(`/cards/${encodeURIComponent(taskId)}/actions?filter=commentCard&fields=id,type,date,data,idMemberCreator&memberCreator=true&memberCreator_fields=fullName,username`);
161
+ const sorted = [...actions].sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime());
162
+ return sorted.map((a) => ({
163
+ id: a.id,
164
+ text: a.data?.text || '',
165
+ author: a.memberCreator?.fullName
166
+ || a.memberCreator?.username
167
+ || a.idMemberCreator,
168
+ authorId: a.memberCreator?.id || a.idMemberCreator,
169
+ date: new Date(a.date).getTime(),
170
+ }));
171
+ }
172
+ async updateStatus(taskId, status) {
173
+ logger_1.logger.debug(`Moving Trello card ${taskId} for status "${status}"`);
174
+ const lists = await this.fetchLists();
175
+ const s = status.trim().toLowerCase();
176
+ let targetListName;
177
+ if (s === this.pendingSemantic.toLowerCase()) {
178
+ targetListName = this.pendingListName;
179
+ }
180
+ else if (s === this.openSemantic.toLowerCase()) {
181
+ targetListName = this.openListName;
182
+ }
183
+ else if (s === 'in progress') {
184
+ targetListName = this.inProgressListName;
185
+ }
186
+ else if (s === this.inReviewSemantic.toLowerCase()) {
187
+ targetListName = this.inReviewListName;
188
+ }
189
+ else {
190
+ throw new Error(`Trello: unsupported status "${status}". Expected ${this.pendingSemantic}, ${this.openSemantic}, in progress, or ${this.inReviewSemantic}.`);
191
+ }
192
+ const listId = this.findListId(lists, targetListName);
193
+ await this.request(`/cards/${encodeURIComponent(taskId)}?idList=${encodeURIComponent(listId)}`, {
194
+ method: 'PUT',
195
+ });
196
+ }
197
+ async createTask(params) {
198
+ const lists = await this.fetchLists();
199
+ const listId = params.listId && /^[a-f0-9]{24}$/i.test(params.listId)
200
+ ? params.listId
201
+ : this.findListId(lists, this.openListName);
202
+ const boardLabels = await this.request(`/boards/${encodeURIComponent(this.boardId)}/labels?fields=id,name`);
203
+ const labelIds = [];
204
+ if (this.labelName && this.labelName !== '*') {
205
+ const match = boardLabels.find((l) => l.name.trim().toLowerCase() === this.labelName.trim().toLowerCase());
206
+ if (match)
207
+ labelIds.push(match.id);
208
+ }
209
+ for (const tag of params.tags || []) {
210
+ const match = boardLabels.find((l) => l.name.trim().toLowerCase() === tag.trim().toLowerCase());
211
+ if (match && !labelIds.includes(match.id))
212
+ labelIds.push(match.id);
213
+ }
214
+ const q = new URLSearchParams({
215
+ name: params.title,
216
+ desc: params.description || '',
217
+ idList: listId,
218
+ });
219
+ if (labelIds.length) {
220
+ q.set('idLabels', labelIds.join(','));
221
+ }
222
+ const result = await this.request(`/cards?${q.toString()}`, { method: 'POST' });
223
+ return { id: result.id, url: result.url };
224
+ }
225
+ }
226
+ exports.TrelloProvider = TrelloProvider;
227
+ //# sourceMappingURL=trello.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trello.js","sourceRoot":"","sources":["../../src/providers/trello.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -69,6 +69,17 @@ export interface Config {
69
69
  notionStatusProperty: string;
70
70
  notionPendingStatus: string;
71
71
  notionInReviewStatus: string;
72
+ trelloApiKey: string;
73
+ trelloToken: string;
74
+ trelloBoardId: string;
75
+ trelloLabel: string;
76
+ trelloOpenList: string;
77
+ trelloPendingList: string;
78
+ trelloInProgressList: string;
79
+ trelloInReviewList: string;
80
+ trelloOpenStatus: string;
81
+ trelloPendingStatus: string;
82
+ trelloInReviewStatus: string;
72
83
  nonCodeTag: string;
73
84
  nonCodeClickupTeamId: string;
74
85
  nonCodeJiraProject: string;
@@ -83,5 +94,6 @@ export interface Config {
83
94
  triggerWord: string;
84
95
  thinkingTag: string;
85
96
  commentPrefix: string;
97
+ hooksPath: string;
86
98
  }
87
99
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,50 +1,51 @@
1
- {
2
- "name": "@qelos/aidev",
3
- "version": "0.3.0",
4
- "description": "AI-powered task executor — polls ClickUp (and more) to implement tasks with Claude, Cursor, Windsurf, or Antigravity",
5
- "type": "commonjs",
6
- "bin": {
7
- "aidev": "dist/cli.js"
8
- },
9
- "main": "./dist/cli.js",
10
- "engines": {
11
- "node": ">=22.0.0"
12
- },
13
- "scripts": {
14
- "build": "tsc && node -e \"if(process.platform!=='win32')require('node:fs').chmodSync('dist/cli.js',0o755)\"",
15
- "dev": "tsx src/cli.ts",
16
- "test": "node scripts/run-tests.cjs",
17
- "prepublishOnly": "npm run build"
18
- },
19
- "keywords": [
20
- "ai",
21
- "cli",
22
- "clickup",
23
- "claude",
24
- "cursor",
25
- "automation"
26
- ],
27
- "author": "",
28
- "license": "MIT",
29
- "repository": {
30
- "type": "git",
31
- "url": "git+https://github.com/qelos-io/aidev.git"
32
- },
33
- "bugs": {
34
- "url": "https://github.com/qelos-io/aidev/issues"
35
- },
36
- "homepage": "https://github.com/qelos-io/aidev#readme",
37
- "publishConfig": {
38
- "access": "public"
39
- },
40
- "dependencies": {
41
- "chalk": "^4.1.2",
42
- "commander": "^12.0.0",
43
- "dotenv": "^16.4.0"
44
- },
45
- "devDependencies": {
46
- "@types/node": "^22.0.0",
47
- "tsx": "^4.0.0",
48
- "typescript": "^5.0.0"
49
- }
50
- }
1
+ {
2
+ "name": "@qelos/aidev",
3
+ "version": "0.4.0",
4
+ "description": "AI-powered task executor — polls ClickUp (and more) to implement tasks with Claude, Cursor, Windsurf, or Antigravity",
5
+ "type": "commonjs",
6
+ "bin": {
7
+ "aidev": "dist/cli.js"
8
+ },
9
+ "main": "./dist/cli.js",
10
+ "engines": {
11
+ "node": ">=22.0.0"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc && node -e \"if(process.platform!=='win32')require('node:fs').chmodSync('dist/cli.js',0o755)\"",
15
+ "dev": "tsx src/cli.ts",
16
+ "test": "node scripts/run-tests.cjs",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "keywords": [
20
+ "ai",
21
+ "cli",
22
+ "clickup",
23
+ "claude",
24
+ "cursor",
25
+ "automation"
26
+ ],
27
+ "author": "",
28
+ "license": "MIT",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/qelos-io/aidev.git"
32
+ },
33
+ "bugs": {
34
+ "url": "https://github.com/qelos-io/aidev/issues"
35
+ },
36
+ "homepage": "https://github.com/qelos-io/aidev#readme",
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "dependencies": {
41
+ "chalk": "^4.1.2",
42
+ "commander": "^12.0.0",
43
+ "dotenv": "^16.4.0",
44
+ "jiti": "^2.6.1"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^22.0.0",
48
+ "tsx": "^4.0.0",
49
+ "typescript": "^5.0.0"
50
+ }
51
+ }
@@ -1,18 +1,18 @@
1
- 'use strict';
2
-
3
- const { spawnSync } = require('node:child_process');
4
- const { globSync } = require('node:fs');
5
- const path = require('node:path');
6
-
7
- const root = path.join(__dirname, '..');
8
- const files = globSync('src/__tests__/**/*.test.ts', { cwd: root }).sort();
9
- if (files.length === 0) {
10
- console.error('No test files found under src/__tests__');
11
- process.exit(1);
12
- }
13
- const abs = files.map((f) => path.join(root, f));
14
- const r = spawnSync(process.execPath, ['--require', 'tsx/cjs', '--test', ...abs], {
15
- cwd: root,
16
- stdio: 'inherit',
17
- });
18
- process.exit(r.status === null ? 1 : r.status);
1
+ 'use strict';
2
+
3
+ const { spawnSync } = require('node:child_process');
4
+ const { globSync } = require('node:fs');
5
+ const path = require('node:path');
6
+
7
+ const root = path.join(__dirname, '..');
8
+ const files = globSync('src/__tests__/**/*.test.ts', { cwd: root }).sort();
9
+ if (files.length === 0) {
10
+ console.error('No test files found under src/__tests__');
11
+ process.exit(1);
12
+ }
13
+ const abs = files.map((f) => path.join(root, f));
14
+ const r = spawnSync(process.execPath, ['--require', 'tsx/cjs', '--test', ...abs], {
15
+ cwd: root,
16
+ stdio: 'inherit',
17
+ });
18
+ process.exit(r.status === null ? 1 : r.status);