@qelos/aidev 0.7.1 → 0.7.2
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 +105 -105
- package/CONTRIBUTING.md +78 -78
- package/LICENSE +21 -21
- package/README.md +755 -755
- package/dist/cli.js +0 -0
- package/dist/commands/accepted.d.ts +15 -1
- package/dist/commands/accepted.d.ts.map +1 -1
- package/dist/commands/accepted.js +45 -0
- package/dist/commands/accepted.js.map +1 -1
- package/dist/commands/help.js +80 -80
- package/dist/commands/init.d.ts +12 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +168 -114
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run.js +146 -146
- package/dist/github.d.ts +8 -0
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +51 -27
- package/dist/github.js.map +1 -1
- package/dist/providers/linear.d.ts.map +1 -1
- package/dist/providers/linear.js +111 -108
- package/dist/providers/linear.js.map +1 -1
- package/dist/providers/monday.js +45 -45
- package/package.json +51 -51
- package/scripts/run-tests.cjs +18 -18
- package/.aidev/assets/86c8yjxrr/9ea11c36-311c-4022-889c-1bb0915122dc.jpg-40e6939e3b68e864260f7ae7e85bd623_exif.jpg +0 -0
- package/aidev.tasks.json +0 -1
- package/dist/autoCompress.d.ts +0 -54
- package/dist/autoCompress.d.ts.map +0 -1
- package/dist/autoCompress.js +0 -300
- package/dist/autoCompress.js.map +0 -1
package/dist/cli.js
CHANGED
|
File without changes
|
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
import { Config } from '../types';
|
|
1
|
+
import { Comment, Config } from '../types';
|
|
2
2
|
import { TaskProvider } from '../providers';
|
|
3
|
+
/**
|
|
4
|
+
* Stable phrase embedded in the conflict comment so we can detect a previously
|
|
5
|
+
* posted notice on later cron ticks and avoid spamming the ticket. Changing
|
|
6
|
+
* this phrase will cause one duplicate notice on tickets that already received
|
|
7
|
+
* a notice from a previous version.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ACCEPTED_CONFLICT_MARKER = "has merge conflicts and cannot be auto-merged";
|
|
3
10
|
/**
|
|
4
11
|
* Comment posted on the task immediately before merging an accepted PR (so the
|
|
5
12
|
* ticket records that aidev is performing the merge).
|
|
6
13
|
*/
|
|
7
14
|
export declare function buildAcceptedMergeComment(config: Config, branchName: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* One-time notice posted when an accepted PR cannot be merged because of
|
|
17
|
+
* conflicts. Phrased so {@link hasAlreadyNotifiedConflict} can detect it on
|
|
18
|
+
* later runs.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildAcceptedConflictComment(config: Config, branchName: string, baseBranch: string): string;
|
|
21
|
+
export declare function hasAlreadyNotifiedConflict(comments: Comment[], commentPrefix: string): boolean;
|
|
8
22
|
/**
|
|
9
23
|
* Pick the configured done status, otherwise probe the board for one of the
|
|
10
24
|
* common "done" names (done / closed / finish / success / prod). Returns null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accepted.d.ts","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"accepted.d.ts","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAa5C;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,kDAAkD,CAAC;AAExF;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,MAAM,CAMR;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAIT;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBxB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,IAAI,CAAC,CAwHf"}
|
|
@@ -33,7 +33,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ACCEPTED_CONFLICT_MARKER = void 0;
|
|
36
37
|
exports.buildAcceptedMergeComment = buildAcceptedMergeComment;
|
|
38
|
+
exports.buildAcceptedConflictComment = buildAcceptedConflictComment;
|
|
39
|
+
exports.hasAlreadyNotifiedConflict = hasAlreadyNotifiedConflict;
|
|
37
40
|
exports.resolveDoneStatus = resolveDoneStatus;
|
|
38
41
|
exports.acceptedCommand = acceptedCommand;
|
|
39
42
|
const logger_1 = require("../logger");
|
|
@@ -41,6 +44,13 @@ const github_1 = require("../github");
|
|
|
41
44
|
const git = __importStar(require("../git"));
|
|
42
45
|
const run_1 = require("./run");
|
|
43
46
|
const DONE_STATUS_CANDIDATES = ['done', 'closed', 'finish', 'success', 'prod'];
|
|
47
|
+
/**
|
|
48
|
+
* Stable phrase embedded in the conflict comment so we can detect a previously
|
|
49
|
+
* posted notice on later cron ticks and avoid spamming the ticket. Changing
|
|
50
|
+
* this phrase will cause one duplicate notice on tickets that already received
|
|
51
|
+
* a notice from a previous version.
|
|
52
|
+
*/
|
|
53
|
+
exports.ACCEPTED_CONFLICT_MARKER = 'has merge conflicts and cannot be auto-merged';
|
|
44
54
|
/**
|
|
45
55
|
* Comment posted on the task immediately before merging an accepted PR (so the
|
|
46
56
|
* ticket records that aidev is performing the merge).
|
|
@@ -48,6 +58,19 @@ const DONE_STATUS_CANDIDATES = ['done', 'closed', 'finish', 'success', 'prod'];
|
|
|
48
58
|
function buildAcceptedMergeComment(config, branchName) {
|
|
49
59
|
return `${config.commentPrefix} Merging the accepted pull request for branch \`${branchName}\`.`;
|
|
50
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* One-time notice posted when an accepted PR cannot be merged because of
|
|
63
|
+
* conflicts. Phrased so {@link hasAlreadyNotifiedConflict} can detect it on
|
|
64
|
+
* later runs.
|
|
65
|
+
*/
|
|
66
|
+
function buildAcceptedConflictComment(config, branchName, baseBranch) {
|
|
67
|
+
return (`${config.commentPrefix} Cannot merge accepted pull request for branch \`${branchName}\` — ` +
|
|
68
|
+
`the PR ${exports.ACCEPTED_CONFLICT_MARKER} with \`${baseBranch}\`. Resolve the conflicts ` +
|
|
69
|
+
`(or retrigger the task to let aidev attempt resolution) before this can be merged.`);
|
|
70
|
+
}
|
|
71
|
+
function hasAlreadyNotifiedConflict(comments, commentPrefix) {
|
|
72
|
+
return comments.some((c) => c.text.startsWith(commentPrefix) && c.text.includes(exports.ACCEPTED_CONFLICT_MARKER));
|
|
73
|
+
}
|
|
51
74
|
/**
|
|
52
75
|
* Pick the configured done status, otherwise probe the board for one of the
|
|
53
76
|
* common "done" names (done / closed / finish / success / prod). Returns null
|
|
@@ -115,6 +138,28 @@ async function acceptedCommand(config, provider) {
|
|
|
115
138
|
for (const task of acceptedTasks) {
|
|
116
139
|
const branchName = `${task.id}/${git.slugify(task.name)}`;
|
|
117
140
|
logger_1.logger.task(`[${task.id}] "${task.name}" — merging branch ${branchName}`);
|
|
141
|
+
const mergeability = (0, github_1.getPullRequestMergeability)(branchName);
|
|
142
|
+
if (mergeability === 'CONFLICTING') {
|
|
143
|
+
let existingComments = [];
|
|
144
|
+
try {
|
|
145
|
+
existingComments = await provider.getComments(task.id);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
logger_1.logger.warn(`[${task.id}] Failed to fetch comments to check for prior conflict notice: ${err instanceof Error ? err.message : String(err)}`);
|
|
149
|
+
}
|
|
150
|
+
if (hasAlreadyNotifiedConflict(existingComments, config.commentPrefix)) {
|
|
151
|
+
logger_1.logger.info(`[${task.id}] Skipping — PR has merge conflicts and the ticket was already notified.`);
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
await provider.postComment(task.id, buildAcceptedConflictComment(config, branchName, config.githubBaseBranch));
|
|
156
|
+
logger_1.logger.warn(`[${task.id}] PR has merge conflicts with ${config.githubBaseBranch} — posted notice and skipping.`);
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
logger_1.logger.warn(`[${task.id}] Failed to post conflict notice: ${err instanceof Error ? err.message : String(err)}`);
|
|
160
|
+
}
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
118
163
|
try {
|
|
119
164
|
await provider.postComment(task.id, buildAcceptedMergeComment(config, branchName));
|
|
120
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accepted.js","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accepted.js","sourceRoot":"","sources":["../../src/commands/accepted.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,8DAEC;AAOD,oEAUC;AAED,gEAOC;AAOD,8CAuBC;AAOD,0CA2HC;AApND,sCAAmC;AACnC,sCAKmB;AACnB,4CAA8B;AAC9B,+BAA0C;AAE1C,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAE/E;;;;;GAKG;AACU,QAAA,wBAAwB,GAAG,+CAA+C,CAAC;AAExF;;;GAGG;AACH,SAAgB,yBAAyB,CAAC,MAAc,EAAE,UAAkB;IAC1E,OAAO,GAAG,MAAM,CAAC,aAAa,mDAAmD,UAAU,KAAK,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,SAAgB,4BAA4B,CAC1C,MAAc,EACd,UAAkB,EAClB,UAAkB;IAElB,OAAO,CACL,GAAG,MAAM,CAAC,aAAa,oDAAoD,UAAU,OAAO;QAC5F,UAAU,gCAAwB,WAAW,UAAU,4BAA4B;QACnF,oFAAoF,CACrF,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B,CACxC,QAAmB,EACnB,aAAqB;IAErB,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gCAAwB,CAAC,CACrF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,QAAsB;IAEtB,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC,UAAU,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,sBAAsB;QAAE,OAAO,IAAI,CAAC;IAElD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CACV,kEAAkE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACrH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,KAAK,MAAM,SAAS,IAAI,sBAAsB,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,QAAsB;IAEtB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,eAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAA,sBAAa,GAAE,EAAE,CAAC;QACrB,eAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAA,0BAAiB,GAAE,EAAE,CAAC;QACzB,eAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,uBAAiB,EAAC,MAAM,CAAC,CAAC;IAC/C,eAAM,CAAC,IAAI,CAAC,sBAAsB,YAAY,aAAa,CAAC,CAAC;IAE7D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IACrD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CACxD,CAAC;IAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,UAAU,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,uDAAuD,UAAU,GAAG,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,IAAI,CACT,sDAAsD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,qEAAqE,CAC7J,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,eAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAE1E,MAAM,YAAY,GAAG,IAAA,mCAA0B,EAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;YACnC,IAAI,gBAAgB,GAAc,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,gBAAgB,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAM,CAAC,IAAI,CACT,IAAI,IAAI,CAAC,EAAE,kEAAkE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChI,CAAC;YACJ,CAAC;YAED,IAAI,0BAA0B,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvE,eAAM,CAAC,IAAI,CACT,IAAI,IAAI,CAAC,EAAE,0EAA0E,CACtF,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,WAAW,CACxB,IAAI,CAAC,EAAE,EACP,4BAA4B,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAC1E,CAAC;gBACF,eAAM,CAAC,IAAI,CACT,IAAI,IAAI,CAAC,EAAE,iCAAiC,MAAM,CAAC,gBAAgB,gCAAgC,CACpG,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAM,CAAC,IAAI,CACT,IAAI,IAAI,CAAC,EAAE,qCAAqC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACnG,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CACT,IAAI,IAAI,CAAC,EAAE,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAChG,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,yBAAgB,EAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,yBAAyB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QAED,eAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAEtD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBACjD,eAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,wBAAwB,UAAU,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,eAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QAED,MAAM,EAAE,CAAC;IACX,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,eAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,gBAAgB,wBAAwB,CAAC,CAAC;QAC7E,MAAM,EAAE,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,eAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,eAAM,CAAC,OAAO,CAAC,iBAAiB,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AACpE,CAAC"}
|
package/dist/commands/help.js
CHANGED
|
@@ -46,86 +46,86 @@ function windowsCursorAgentLine(opts) {
|
|
|
46
46
|
` ${y('!')} Cursor runner needs the Agent CLI. Install: ${c("irm 'https://cursor.com/install?win32=true' | iex")}\n`;
|
|
47
47
|
}
|
|
48
48
|
function helpCommand() {
|
|
49
|
-
console.log(`
|
|
50
|
-
${b('aidev')} ${d('v0.1.0')} — AI-powered task executor
|
|
51
|
-
|
|
52
|
-
${b('USAGE')}
|
|
53
|
-
${c('aidev')} ${d('[command]')}
|
|
54
|
-
|
|
55
|
-
${b('COMMANDS')}
|
|
56
|
-
${c('init')} Interactive setup — create ${d('.env.aidev')}
|
|
57
|
-
${c('run')} Process all open + pending-with-replies tasks
|
|
58
|
-
${c('run open')} Only open (non-pending) tasks
|
|
59
|
-
${c('run pending')} Only pending tasks — check for human replies
|
|
60
|
-
${c('run tasks')} Publish queued ${d('aidev.tasks.json')} entries and exit
|
|
61
|
-
${c('tasks add')} Queue a new task in ${d('aidev.tasks.json')} (interactive)
|
|
62
|
-
${c('tasks ls')} List queued tasks
|
|
63
|
-
${c('tasks update')} ${d('[id]')} Edit a queued task
|
|
64
|
-
${c('tasks remove')} ${d('[id]')} Delete a queued task
|
|
65
|
-
${c('tasks push')} Publish all queued tasks now (same as ${c('run tasks')})
|
|
66
|
-
${c('schedule set')} ${d('<cron>')} Set cron schedule for this directory
|
|
67
|
-
${c('schedule get')} Show current cron schedule
|
|
68
|
-
${c('help')} Show this help message
|
|
69
|
-
|
|
70
|
-
${b('TRIGGER WORD')}
|
|
71
|
-
When a task is skipped (branch exists or pending with no reply), post a comment
|
|
72
|
-
containing the trigger word ${d('(default: aidev-continue)')} to re-trigger processing.
|
|
73
|
-
The existing branch will be reused. Set ${c('AIDEV_TRIGGER_WORD')} to customise.
|
|
74
|
-
|
|
75
|
-
${b('HOOKS')}
|
|
76
|
-
Set ${c('AIDEV_HOOKS_PATH')} to a ${d('.ts')} or ${d('.js')} file to run optional async hooks
|
|
77
|
-
${d('(beforeRun, beforeEachTask, beforeResolveConflicts, …)')}. ${c('aidev init')} creates
|
|
78
|
-
${d('.aidev/aidev.hooks.ts')} and points this variable at it. Throw from a hook to abort that step.
|
|
79
|
-
|
|
80
|
-
${b('LOCAL PROVIDER')}
|
|
81
|
-
Set ${c('PROVIDER=local')} in ${d('.env.aidev')} to use file-based task management.
|
|
82
|
-
Tasks live in ${d('.aidev/tasks/')} under status folders: ${c('open')}, ${c('pending')},
|
|
83
|
-
${c('progress')}, ${c('review')}, ${c('done')}.
|
|
84
|
-
|
|
85
|
-
Each task is a markdown file with YAML frontmatter (title, priority, tags, etc.)
|
|
86
|
-
and a description body. Comments are stored in a ${d('.session.md')} companion file.
|
|
87
|
-
To add a comment, append a ${d('## your-name')} section to the session file.
|
|
88
|
-
Add ${c('type: non-code')} to frontmatter for tasks that skip git branching.
|
|
89
|
-
Run ${c('aidev init')} with provider ${c('local')} to create the folder structure.
|
|
90
|
-
|
|
91
|
-
${b('LOCAL TASKS FILE')}
|
|
92
|
-
${d('aidev.tasks.json')} queues tasks to publish to your remote provider. Each entry
|
|
93
|
-
has a title, description, type (${c('code')} | ${c('non-code')}), optional priority, tags, and cron.
|
|
94
|
-
Every ${c('aidev run')} publishes pending entries; one-shot entries are removed after
|
|
95
|
-
publishing, cron entries stay and re-publish on schedule. Manage with ${c('aidev tasks')}
|
|
96
|
-
${d('(add / ls / update / remove / push)')} or edit the JSON file directly.
|
|
97
|
-
|
|
98
|
-
${b('NON-CODE TASKS')}
|
|
99
|
-
Tasks tagged with the ${c('NON_CODE_TAG')} are executed without git branching —
|
|
100
|
-
no checkout, commit, push, or PR creation. The AI agent runs the task directly
|
|
101
|
-
in the current working directory. Useful for research, documentation, or tasks
|
|
102
|
-
that don't produce code changes requiring review.
|
|
103
|
-
Optionally use a different ClickUp team (${c('NON_CODE_CLICKUP_TEAM_ID')}) or
|
|
104
|
-
Jira project (${c('NON_CODE_JIRA_PROJECT')}) for non-code tasks.
|
|
105
|
-
If ${c('NON_CODE_TAG')} is not set, it defaults to ${d('<folder-name>-other')}.
|
|
106
|
-
|
|
107
|
-
${b('EXAMPLES')}
|
|
108
|
-
${d('$')} ${g('aidev init')}
|
|
109
|
-
${d('$')} ${g('aidev run')}
|
|
110
|
-
${d('$')} ${g('aidev run open')}
|
|
111
|
-
${d('$')} ${g('aidev schedule set "*/30 * * * *"')}
|
|
112
|
-
${d('$')} ${g('aidev schedule get')}
|
|
113
|
-
|
|
114
|
-
${b('CONFIG')} ${d('.env.aidev in your project directory')}
|
|
115
|
-
${d('PROVIDER')} ${c('clickup')} ${d('(default) | jira | linear | local | monday | notion | trello')}
|
|
116
|
-
${d('CLICKUP_API_KEY')} ClickUp personal API token
|
|
117
|
-
${d('CLICKUP_TEAM_ID')} Workspace / team ID
|
|
118
|
-
${d('CLICKUP_TAG')} Tag used to filter tasks ${d('(default: folder name)')}
|
|
119
|
-
${d('AGENTS')} Agent order: ${c('claude,cursor')} ${d('| antigravity | cursor | windsurf | …')}
|
|
120
|
-
${d('DEV_NOTES_MODE')} ${c('smart')} ${d('(default) | always')}
|
|
121
|
-
${d('AIDEV_TRIGGER_WORD')} Trigger word to re-process a skipped task ${d('(default: aidev-continue)')}
|
|
122
|
-
${d('AIDEV_HOOKS_PATH')} Optional hooks module ${d('(default from init: .aidev/aidev.hooks.ts)')}
|
|
123
|
-
${d('NON_CODE_TAG')} Tag for non-code tasks ${d('(default: <folder-name>-other)')}
|
|
124
|
-
${d('GIT_REMOTE')} Remote name ${d('(auto-detected if unset)')}
|
|
125
|
-
${d('GITHUB_BASE_BRANCH')} Base branch ${d('(default: main)')}
|
|
126
|
-
${d('GITHUB_REPO')} ${d('owner/repo')} for PR links
|
|
127
|
-
${ghStatusLine()}${windowsCursorAgentLine()}
|
|
128
|
-
Run ${c('aidev init')} to configure interactively.
|
|
49
|
+
console.log(`
|
|
50
|
+
${b('aidev')} ${d('v0.1.0')} — AI-powered task executor
|
|
51
|
+
|
|
52
|
+
${b('USAGE')}
|
|
53
|
+
${c('aidev')} ${d('[command]')}
|
|
54
|
+
|
|
55
|
+
${b('COMMANDS')}
|
|
56
|
+
${c('init')} Interactive setup — create ${d('.env.aidev')}
|
|
57
|
+
${c('run')} Process all open + pending-with-replies tasks
|
|
58
|
+
${c('run open')} Only open (non-pending) tasks
|
|
59
|
+
${c('run pending')} Only pending tasks — check for human replies
|
|
60
|
+
${c('run tasks')} Publish queued ${d('aidev.tasks.json')} entries and exit
|
|
61
|
+
${c('tasks add')} Queue a new task in ${d('aidev.tasks.json')} (interactive)
|
|
62
|
+
${c('tasks ls')} List queued tasks
|
|
63
|
+
${c('tasks update')} ${d('[id]')} Edit a queued task
|
|
64
|
+
${c('tasks remove')} ${d('[id]')} Delete a queued task
|
|
65
|
+
${c('tasks push')} Publish all queued tasks now (same as ${c('run tasks')})
|
|
66
|
+
${c('schedule set')} ${d('<cron>')} Set cron schedule for this directory
|
|
67
|
+
${c('schedule get')} Show current cron schedule
|
|
68
|
+
${c('help')} Show this help message
|
|
69
|
+
|
|
70
|
+
${b('TRIGGER WORD')}
|
|
71
|
+
When a task is skipped (branch exists or pending with no reply), post a comment
|
|
72
|
+
containing the trigger word ${d('(default: aidev-continue)')} to re-trigger processing.
|
|
73
|
+
The existing branch will be reused. Set ${c('AIDEV_TRIGGER_WORD')} to customise.
|
|
74
|
+
|
|
75
|
+
${b('HOOKS')}
|
|
76
|
+
Set ${c('AIDEV_HOOKS_PATH')} to a ${d('.ts')} or ${d('.js')} file to run optional async hooks
|
|
77
|
+
${d('(beforeRun, beforeEachTask, beforeResolveConflicts, …)')}. ${c('aidev init')} creates
|
|
78
|
+
${d('.aidev/aidev.hooks.ts')} and points this variable at it. Throw from a hook to abort that step.
|
|
79
|
+
|
|
80
|
+
${b('LOCAL PROVIDER')}
|
|
81
|
+
Set ${c('PROVIDER=local')} in ${d('.env.aidev')} to use file-based task management.
|
|
82
|
+
Tasks live in ${d('.aidev/tasks/')} under status folders: ${c('open')}, ${c('pending')},
|
|
83
|
+
${c('progress')}, ${c('review')}, ${c('done')}.
|
|
84
|
+
|
|
85
|
+
Each task is a markdown file with YAML frontmatter (title, priority, tags, etc.)
|
|
86
|
+
and a description body. Comments are stored in a ${d('.session.md')} companion file.
|
|
87
|
+
To add a comment, append a ${d('## your-name')} section to the session file.
|
|
88
|
+
Add ${c('type: non-code')} to frontmatter for tasks that skip git branching.
|
|
89
|
+
Run ${c('aidev init')} with provider ${c('local')} to create the folder structure.
|
|
90
|
+
|
|
91
|
+
${b('LOCAL TASKS FILE')}
|
|
92
|
+
${d('aidev.tasks.json')} queues tasks to publish to your remote provider. Each entry
|
|
93
|
+
has a title, description, type (${c('code')} | ${c('non-code')}), optional priority, tags, and cron.
|
|
94
|
+
Every ${c('aidev run')} publishes pending entries; one-shot entries are removed after
|
|
95
|
+
publishing, cron entries stay and re-publish on schedule. Manage with ${c('aidev tasks')}
|
|
96
|
+
${d('(add / ls / update / remove / push)')} or edit the JSON file directly.
|
|
97
|
+
|
|
98
|
+
${b('NON-CODE TASKS')}
|
|
99
|
+
Tasks tagged with the ${c('NON_CODE_TAG')} are executed without git branching —
|
|
100
|
+
no checkout, commit, push, or PR creation. The AI agent runs the task directly
|
|
101
|
+
in the current working directory. Useful for research, documentation, or tasks
|
|
102
|
+
that don't produce code changes requiring review.
|
|
103
|
+
Optionally use a different ClickUp team (${c('NON_CODE_CLICKUP_TEAM_ID')}) or
|
|
104
|
+
Jira project (${c('NON_CODE_JIRA_PROJECT')}) for non-code tasks.
|
|
105
|
+
If ${c('NON_CODE_TAG')} is not set, it defaults to ${d('<folder-name>-other')}.
|
|
106
|
+
|
|
107
|
+
${b('EXAMPLES')}
|
|
108
|
+
${d('$')} ${g('aidev init')}
|
|
109
|
+
${d('$')} ${g('aidev run')}
|
|
110
|
+
${d('$')} ${g('aidev run open')}
|
|
111
|
+
${d('$')} ${g('aidev schedule set "*/30 * * * *"')}
|
|
112
|
+
${d('$')} ${g('aidev schedule get')}
|
|
113
|
+
|
|
114
|
+
${b('CONFIG')} ${d('.env.aidev in your project directory')}
|
|
115
|
+
${d('PROVIDER')} ${c('clickup')} ${d('(default) | jira | linear | local | monday | notion | trello')}
|
|
116
|
+
${d('CLICKUP_API_KEY')} ClickUp personal API token
|
|
117
|
+
${d('CLICKUP_TEAM_ID')} Workspace / team ID
|
|
118
|
+
${d('CLICKUP_TAG')} Tag used to filter tasks ${d('(default: folder name)')}
|
|
119
|
+
${d('AGENTS')} Agent order: ${c('claude,cursor')} ${d('| antigravity | cursor | windsurf | …')}
|
|
120
|
+
${d('DEV_NOTES_MODE')} ${c('smart')} ${d('(default) | always')}
|
|
121
|
+
${d('AIDEV_TRIGGER_WORD')} Trigger word to re-process a skipped task ${d('(default: aidev-continue)')}
|
|
122
|
+
${d('AIDEV_HOOKS_PATH')} Optional hooks module ${d('(default from init: .aidev/aidev.hooks.ts)')}
|
|
123
|
+
${d('NON_CODE_TAG')} Tag for non-code tasks ${d('(default: <folder-name>-other)')}
|
|
124
|
+
${d('GIT_REMOTE')} Remote name ${d('(auto-detected if unset)')}
|
|
125
|
+
${d('GITHUB_BASE_BRANCH')} Base branch ${d('(default: main)')}
|
|
126
|
+
${d('GITHUB_REPO')} ${d('owner/repo')} for PR links
|
|
127
|
+
${ghStatusLine()}${windowsCursorAgentLine()}
|
|
128
|
+
Run ${c('aidev init')} to configure interactively.
|
|
129
129
|
`);
|
|
130
130
|
}
|
|
131
131
|
//# sourceMappingURL=help.js.map
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare function getWindowsCursorInitMessage(agents: string, platform?: {
|
|
|
9
9
|
}): string | null;
|
|
10
10
|
export declare function ensureGitignore(dir?: string): void;
|
|
11
11
|
export interface Answers {
|
|
12
|
-
provider: 'clickup' | 'jira' | 'linear' | 'local' | 'monday';
|
|
12
|
+
provider: 'clickup' | 'jira' | 'linear' | 'local' | 'monday' | 'trello';
|
|
13
13
|
clickupApiKey: string;
|
|
14
14
|
clickupTeamId: string;
|
|
15
15
|
clickupTag: string;
|
|
@@ -31,6 +31,17 @@ export interface Answers {
|
|
|
31
31
|
mondayBoardId: string;
|
|
32
32
|
mondayStatusColumnId: string;
|
|
33
33
|
mondayGroupId: string;
|
|
34
|
+
trelloApiKey: string;
|
|
35
|
+
trelloToken: string;
|
|
36
|
+
trelloBoardId: string;
|
|
37
|
+
trelloLabel: string;
|
|
38
|
+
trelloOpenList: string;
|
|
39
|
+
trelloPendingList: string;
|
|
40
|
+
trelloInProgressList: string;
|
|
41
|
+
trelloInReviewList: string;
|
|
42
|
+
trelloOpenStatus: string;
|
|
43
|
+
trelloPendingStatus: string;
|
|
44
|
+
trelloInReviewStatus: string;
|
|
34
45
|
nonCodeTag: string;
|
|
35
46
|
nonCodeClickupTeamId: string;
|
|
36
47
|
nonCodeJiraProject: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA0BA;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GACzE,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,IAAI,CAyBzD;AAuCD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA0BA;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GACzE,MAAM,GAAG,IAAI,CAiBf;AAED,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,IAAI,CAyBzD;AAuCD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAExE,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAE7B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IAEtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAE7B,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAqHD,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAMD,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAyG5C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA4BtD;AA6GD,wBAAgB,sBAAsB,CAAC,GAAG,SAAgB,GAAG,IAAI,CAchE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsajD"}
|