@qelos/aidev 0.1.2 → 0.1.4
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 +13 -1
- package/README.md +9 -2
- package/aidev.log +139 -0
- package/dist/__tests__/init.test.js +8 -0
- package/dist/__tests__/init.test.js.map +1 -1
- package/dist/__tests__/permissions.test.d.ts +2 -0
- package/dist/__tests__/permissions.test.d.ts.map +1 -0
- package/dist/__tests__/permissions.test.js +151 -0
- package/dist/__tests__/permissions.test.js.map +1 -0
- package/dist/ai/cursor.d.ts.map +1 -1
- package/dist/ai/cursor.js +7 -4
- package/dist/ai/cursor.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/ai/windsurf.d.ts +7 -0
- package/dist/ai/windsurf.d.ts.map +1 -0
- package/dist/ai/windsurf.js +36 -0
- package/dist/ai/windsurf.js.map +1 -0
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +72 -17
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +19 -15
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/schedule.d.ts +1 -0
- package/dist/commands/schedule.d.ts.map +1 -1
- package/dist/commands/schedule.js +107 -8
- package/dist/commands/schedule.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +16 -6
- package/dist/config.js.map +1 -1
- package/dist/permissions.d.ts +19 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +180 -0
- package/dist/permissions.js.map +1 -0
- package/dist/providers/clickup.d.ts.map +1 -1
- package/dist/providers/clickup.js +34 -12
- package/dist/providers/clickup.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/jira.d.ts +18 -0
- package/dist/providers/jira.d.ts.map +1 -0
- package/dist/providers/jira.js +101 -0
- package/dist/providers/jira.js.map +1 -0
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/.env.aidev.example
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
|
+
# PROVIDER: clickup | jira
|
|
1
2
|
PROVIDER=clickup
|
|
3
|
+
|
|
4
|
+
# ── ClickUp (when PROVIDER=clickup) ──────────────────────────
|
|
2
5
|
CLICKUP_API_KEY=
|
|
3
6
|
CLICKUP_TEAM_ID=
|
|
4
7
|
CLICKUP_TAG=
|
|
5
8
|
CLICKUP_PENDING_STATUS=pending
|
|
6
9
|
CLICKUP_IN_REVIEW_STATUS=review
|
|
7
10
|
|
|
11
|
+
# ── Jira (when PROVIDER=jira) ─────────────────────────────────
|
|
12
|
+
# JIRA_BASE_URL=https://mycompany.atlassian.net
|
|
13
|
+
# JIRA_EMAIL=you@example.com
|
|
14
|
+
# JIRA_API_TOKEN=
|
|
15
|
+
# JIRA_PROJECT=PROJ
|
|
16
|
+
# JIRA_LABEL=
|
|
17
|
+
# JIRA_PENDING_STATUS=To Do
|
|
18
|
+
# JIRA_IN_REVIEW_STATUS=In Review
|
|
19
|
+
|
|
8
20
|
ASSIGNEE_TAG=
|
|
9
21
|
GIT_REMOTE=origin
|
|
10
22
|
GITHUB_BASE_BRANCH=main
|
|
11
23
|
GITHUB_REPO=
|
|
12
24
|
|
|
13
|
-
# Agents to use, in fallback order (comma-separated: claude, cursor)
|
|
25
|
+
# Agents to use, in fallback order (comma-separated: claude, cursor, windsurf)
|
|
14
26
|
AGENTS=claude,cursor
|
|
15
27
|
|
|
16
28
|
# DEV_NOTES_MODE: smart (only ask when unclear) | always (ask before every task)
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**aidev** turns your ClickUp tasks into merged code — automatically.
|
|
8
8
|
|
|
9
|
-
It polls your task manager, checks whether tasks are clear, runs Claude or
|
|
9
|
+
It polls your task manager, checks whether tasks are clear, runs Claude, Cursor, or Windsurf to implement them, pushes a branch, and moves the task to review. All without touching your keyboard.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
ClickUp task → AI implements → git push → "in review"
|
|
@@ -142,6 +142,7 @@ aidev supports multiple AI agents with automatic fallback. The first available a
|
|
|
142
142
|
|---|---|
|
|
143
143
|
| `claude` | [Claude CLI](https://github.com/anthropics/claude-code) installed and authenticated |
|
|
144
144
|
| `cursor` | [Cursor](https://cursor.sh) installed with Agent mode |
|
|
145
|
+
| `windsurf` | [Windsurf](https://windsurf.com) installed with CLI available in PATH |
|
|
145
146
|
|
|
146
147
|
**Configure agent order in `.env.aidev`:**
|
|
147
148
|
|
|
@@ -154,6 +155,12 @@ AGENTS=cursor
|
|
|
154
155
|
|
|
155
156
|
# Cursor first (useful when working locally with a monitor)
|
|
156
157
|
AGENTS=cursor,claude
|
|
158
|
+
|
|
159
|
+
# All three: Claude first, then Windsurf, then Cursor
|
|
160
|
+
AGENTS=claude,windsurf,cursor
|
|
161
|
+
|
|
162
|
+
# Windsurf only
|
|
163
|
+
AGENTS=windsurf
|
|
157
164
|
```
|
|
158
165
|
|
|
159
166
|
---
|
|
@@ -224,7 +231,7 @@ ANSI colour codes are stripped so the file stays readable in any editor or `tail
|
|
|
224
231
|
| Provider | Status |
|
|
225
232
|
|---|---|
|
|
226
233
|
| ClickUp | ✅ Implemented |
|
|
227
|
-
| Jira |
|
|
234
|
+
| Jira | ✅ Implemented |
|
|
228
235
|
| Notion | 🔜 Stub — contributions welcome |
|
|
229
236
|
| Trello | 🔜 Stub — contributions welcome |
|
|
230
237
|
|
package/aidev.log
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
2026-03-06T21:14:42.459Z [info] Current schedule for /Users/davidmeirlevy/dev/qelos/aidev:
|
|
2
|
+
|
|
3
|
+
────────────────────────────────────────────────────────────
|
|
4
|
+
2026-03-06T21:15:07.974Z [run] started
|
|
5
|
+
────────────────────────────────────────────────────────────
|
|
6
|
+
2026-03-06T21:15:07.977Z [info] Fetching tasks (filter: all)...
|
|
7
|
+
2026-03-06T21:15:08.345Z [info] Found 0 tagged task(s)
|
|
8
|
+
2026-03-06T21:15:08.346Z [success] Done. Processed: 0, Skipped: 0
|
|
9
|
+
|
|
10
|
+
────────────────────────────────────────────────────────────
|
|
11
|
+
2026-03-06T21:16:24.483Z [run] started
|
|
12
|
+
────────────────────────────────────────────────────────────
|
|
13
|
+
2026-03-06T21:16:24.487Z [info] Fetching tasks (filter: open)...
|
|
14
|
+
2026-03-06T21:16:24.740Z [info] Found 0 tagged task(s)
|
|
15
|
+
2026-03-06T21:16:24.741Z [success] Done. Processed: 0, Skipped: 0
|
|
16
|
+
|
|
17
|
+
────────────────────────────────────────────────────────────
|
|
18
|
+
2026-03-06T21:18:37.924Z [run] started
|
|
19
|
+
────────────────────────────────────────────────────────────
|
|
20
|
+
2026-03-06T21:18:37.928Z [info] Fetching tasks (filter: all)...
|
|
21
|
+
2026-03-06T21:18:38.452Z [info] Found 1 tagged task(s)
|
|
22
|
+
2026-03-06T21:18:38.453Z [task] [86c8nt813] "add support in jira" (status: open)
|
|
23
|
+
2026-03-06T21:18:40.278Z [info] Running Cursor Agent...
|
|
24
|
+
2026-03-06T21:18:41.896Z [info] Implementing task: add support in jira
|
|
25
|
+
2026-03-06T21:18:46.761Z [info] Running cursor...
|
|
26
|
+
2026-03-06T21:18:46.761Z [info] Running Cursor Agent...
|
|
27
|
+
2026-03-06T21:18:47.941Z [warn] AI runner produced no file changes
|
|
28
|
+
2026-03-06T21:18:48.281Z [success] Done. Processed: 1, Skipped: 0
|
|
29
|
+
2026-03-06T21:27:22.697Z [info] Scheduled aidev jobs:
|
|
30
|
+
2026-03-06T21:27:30.944Z [success] Removed schedule for /Users/davidmeirlevy/dev/qelos/aidev
|
|
31
|
+
|
|
32
|
+
────────────────────────────────────────────────────────────
|
|
33
|
+
2026-03-06T21:28:04.192Z [run] started
|
|
34
|
+
────────────────────────────────────────────────────────────
|
|
35
|
+
2026-03-06T21:28:04.193Z [info] Fetching tasks (filter: all)...
|
|
36
|
+
2026-03-06T21:28:04.585Z [info] Found 0 tagged task(s)
|
|
37
|
+
2026-03-06T21:28:04.585Z [success] Done. Processed: 0, Skipped: 0
|
|
38
|
+
|
|
39
|
+
────────────────────────────────────────────────────────────
|
|
40
|
+
2026-03-06T21:28:18.615Z [run] started
|
|
41
|
+
────────────────────────────────────────────────────────────
|
|
42
|
+
2026-03-06T21:28:18.616Z [info] Fetching tasks (filter: all)...
|
|
43
|
+
2026-03-06T21:28:18.968Z [info] Found 1 tagged task(s)
|
|
44
|
+
2026-03-06T21:28:18.969Z [task] [86c8nt813] "add support in jira" (status: open)
|
|
45
|
+
2026-03-06T21:28:20.776Z [info] Running Cursor Agent...
|
|
46
|
+
2026-03-06T21:28:22.010Z [info] Implementing task: add support in jira
|
|
47
|
+
2026-03-06T21:28:26.672Z [info] Running cursor...
|
|
48
|
+
2026-03-06T21:28:26.673Z [info] Running Cursor Agent...
|
|
49
|
+
2026-03-06T21:28:30.671Z [success] Task implemented: branch 86c8nt813/add-support-in-jira pushed
|
|
50
|
+
2026-03-06T21:28:30.672Z [success] Done. Processed: 1, Skipped: 0
|
|
51
|
+
|
|
52
|
+
────────────────────────────────────────────────────────────
|
|
53
|
+
2026-03-06T21:32:15.245Z [run] started
|
|
54
|
+
────────────────────────────────────────────────────────────
|
|
55
|
+
2026-03-06T21:32:15.246Z [info] Fetching tasks (filter: all)...
|
|
56
|
+
2026-03-06T21:32:15.656Z [info] Found 1 tagged task(s)
|
|
57
|
+
2026-03-06T21:32:15.657Z [task] [86c8nt813] "add support in jira" (status: open)
|
|
58
|
+
2026-03-06T21:32:17.392Z [success] Done. Processed: 0, Skipped: 1
|
|
59
|
+
|
|
60
|
+
────────────────────────────────────────────────────────────
|
|
61
|
+
2026-03-06T21:32:52.675Z [run] started
|
|
62
|
+
────────────────────────────────────────────────────────────
|
|
63
|
+
2026-03-06T21:32:52.676Z [info] Fetching tasks (filter: all)...
|
|
64
|
+
2026-03-06T21:32:53.225Z [info] Found 1 tagged task(s)
|
|
65
|
+
2026-03-06T21:32:53.226Z [task] [86c8nt813] "add support in jira" (status: open)
|
|
66
|
+
2026-03-06T21:32:54.967Z [success] Done. Processed: 0, Skipped: 1
|
|
67
|
+
|
|
68
|
+
────────────────────────────────────────────────────────────
|
|
69
|
+
2026-03-06T21:35:57.432Z [run] started
|
|
70
|
+
────────────────────────────────────────────────────────────
|
|
71
|
+
2026-03-06T21:35:57.433Z [info] Fetching tasks (filter: all)...
|
|
72
|
+
2026-03-06T21:35:58.108Z [info] Found 1 tagged task(s)
|
|
73
|
+
2026-03-06T21:35:58.109Z [task] [86c8nt813] "add support in jira" (status: open)
|
|
74
|
+
2026-03-06T21:35:59.928Z [info] Running Cursor Agent...
|
|
75
|
+
2026-03-06T21:36:01.088Z [info] Implementing task: add support in jira
|
|
76
|
+
2026-03-06T21:36:06.405Z [info] Running cursor...
|
|
77
|
+
2026-03-06T21:36:06.406Z [info] Running Cursor Agent...
|
|
78
|
+
2026-03-06T21:36:07.575Z [warn] cursor produced no file changes — trying next runner
|
|
79
|
+
2026-03-06T21:36:07.576Z [info] Running claude...
|
|
80
|
+
2026-03-06T21:36:07.576Z [info] Running Claude CLI...
|
|
81
|
+
2026-03-06T21:39:03.133Z [success] Task implemented: branch 86c8nt813/add-support-in-jira pushed
|
|
82
|
+
2026-03-06T21:39:03.135Z [success] Done. Processed: 1, Skipped: 0
|
|
83
|
+
|
|
84
|
+
────────────────────────────────────────────────────────────
|
|
85
|
+
2026-03-06T21:43:29.757Z [run] started
|
|
86
|
+
────────────────────────────────────────────────────────────
|
|
87
|
+
2026-03-06T21:43:29.761Z [info] Fetching tasks (filter: all)...
|
|
88
|
+
2026-03-06T21:43:30.188Z [info] Found 0 tagged task(s)
|
|
89
|
+
2026-03-06T21:43:30.189Z [success] Done. Processed: 0, Skipped: 0
|
|
90
|
+
2026-03-06T21:44:53.140Z [warn] No aidev schedules found
|
|
91
|
+
2026-03-06T21:44:53.140Z [info] Use "aidev schedule set" to configure one.
|
|
92
|
+
2026-03-06T21:45:08.973Z [success] Cron schedule set: */15 * * * *
|
|
93
|
+
2026-03-06T21:45:08.974Z [info] Entry: */15 * * * * cd /Users/davidmeirlevy/dev/qelos/aidev && /Users/davidmeirlevy/.nvm/versions/node/v22.14.0/bin/aidev run # aidev-cwd:/Users/davidmeirlevy/dev/qelos/aidev
|
|
94
|
+
2026-03-06T21:45:15.349Z [info] Scheduled aidev jobs:
|
|
95
|
+
|
|
96
|
+
────────────────────────────────────────────────────────────
|
|
97
|
+
2026-03-06T21:47:27.535Z [run] started
|
|
98
|
+
────────────────────────────────────────────────────────────
|
|
99
|
+
2026-03-06T21:47:27.539Z [info] Fetching tasks (filter: all)...
|
|
100
|
+
2026-03-06T21:47:27.945Z [info] Found 1 tagged task(s)
|
|
101
|
+
2026-03-06T21:47:27.946Z [task] [86c8ntef5] "validate claude and cursor permissions on init" (status: open)
|
|
102
|
+
2026-03-06T21:47:29.692Z [info] Running Cursor Agent...
|
|
103
|
+
2026-03-06T21:47:52.926Z [info] Posted clarification question, set status to pending
|
|
104
|
+
2026-03-06T21:47:52.927Z [success] Done. Processed: 0, Skipped: 1
|
|
105
|
+
|
|
106
|
+
────────────────────────────────────────────────────────────
|
|
107
|
+
2026-03-06T21:49:48.085Z [run] started
|
|
108
|
+
────────────────────────────────────────────────────────────
|
|
109
|
+
2026-03-06T21:49:48.089Z [info] Fetching tasks (filter: all)...
|
|
110
|
+
2026-03-06T21:49:48.557Z [info] Found 2 tagged task(s)
|
|
111
|
+
2026-03-06T21:49:48.558Z [task] [86c8ntepp] "add support in windsurf as agent" (status: open)
|
|
112
|
+
2026-03-06T21:49:50.309Z [info] Running Cursor Agent...
|
|
113
|
+
2026-03-06T21:50:06.631Z [info] Posted clarification question, set status to pending
|
|
114
|
+
2026-03-06T21:50:06.631Z [task] [86c8ntef5] "validate claude and cursor permissions on init" (status: pending)
|
|
115
|
+
2026-03-06T21:50:08.595Z [info] Pending task has a human reply — proceeding
|
|
116
|
+
2026-03-06T21:50:08.596Z [info] Implementing task: validate claude and cursor permissions on init
|
|
117
|
+
2026-03-06T21:50:13.541Z [info] Running cursor...
|
|
118
|
+
2026-03-06T21:50:13.541Z [info] Running Cursor Agent...
|
|
119
|
+
2026-03-06T21:56:08.701Z [error] TypeError: fetch failed
|
|
120
|
+
|
|
121
|
+
────────────────────────────────────────────────────────────
|
|
122
|
+
2026-03-06T21:57:49.637Z [run] started
|
|
123
|
+
────────────────────────────────────────────────────────────
|
|
124
|
+
2026-03-06T21:57:49.640Z [info] Fetching tasks (filter: all)...
|
|
125
|
+
2026-03-06T21:57:49.985Z [info] Found 3 tagged task(s)
|
|
126
|
+
2026-03-06T21:57:49.986Z [task] [86c8ntgm6] "bugfix: fetch failed" (status: open)
|
|
127
|
+
2026-03-06T21:57:51.779Z [info] Running Cursor Agent...
|
|
128
|
+
2026-03-06T21:58:52.412Z [info] Implementing task: bugfix: fetch failed
|
|
129
|
+
2026-03-06T21:58:57.071Z [info] Running cursor...
|
|
130
|
+
2026-03-06T21:58:57.072Z [info] Running Cursor Agent...
|
|
131
|
+
2026-03-06T22:01:35.561Z [success] Task implemented: branch 86c8ntgm6/bugfix-fetch-failed pushed
|
|
132
|
+
2026-03-06T22:01:35.562Z [task] [86c8ntepp] "add support in windsurf as agent" (status: pending)
|
|
133
|
+
2026-03-06T22:01:37.528Z [info] Pending task has a human reply — proceeding
|
|
134
|
+
2026-03-06T22:01:37.529Z [info] Implementing task: add support in windsurf as agent
|
|
135
|
+
2026-03-06T22:01:42.489Z [info] Running cursor...
|
|
136
|
+
2026-03-06T22:01:42.490Z [info] Running Cursor Agent...
|
|
137
|
+
2026-03-06T22:04:35.403Z [success] Task implemented: branch 86c8ntepp/add-support-in-windsurf-as-agent pushed
|
|
138
|
+
2026-03-06T22:04:35.404Z [task] [86c8ntef5] "validate claude and cursor permissions on init" (status: in progress)
|
|
139
|
+
2026-03-06T22:04:37.127Z [success] Done. Processed: 2, Skipped: 1
|
|
@@ -65,11 +65,19 @@ const init_1 = require("../commands/init");
|
|
|
65
65
|
});
|
|
66
66
|
// ─── renderEnv ───────────────────────────────────────────────────────────────
|
|
67
67
|
const baseAnswers = {
|
|
68
|
+
provider: 'clickup',
|
|
68
69
|
clickupApiKey: 'pk_abc123',
|
|
69
70
|
clickupTeamId: 'team_456',
|
|
70
71
|
clickupTag: 'myproject',
|
|
71
72
|
clickupPendingStatus: 'pending',
|
|
72
73
|
clickupInReviewStatus: 'review',
|
|
74
|
+
jiraBaseUrl: '',
|
|
75
|
+
jiraEmail: '',
|
|
76
|
+
jiraApiToken: '',
|
|
77
|
+
jiraProject: '',
|
|
78
|
+
jiraLabel: '',
|
|
79
|
+
jiraPendingStatus: '',
|
|
80
|
+
jiraInReviewStatus: '',
|
|
73
81
|
assigneeTag: '',
|
|
74
82
|
gitRemote: 'origin',
|
|
75
83
|
githubBaseBranch: 'main',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/permissions.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,151 @@
|
|
|
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
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const node_test_1 = require("node:test");
|
|
40
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
41
|
+
const fs = __importStar(require("node:fs"));
|
|
42
|
+
const os = __importStar(require("node:os"));
|
|
43
|
+
const path = __importStar(require("node:path"));
|
|
44
|
+
const permissions_1 = require("../permissions");
|
|
45
|
+
// ─── permissionCovers ─────────────────────────────────────────────────────
|
|
46
|
+
(0, node_test_1.describe)('permissionCovers', () => {
|
|
47
|
+
(0, node_test_1.it)('exact match returns true', () => {
|
|
48
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(git:*)', 'Bash(git:*)'), true);
|
|
49
|
+
});
|
|
50
|
+
(0, node_test_1.it)('broader command covers narrower one', () => {
|
|
51
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(npm:*)', 'Bash(npm install:*)'), true);
|
|
52
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(npm:*)', 'Bash(npm run:*)'), true);
|
|
53
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(npm:*)', 'Bash(npm test:*)'), true);
|
|
54
|
+
});
|
|
55
|
+
(0, node_test_1.it)('narrower command does not cover broader one', () => {
|
|
56
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(npm install:*)', 'Bash(npm:*)'), false);
|
|
57
|
+
});
|
|
58
|
+
(0, node_test_1.it)('wildcard * covers everything', () => {
|
|
59
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(*)', 'Bash(git:*)'), true);
|
|
60
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(*)', 'Bash(npm:*)'), true);
|
|
61
|
+
});
|
|
62
|
+
(0, node_test_1.it)('different tools do not cover each other', () => {
|
|
63
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Read', 'Write'), false);
|
|
64
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(git:*)', 'Edit'), false);
|
|
65
|
+
});
|
|
66
|
+
(0, node_test_1.it)('different tool types return false', () => {
|
|
67
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(git:*)', 'Bash(npm:*)'), false);
|
|
68
|
+
});
|
|
69
|
+
(0, node_test_1.it)('similar prefix without word boundary returns false', () => {
|
|
70
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Bash(npm:*)', 'Bash(npx:*)'), false);
|
|
71
|
+
});
|
|
72
|
+
(0, node_test_1.it)('simple tool names match exactly', () => {
|
|
73
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Read', 'Read'), true);
|
|
74
|
+
strict_1.default.equal((0, permissions_1.permissionCovers)('Write', 'Write'), true);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
// ─── getMissingPermissions ────────────────────────────────────────────────
|
|
78
|
+
(0, node_test_1.describe)('getMissingPermissions', () => {
|
|
79
|
+
(0, node_test_1.it)('returns all when nothing is allowed', () => {
|
|
80
|
+
const required = ['Bash(git:*)', 'Bash(npm:*)'];
|
|
81
|
+
const missing = (0, permissions_1.getMissingPermissions)(required, []);
|
|
82
|
+
strict_1.default.deepEqual(missing, required);
|
|
83
|
+
});
|
|
84
|
+
(0, node_test_1.it)('returns empty when all are covered', () => {
|
|
85
|
+
const required = ['Bash(git:*)', 'Bash(npm:*)'];
|
|
86
|
+
const missing = (0, permissions_1.getMissingPermissions)(required, ['Bash(git:*)', 'Bash(npm:*)']);
|
|
87
|
+
strict_1.default.deepEqual(missing, []);
|
|
88
|
+
});
|
|
89
|
+
(0, node_test_1.it)('returns only the missing ones', () => {
|
|
90
|
+
const required = ['Bash(git:*)', 'Bash(npm:*)', 'Bash(node:*)'];
|
|
91
|
+
const missing = (0, permissions_1.getMissingPermissions)(required, ['Bash(git:*)', 'Bash(node:*)']);
|
|
92
|
+
strict_1.default.deepEqual(missing, ['Bash(npm:*)']);
|
|
93
|
+
});
|
|
94
|
+
(0, node_test_1.it)('recognises broader existing permissions', () => {
|
|
95
|
+
const required = ['Bash(npm install:*)', 'Bash(npm run:*)'];
|
|
96
|
+
const missing = (0, permissions_1.getMissingPermissions)(required, ['Bash(npm:*)']);
|
|
97
|
+
strict_1.default.deepEqual(missing, []);
|
|
98
|
+
});
|
|
99
|
+
(0, node_test_1.it)('does not accept narrower existing as coverage for broader required', () => {
|
|
100
|
+
const required = ['Bash(npm:*)'];
|
|
101
|
+
const missing = (0, permissions_1.getMissingPermissions)(required, ['Bash(npm install:*)', 'Bash(npm run:*)']);
|
|
102
|
+
strict_1.default.deepEqual(missing, ['Bash(npm:*)']);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
// ─── readClaudeSettings ──────────────────────────────────────────────────
|
|
106
|
+
function withTmpDir(fn) {
|
|
107
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'aidev-perm-test-'));
|
|
108
|
+
try {
|
|
109
|
+
fn(dir);
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
(0, node_test_1.describe)('readClaudeSettings', () => {
|
|
116
|
+
(0, node_test_1.it)('returns empty when no settings files exist', () => {
|
|
117
|
+
withTmpDir((dir) => {
|
|
118
|
+
const settings = (0, permissions_1.readClaudeSettings)(dir);
|
|
119
|
+
strict_1.default.deepEqual(settings, {});
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
(0, node_test_1.it)('reads from .claude/settings.local.json', () => {
|
|
123
|
+
withTmpDir((dir) => {
|
|
124
|
+
const claudeDir = path.join(dir, '.claude');
|
|
125
|
+
fs.mkdirSync(claudeDir);
|
|
126
|
+
fs.writeFileSync(path.join(claudeDir, 'settings.local.json'), JSON.stringify({ permissions: { allow: ['Bash(git:*)'] } }), 'utf8');
|
|
127
|
+
const settings = (0, permissions_1.readClaudeSettings)(dir);
|
|
128
|
+
strict_1.default.deepEqual(settings.permissions?.allow, ['Bash(git:*)']);
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
(0, node_test_1.it)('merges project and local settings', () => {
|
|
132
|
+
withTmpDir((dir) => {
|
|
133
|
+
const claudeDir = path.join(dir, '.claude');
|
|
134
|
+
fs.mkdirSync(claudeDir);
|
|
135
|
+
fs.writeFileSync(path.join(claudeDir, 'settings.json'), JSON.stringify({ permissions: { allow: ['Bash(git:*)'] } }), 'utf8');
|
|
136
|
+
fs.writeFileSync(path.join(claudeDir, 'settings.local.json'), JSON.stringify({ permissions: { allow: ['Bash(npm:*)'] } }), 'utf8');
|
|
137
|
+
const settings = (0, permissions_1.readClaudeSettings)(dir);
|
|
138
|
+
strict_1.default.deepEqual(settings.permissions?.allow, ['Bash(git:*)', 'Bash(npm:*)']);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
(0, node_test_1.it)('handles malformed JSON gracefully', () => {
|
|
142
|
+
withTmpDir((dir) => {
|
|
143
|
+
const claudeDir = path.join(dir, '.claude');
|
|
144
|
+
fs.mkdirSync(claudeDir);
|
|
145
|
+
fs.writeFileSync(path.join(claudeDir, 'settings.local.json'), '{bad json', 'utf8');
|
|
146
|
+
const settings = (0, permissions_1.readClaudeSettings)(dir);
|
|
147
|
+
strict_1.default.deepEqual(settings, {});
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=permissions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.test.js","sourceRoot":"","sources":["../../src/__tests__/permissions.test.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/cursor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/ai/cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAI/C,qBAAa,YAAa,YAAW,QAAQ;IAC3C,QAAQ,CAAC,IAAI,YAAY;IAEzB,WAAW,IAAI,OAAO;IAIhB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/ai/cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAI/C,qBAAa,YAAa,YAAW,QAAQ;IAC3C,QAAQ,CAAC,IAAI,YAAY;IAEzB,WAAW,IAAI,OAAO;IAIhB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA4BhE"}
|
package/dist/ai/cursor.js
CHANGED
|
@@ -9,22 +9,25 @@ class CursorRunner {
|
|
|
9
9
|
this.name = 'cursor';
|
|
10
10
|
}
|
|
11
11
|
isAvailable() {
|
|
12
|
-
return (0, platform_1.commandExists)('
|
|
12
|
+
return (0, platform_1.commandExists)('agent');
|
|
13
13
|
}
|
|
14
14
|
async run(prompt, notes) {
|
|
15
15
|
const fullPrompt = notes ? `${prompt}\n\nAdditional context:\n${notes}` : prompt;
|
|
16
16
|
logger_1.logger.info('Running Cursor Agent...');
|
|
17
17
|
logger_1.logger.debug(`Prompt: ${fullPrompt.slice(0, 200)}...`);
|
|
18
|
-
const
|
|
18
|
+
const cwd = process.cwd();
|
|
19
|
+
const result = (0, node_child_process_1.spawnSync)('agent', ['--print', '--force', '--trust', '--workspace', cwd, fullPrompt], {
|
|
19
20
|
encoding: 'utf8',
|
|
20
21
|
timeout: 10 * 60 * 1000,
|
|
21
|
-
cwd
|
|
22
|
+
cwd,
|
|
22
23
|
});
|
|
23
24
|
const success = result.status === 0;
|
|
24
25
|
const output = result.stdout || '';
|
|
25
26
|
const error = result.stderr || '';
|
|
26
27
|
if (!success) {
|
|
27
|
-
logger_1.logger.warn(`Cursor exited with status ${result.status}`);
|
|
28
|
+
logger_1.logger.warn(`Cursor Agent exited with status ${result.status}`);
|
|
29
|
+
if (error)
|
|
30
|
+
logger_1.logger.debug(`stderr: ${error.slice(0, 300)}`);
|
|
28
31
|
}
|
|
29
32
|
return { success, output, error };
|
|
30
33
|
}
|
package/dist/ai/cursor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/ai/cursor.ts"],"names":[],"mappings":";;;AAAA,2DAA+C;AAE/C,sCAAmC;AACnC,0CAA4C;AAE5C,MAAa,YAAY;IAAzB;QACW,SAAI,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/ai/cursor.ts"],"names":[],"mappings":";;;AAAA,2DAA+C;AAE/C,sCAAmC;AACnC,0CAA4C;AAE5C,MAAa,YAAY;IAAzB;QACW,SAAI,GAAG,QAAQ,CAAC;IAkC3B,CAAC;IAhCC,WAAW;QACT,OAAO,IAAA,wBAAa,EAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,KAAc;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,4BAA4B,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjF,eAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,eAAM,CAAC,KAAK,CAAC,WAAW,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAA,8BAAS,EACtB,OAAO,EACP,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,CAAC,EACjE;YACE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACvB,GAAG;SACJ,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,mCAAmC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,IAAI,KAAK;gBAAE,eAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;CACF;AAnCD,oCAmCC"}
|
package/dist/ai/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAWlC,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAExD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/ai/index.js
CHANGED
|
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createRunners = createRunners;
|
|
4
4
|
const claude_1 = require("./claude");
|
|
5
5
|
const cursor_1 = require("./cursor");
|
|
6
|
+
const windsurf_1 = require("./windsurf");
|
|
6
7
|
const registry = {
|
|
7
8
|
claude: new claude_1.ClaudeRunner(),
|
|
8
9
|
cursor: new cursor_1.CursorRunner(),
|
|
10
|
+
windsurf: new windsurf_1.WindsurfRunner(),
|
|
9
11
|
};
|
|
10
12
|
function createRunners(config) {
|
|
11
13
|
return config.agents.map((name) => registry[name]);
|
package/dist/ai/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":";;AAYA,sCAEC;AAZD,qCAAwC;AACxC,qCAAwC;AACxC,yCAA4C;AAE5C,MAAM,QAAQ,GAA6B;IACzC,MAAM,EAAE,IAAI,qBAAY,EAAE;IAC1B,MAAM,EAAE,IAAI,qBAAY,EAAE;IAC1B,QAAQ,EAAE,IAAI,yBAAc,EAAE;CAC/B,CAAC;AAEF,SAAgB,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AIRunner, AIRunResult } from './base';
|
|
2
|
+
export declare class WindsurfRunner implements AIRunner {
|
|
3
|
+
readonly name = "windsurf";
|
|
4
|
+
isAvailable(): boolean;
|
|
5
|
+
run(prompt: string, notes?: string): Promise<AIRunResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=windsurf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windsurf.d.ts","sourceRoot":"","sources":["../../src/ai/windsurf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAI/C,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,cAAc;IAE3B,WAAW,IAAI,OAAO;IAIhB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA4BhE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WindsurfRunner = void 0;
|
|
4
|
+
const node_child_process_1 = require("node:child_process");
|
|
5
|
+
const logger_1 = require("../logger");
|
|
6
|
+
const platform_1 = require("../platform");
|
|
7
|
+
class WindsurfRunner {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.name = 'windsurf';
|
|
10
|
+
}
|
|
11
|
+
isAvailable() {
|
|
12
|
+
return (0, platform_1.commandExists)('windsurf');
|
|
13
|
+
}
|
|
14
|
+
async run(prompt, notes) {
|
|
15
|
+
const fullPrompt = notes ? `${prompt}\n\nAdditional context:\n${notes}` : prompt;
|
|
16
|
+
logger_1.logger.info('Running Windsurf...');
|
|
17
|
+
logger_1.logger.debug(`Prompt: ${fullPrompt.slice(0, 200)}...`);
|
|
18
|
+
const cwd = process.cwd();
|
|
19
|
+
const result = (0, node_child_process_1.spawnSync)('windsurf', ['--agent', '--print', '--trust', '--workspace', cwd, fullPrompt], {
|
|
20
|
+
encoding: 'utf8',
|
|
21
|
+
timeout: 10 * 60 * 1000,
|
|
22
|
+
cwd,
|
|
23
|
+
});
|
|
24
|
+
const success = result.status === 0;
|
|
25
|
+
const output = result.stdout || '';
|
|
26
|
+
const error = result.stderr || '';
|
|
27
|
+
if (!success) {
|
|
28
|
+
logger_1.logger.warn(`Windsurf exited with status ${result.status}`);
|
|
29
|
+
if (error)
|
|
30
|
+
logger_1.logger.debug(`stderr: ${error.slice(0, 300)}`);
|
|
31
|
+
}
|
|
32
|
+
return { success, output, error };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.WindsurfRunner = WindsurfRunner;
|
|
36
|
+
//# sourceMappingURL=windsurf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../src/ai/windsurf.ts"],"names":[],"mappings":";;;AAAA,2DAA+C;AAE/C,sCAAmC;AACnC,0CAA4C;AAE5C,MAAa,cAAc;IAA3B;QACW,SAAI,GAAG,UAAU,CAAC;IAkC7B,CAAC;IAhCC,WAAW;QACT,OAAO,IAAA,wBAAa,EAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,KAAc;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,4BAA4B,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjF,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnC,eAAM,CAAC,KAAK,CAAC,WAAW,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAA,8BAAS,EACtB,UAAU,EACV,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,CAAC,EACjE;YACE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACvB,GAAG;SACJ,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,eAAM,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,IAAI,KAAK;gBAAE,eAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;CACF;AAnCD,wCAmCC"}
|
package/dist/cli.js
CHANGED
|
@@ -66,9 +66,15 @@ scheduleCmd
|
|
|
66
66
|
});
|
|
67
67
|
scheduleCmd
|
|
68
68
|
.command('get')
|
|
69
|
-
.description('Show
|
|
69
|
+
.description('Show all aidev cron schedules as a table')
|
|
70
70
|
.action(async () => {
|
|
71
71
|
await (0, schedule_1.scheduleGetCommand)();
|
|
72
72
|
});
|
|
73
|
+
scheduleCmd
|
|
74
|
+
.command('remove [id]')
|
|
75
|
+
.description('Remove an aidev cron schedule by table ID (interactive if omitted)')
|
|
76
|
+
.action(async (id) => {
|
|
77
|
+
await (0, schedule_1.scheduleRemoveCommand)(id ? parseInt(id, 10) : undefined);
|
|
78
|
+
});
|
|
73
79
|
program.parse(process.argv);
|
|
74
80
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,0CAA8C;AAC9C,wCAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
export declare function ensureGitignore(dir?: string): void;
|
|
2
2
|
export interface Answers {
|
|
3
|
+
provider: 'clickup' | 'jira';
|
|
3
4
|
clickupApiKey: string;
|
|
4
5
|
clickupTeamId: string;
|
|
5
6
|
clickupTag: string;
|
|
6
7
|
clickupPendingStatus: string;
|
|
7
8
|
clickupInReviewStatus: string;
|
|
9
|
+
jiraBaseUrl: string;
|
|
10
|
+
jiraEmail: string;
|
|
11
|
+
jiraApiToken: string;
|
|
12
|
+
jiraProject: string;
|
|
13
|
+
jiraLabel: string;
|
|
14
|
+
jiraPendingStatus: string;
|
|
15
|
+
jiraInReviewStatus: string;
|
|
8
16
|
assigneeTag: string;
|
|
9
17
|
gitRemote: string;
|
|
10
18
|
githubBaseBranch: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkBA,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,IAAI,CAgBzD;AAQD,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAE7B,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,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;CACtB;AAoHD,2EAA2E;AAC3E,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAMD,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAsC5C;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAwJjD"}
|