@qelos/aidev 0.2.11 → 0.2.13
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/.env.aidev.example +58 -51
- package/CONTRIBUTING.md +78 -78
- package/LICENSE +21 -21
- package/README.md +455 -455
- package/dist/__tests__/ai-runners.test.js +66 -2
- package/dist/__tests__/ai-runners.test.js.map +1 -1
- package/dist/__tests__/local-provider.test.js +31 -31
- package/dist/__tests__/providers.test.js +86 -0
- package/dist/__tests__/providers.test.js.map +1 -1
- package/dist/__tests__/run.test.js +26 -0
- package/dist/__tests__/run.test.js.map +1 -1
- package/dist/ai/claude.d.ts.map +1 -1
- package/dist/ai/claude.js +13 -9
- package/dist/ai/claude.js.map +1 -1
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +2 -0
- package/dist/ai/index.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/commands/help.js +61 -61
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run.d.ts +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +103 -92
- package/dist/commands/run.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -2
- package/dist/config.js.map +1 -1
- package/dist/github.js +23 -23
- package/dist/permissions.d.ts.map +1 -1
- package/dist/permissions.js +12 -0
- package/dist/permissions.js.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/linear.js +70 -70
- package/dist/providers/monday.js +39 -39
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +50 -50
- package/dist/ai/antigravity.d.ts +0 -12
- package/dist/ai/antigravity.d.ts.map +0 -1
- package/dist/ai/antigravity.js +0 -70
- package/dist/ai/antigravity.js.map +0 -1
package/dist/providers/monday.js
CHANGED
|
@@ -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) {
|
package/dist/types.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export interface Comment {
|
|
|
39
39
|
authorId: string;
|
|
40
40
|
date: number;
|
|
41
41
|
}
|
|
42
|
-
export type AgentName = 'claude' | 'cursor' | 'windsurf';
|
|
42
|
+
export type AgentName = 'claude' | 'codex' | 'cursor' | 'windsurf';
|
|
43
43
|
export interface Config {
|
|
44
44
|
provider: string;
|
|
45
45
|
clickupApiKey: string;
|
|
@@ -64,6 +64,11 @@ export interface Config {
|
|
|
64
64
|
mondayBoardId: string;
|
|
65
65
|
mondayStatusColumnId: string;
|
|
66
66
|
mondayGroupId: string;
|
|
67
|
+
notionApiKey: string;
|
|
68
|
+
notionDatabaseId: string;
|
|
69
|
+
notionStatusProperty: string;
|
|
70
|
+
notionPendingStatus: string;
|
|
71
|
+
notionInReviewStatus: string;
|
|
67
72
|
nonCodeTag: string;
|
|
68
73
|
nonCodeClickupTeamId: string;
|
|
69
74
|
nonCodeJiraProject: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;
|
|
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,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@qelos/aidev",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "AI-powered task executor — polls ClickUp (and more) to implement tasks with Claude or Cursor",
|
|
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 --require tsx/cjs --test 'src/__tests__/**/*.test.ts'",
|
|
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.2.13",
|
|
4
|
+
"description": "AI-powered task executor — polls ClickUp (and more) to implement tasks with Claude or Cursor",
|
|
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 --require tsx/cjs --test 'src/__tests__/**/*.test.ts'",
|
|
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
|
+
}
|
package/dist/ai/antigravity.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { AIRunner, AIRunResult } from './base';
|
|
2
|
-
/**
|
|
3
|
-
* Google Antigravity agent runner. Uses the `agy` CLI (or `antigravity` on some
|
|
4
|
-
* installs). Opens the workspace and runs the agent with the prompt on stdin.
|
|
5
|
-
* See https://antigravity.codes and antigravity.google/download.
|
|
6
|
-
*/
|
|
7
|
-
export declare class AntigravityRunner implements AIRunner {
|
|
8
|
-
readonly name = "antigravity";
|
|
9
|
-
isAvailable(): boolean;
|
|
10
|
-
run(prompt: string, notes?: string): Promise<AIRunResult>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=antigravity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.d.ts","sourceRoot":"","sources":["../../src/ai/antigravity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAI/C;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,QAAQ,CAAC,IAAI,iBAAiB;IAE9B,WAAW,IAAI,OAAO;IAIhB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAsDhE"}
|
package/dist/ai/antigravity.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AntigravityRunner = void 0;
|
|
4
|
-
const logger_1 = require("../logger");
|
|
5
|
-
const platform_1 = require("../platform");
|
|
6
|
-
/**
|
|
7
|
-
* Google Antigravity agent runner. Uses the `agy` CLI (or `antigravity` on some
|
|
8
|
-
* installs). Opens the workspace and runs the agent with the prompt on stdin.
|
|
9
|
-
* See https://antigravity.codes and antigravity.google/download.
|
|
10
|
-
*/
|
|
11
|
-
class AntigravityRunner {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.name = 'antigravity';
|
|
14
|
-
}
|
|
15
|
-
isAvailable() {
|
|
16
|
-
return (0, platform_1.commandExists)('agy') || (0, platform_1.commandExists)('antigravity');
|
|
17
|
-
}
|
|
18
|
-
async run(prompt, notes) {
|
|
19
|
-
const fullPrompt = notes ? `${prompt}\n\nAdditional context:\n${notes}` : prompt;
|
|
20
|
-
logger_1.logger.info('Running Antigravity agent...');
|
|
21
|
-
logger_1.logger.debug(`Prompt: ${fullPrompt.slice(0, 200)}...`);
|
|
22
|
-
const cwd = process.cwd();
|
|
23
|
-
const bin = (0, platform_1.commandExists)('agy') ? 'agy' : 'antigravity';
|
|
24
|
-
const baseArgs = ['.'];
|
|
25
|
-
const attempts = [
|
|
26
|
-
['--agent', '--print', ...baseArgs],
|
|
27
|
-
['--print', ...baseArgs],
|
|
28
|
-
baseArgs,
|
|
29
|
-
];
|
|
30
|
-
let result = (0, platform_1.spawnCommand)(bin, attempts[0], {
|
|
31
|
-
encoding: 'utf8',
|
|
32
|
-
timeout: 10 * 60 * 1000,
|
|
33
|
-
cwd,
|
|
34
|
-
env: (0, platform_1.getUserShellEnv)(),
|
|
35
|
-
input: fullPrompt,
|
|
36
|
-
});
|
|
37
|
-
for (let i = 1; i < attempts.length; i++) {
|
|
38
|
-
if (result.status === 0)
|
|
39
|
-
break;
|
|
40
|
-
const err = (result.stderr || '').toLowerCase();
|
|
41
|
-
const unknownFlag = err.includes('unknown option') ||
|
|
42
|
-
err.includes('unrecognized option') ||
|
|
43
|
-
err.includes('unknown argument') ||
|
|
44
|
-
err.includes('unexpected argument') ||
|
|
45
|
-
err.includes('invalid option');
|
|
46
|
-
if (!unknownFlag)
|
|
47
|
-
break;
|
|
48
|
-
result = (0, platform_1.spawnCommand)(bin, attempts[i], {
|
|
49
|
-
encoding: 'utf8',
|
|
50
|
-
timeout: 10 * 60 * 1000,
|
|
51
|
-
cwd,
|
|
52
|
-
env: (0, platform_1.getUserShellEnv)(),
|
|
53
|
-
input: fullPrompt,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
const success = result.status === 0;
|
|
57
|
-
const output = result.stdout || '';
|
|
58
|
-
const error = result.stderr || '';
|
|
59
|
-
if (!success) {
|
|
60
|
-
logger_1.logger.warn(`Antigravity exited with status ${result.status}`);
|
|
61
|
-
if (error)
|
|
62
|
-
logger_1.logger.warn(`antigravity stderr: ${error.slice(0, 500)}`);
|
|
63
|
-
if (result.error)
|
|
64
|
-
logger_1.logger.warn(`antigravity spawn error: ${result.error.message}`);
|
|
65
|
-
}
|
|
66
|
-
return { success, output, error };
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
exports.AntigravityRunner = AntigravityRunner;
|
|
70
|
-
//# sourceMappingURL=antigravity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/ai/antigravity.ts"],"names":[],"mappings":"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"}
|