@qelos/aidev 0.1.0 → 0.1.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.
Files changed (83) hide show
  1. package/README.md +3 -3
  2. package/dist/__tests__/git.test.d.ts +2 -0
  3. package/dist/__tests__/git.test.d.ts.map +1 -0
  4. package/dist/__tests__/git.test.js +35 -0
  5. package/dist/__tests__/git.test.js.map +1 -0
  6. package/dist/__tests__/init.test.d.ts +2 -0
  7. package/dist/__tests__/init.test.d.ts.map +1 -0
  8. package/dist/__tests__/init.test.js +157 -0
  9. package/dist/__tests__/init.test.js.map +1 -0
  10. package/dist/__tests__/platform.test.d.ts +2 -0
  11. package/dist/__tests__/platform.test.d.ts.map +1 -0
  12. package/dist/__tests__/platform.test.js +31 -0
  13. package/dist/__tests__/platform.test.js.map +1 -0
  14. package/dist/__tests__/run.test.d.ts +2 -0
  15. package/dist/__tests__/run.test.d.ts.map +1 -0
  16. package/dist/__tests__/run.test.js +77 -0
  17. package/dist/__tests__/run.test.js.map +1 -0
  18. package/dist/__tests__/schedule.test.d.ts +2 -0
  19. package/dist/__tests__/schedule.test.d.ts.map +1 -0
  20. package/dist/__tests__/schedule.test.js +49 -0
  21. package/dist/__tests__/schedule.test.js.map +1 -0
  22. package/dist/ai/base.d.ts +11 -0
  23. package/dist/ai/base.js.map +1 -0
  24. package/dist/ai/claude.d.ts +7 -0
  25. package/dist/ai/claude.js.map +1 -0
  26. package/dist/ai/cursor.d.ts +7 -0
  27. package/dist/ai/cursor.js.map +1 -0
  28. package/dist/ai/index.d.ts +5 -0
  29. package/dist/ai/index.js.map +1 -0
  30. package/dist/cli.d.ts +3 -0
  31. package/dist/cli.js.map +1 -0
  32. package/dist/commands/help.d.ts +2 -0
  33. package/dist/commands/help.js.map +1 -0
  34. package/dist/commands/init.d.ts +19 -0
  35. package/dist/commands/init.d.ts.map +1 -1
  36. package/dist/commands/init.js +7 -3
  37. package/dist/commands/init.js.map +1 -0
  38. package/dist/commands/run.d.ts +9 -0
  39. package/dist/commands/run.d.ts.map +1 -1
  40. package/dist/commands/run.js +3 -0
  41. package/dist/commands/run.js.map +1 -0
  42. package/dist/commands/schedule.d.ts +10 -0
  43. package/dist/commands/schedule.d.ts.map +1 -1
  44. package/dist/commands/schedule.js +2 -0
  45. package/dist/commands/schedule.js.map +1 -0
  46. package/dist/config.d.ts +3 -0
  47. package/dist/config.js.map +1 -0
  48. package/dist/git.d.ts +12 -0
  49. package/dist/git.js.map +1 -0
  50. package/dist/logger.d.ts +10 -0
  51. package/dist/logger.js.map +1 -0
  52. package/dist/platform.d.ts +9 -0
  53. package/dist/platform.js.map +1 -0
  54. package/dist/providers/base.d.ts +8 -0
  55. package/dist/providers/base.js.map +1 -0
  56. package/dist/providers/clickup.d.ts +15 -0
  57. package/dist/providers/clickup.js.map +1 -0
  58. package/dist/providers/index.d.ts +5 -0
  59. package/dist/providers/index.js.map +1 -0
  60. package/dist/types.d.ts +31 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +19 -5
  63. package/.claude/settings.local.json +0 -9
  64. package/.cursor/rules/aidev.mdc +0 -57
  65. package/CLAUDE.md +0 -32
  66. package/src/ai/base.ts +0 -11
  67. package/src/ai/claude.ts +0 -35
  68. package/src/ai/cursor.ts +0 -35
  69. package/src/ai/index.ts +0 -15
  70. package/src/cli.ts +0 -83
  71. package/src/commands/help.ts +0 -43
  72. package/src/commands/init.ts +0 -296
  73. package/src/commands/run.ts +0 -283
  74. package/src/commands/schedule.ts +0 -179
  75. package/src/config.ts +0 -59
  76. package/src/git.ts +0 -109
  77. package/src/logger.ts +0 -53
  78. package/src/platform.ts +0 -33
  79. package/src/providers/base.ts +0 -8
  80. package/src/providers/clickup.ts +0 -107
  81. package/src/providers/index.ts +0 -20
  82. package/src/types.ts +0 -33
  83. package/tsconfig.json +0 -19
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # aidev
1
+ # @qelos/aidev
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/aidev.svg?style=flat-square)](https://www.npmjs.com/package/aidev)
3
+ [![npm version](https://img.shields.io/npm/v/%40qelos%2Faidev.svg?style=flat-square)](https://www.npmjs.com/package/@qelos/aidev)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](./LICENSE)
5
5
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg?style=flat-square)](https://nodejs.org)
6
6
 
@@ -43,7 +43,7 @@ ClickUp task → AI implements → git push → "in review"
43
43
  ## Quick start
44
44
 
45
45
  ```bash
46
- npm install -g aidev
46
+ npm install -g @qelos/aidev
47
47
  ```
48
48
 
49
49
  Navigate to your project and run the interactive setup:
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/git.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const git_1 = require("../git");
9
+ (0, node_test_1.describe)('slugify', () => {
10
+ (0, node_test_1.it)('lowercases input', () => {
11
+ strict_1.default.equal((0, git_1.slugify)('FIX LOGIN BUG'), 'fix-login-bug');
12
+ });
13
+ (0, node_test_1.it)('replaces spaces with dashes', () => {
14
+ strict_1.default.equal((0, git_1.slugify)('fix login bug'), 'fix-login-bug');
15
+ });
16
+ (0, node_test_1.it)('removes special characters', () => {
17
+ strict_1.default.equal((0, git_1.slugify)('feat: add @user support!'), 'feat-add-user-support');
18
+ });
19
+ (0, node_test_1.it)('collapses multiple separators into one dash', () => {
20
+ strict_1.default.equal((0, git_1.slugify)('hello---world'), 'hello-world');
21
+ });
22
+ (0, node_test_1.it)('strips leading and trailing dashes', () => {
23
+ strict_1.default.equal((0, git_1.slugify)('---hello---'), 'hello');
24
+ });
25
+ (0, node_test_1.it)('truncates to 50 characters', () => {
26
+ strict_1.default.equal((0, git_1.slugify)('a'.repeat(100)).length, 50);
27
+ });
28
+ (0, node_test_1.it)('handles empty string', () => {
29
+ strict_1.default.equal((0, git_1.slugify)(''), '');
30
+ });
31
+ (0, node_test_1.it)('handles string with only special chars', () => {
32
+ strict_1.default.equal((0, git_1.slugify)('!!!'), '');
33
+ });
34
+ });
35
+ //# sourceMappingURL=git.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.test.js","sourceRoot":"","sources":["../../src/__tests__/git.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAyC;AACzC,gEAAwC;AACxC,gCAAiC;AAEjC,IAAA,oBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAA,cAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,0BAA0B,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,eAAe,CAAC,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,gBAAM,CAAC,KAAK,CAAC,IAAA,aAAO,EAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=init.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,157 @@
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 init_1 = require("../commands/init");
45
+ // ─── envVal ──────────────────────────────────────────────────────────────────
46
+ (0, node_test_1.describe)('envVal', () => {
47
+ (0, node_test_1.it)('returns plain value unchanged', () => {
48
+ strict_1.default.equal((0, init_1.envVal)('simple'), 'simple');
49
+ });
50
+ (0, node_test_1.it)('wraps values containing spaces in double quotes', () => {
51
+ strict_1.default.equal((0, init_1.envVal)('in review'), '"in review"');
52
+ });
53
+ (0, node_test_1.it)('wraps values containing # in double quotes', () => {
54
+ strict_1.default.equal((0, init_1.envVal)('hello#comment'), '"hello#comment"');
55
+ });
56
+ (0, node_test_1.it)('wraps values containing single quotes', () => {
57
+ strict_1.default.equal((0, init_1.envVal)("it's"), `"it's"`);
58
+ });
59
+ (0, node_test_1.it)('escapes existing double quotes inside the value', () => {
60
+ strict_1.default.equal((0, init_1.envVal)('say "hi"'), '"say \\"hi\\""');
61
+ });
62
+ (0, node_test_1.it)('returns empty string unchanged', () => {
63
+ strict_1.default.equal((0, init_1.envVal)(''), '');
64
+ });
65
+ });
66
+ // ─── renderEnv ───────────────────────────────────────────────────────────────
67
+ const baseAnswers = {
68
+ clickupApiKey: 'pk_abc123',
69
+ clickupTeamId: 'team_456',
70
+ clickupTag: 'myproject',
71
+ clickupPendingStatus: 'pending',
72
+ clickupInReviewStatus: 'review',
73
+ assigneeTag: '',
74
+ gitRemote: 'origin',
75
+ githubBaseBranch: 'main',
76
+ githubRepo: 'owner/repo',
77
+ agents: 'claude,cursor',
78
+ devNotesMode: 'smart',
79
+ };
80
+ (0, node_test_1.describe)('renderEnv', () => {
81
+ (0, node_test_1.it)('writes non-empty values', () => {
82
+ const out = (0, init_1.renderEnv)(baseAnswers);
83
+ strict_1.default.ok(out.includes('CLICKUP_API_KEY=pk_abc123'));
84
+ strict_1.default.ok(out.includes('CLICKUP_TEAM_ID=team_456'));
85
+ strict_1.default.ok(out.includes('CLICKUP_TAG=myproject'));
86
+ strict_1.default.ok(out.includes('AGENTS=claude,cursor'));
87
+ strict_1.default.ok(out.includes('GITHUB_REPO=owner/repo'));
88
+ });
89
+ (0, node_test_1.it)('omits empty optional values', () => {
90
+ const out = (0, init_1.renderEnv)(baseAnswers);
91
+ strict_1.default.ok(!out.includes('ASSIGNEE_TAG'));
92
+ });
93
+ (0, node_test_1.it)('quotes status values that contain spaces', () => {
94
+ const out = (0, init_1.renderEnv)({ ...baseAnswers, clickupInReviewStatus: 'in review' });
95
+ strict_1.default.ok(out.includes('CLICKUP_IN_REVIEW_STATUS="in review"'));
96
+ });
97
+ (0, node_test_1.it)('quotes pending status if it has spaces', () => {
98
+ const out = (0, init_1.renderEnv)({ ...baseAnswers, clickupPendingStatus: 'needs info' });
99
+ strict_1.default.ok(out.includes('CLICKUP_PENDING_STATUS="needs info"'));
100
+ });
101
+ (0, node_test_1.it)('includes comment before AGENTS', () => {
102
+ const out = (0, init_1.renderEnv)(baseAnswers);
103
+ strict_1.default.ok(out.includes('# Agents to use'));
104
+ });
105
+ (0, node_test_1.it)('omits GITHUB_REPO when empty', () => {
106
+ const out = (0, init_1.renderEnv)({ ...baseAnswers, githubRepo: '' });
107
+ strict_1.default.ok(!out.includes('GITHUB_REPO'));
108
+ });
109
+ });
110
+ // ─── ensureGitignore ─────────────────────────────────────────────────────────
111
+ function withTmpDir(fn) {
112
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'aidev-test-'));
113
+ try {
114
+ fn(dir);
115
+ }
116
+ finally {
117
+ fs.rmSync(dir, { recursive: true, force: true });
118
+ }
119
+ }
120
+ (0, node_test_1.describe)('ensureGitignore', () => {
121
+ (0, node_test_1.it)('creates .gitignore with required entries when file does not exist', () => {
122
+ withTmpDir((dir) => {
123
+ (0, init_1.ensureGitignore)(dir);
124
+ const content = fs.readFileSync(path.join(dir, '.gitignore'), 'utf8');
125
+ strict_1.default.ok(content.includes('.env.*'));
126
+ strict_1.default.ok(content.includes('*.log'));
127
+ });
128
+ });
129
+ (0, node_test_1.it)('appends missing entries to an existing .gitignore', () => {
130
+ withTmpDir((dir) => {
131
+ fs.writeFileSync(path.join(dir, '.gitignore'), 'node_modules/\n');
132
+ (0, init_1.ensureGitignore)(dir);
133
+ const content = fs.readFileSync(path.join(dir, '.gitignore'), 'utf8');
134
+ strict_1.default.ok(content.includes('node_modules/'));
135
+ strict_1.default.ok(content.includes('.env.*'));
136
+ strict_1.default.ok(content.includes('*.log'));
137
+ });
138
+ });
139
+ (0, node_test_1.it)('does not duplicate .env.* if already present', () => {
140
+ withTmpDir((dir) => {
141
+ fs.writeFileSync(path.join(dir, '.gitignore'), '.env.*\n*.log\n');
142
+ (0, init_1.ensureGitignore)(dir);
143
+ const content = fs.readFileSync(path.join(dir, '.gitignore'), 'utf8');
144
+ strict_1.default.equal((content.match(/\.env\.\*/g) ?? []).length, 1);
145
+ strict_1.default.equal((content.match(/\*\.log/g) ?? []).length, 1);
146
+ });
147
+ });
148
+ (0, node_test_1.it)('handles existing file without trailing newline', () => {
149
+ withTmpDir((dir) => {
150
+ fs.writeFileSync(path.join(dir, '.gitignore'), 'dist');
151
+ (0, init_1.ensureGitignore)(dir);
152
+ const content = fs.readFileSync(path.join(dir, '.gitignore'), 'utf8');
153
+ strict_1.default.ok(content.includes('\n.env.*'));
154
+ });
155
+ });
156
+ });
157
+ //# sourceMappingURL=init.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=platform.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/platform.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const platform_1 = require("../platform");
9
+ const FAKE = '__aidev_definitely_not_a_real_binary_xyz__';
10
+ (0, node_test_1.describe)('commandExists', () => {
11
+ (0, node_test_1.it)('returns true for node (always in PATH when tests run)', () => {
12
+ strict_1.default.equal((0, platform_1.commandExists)('node'), true);
13
+ });
14
+ (0, node_test_1.it)('returns false for a non-existent binary', () => {
15
+ strict_1.default.equal((0, platform_1.commandExists)(FAKE), false);
16
+ });
17
+ });
18
+ (0, node_test_1.describe)('findBin', () => {
19
+ (0, node_test_1.it)('returns a non-null path for node', () => {
20
+ const result = (0, platform_1.findBin)('node');
21
+ strict_1.default.notEqual(result, null);
22
+ });
23
+ (0, node_test_1.it)('returned path contains "node"', () => {
24
+ const result = (0, platform_1.findBin)('node');
25
+ strict_1.default.ok(result?.toLowerCase().includes('node'));
26
+ });
27
+ (0, node_test_1.it)('returns null for a non-existent binary', () => {
28
+ strict_1.default.equal((0, platform_1.findBin)(FAKE), null);
29
+ });
30
+ });
31
+ //# sourceMappingURL=platform.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.test.js","sourceRoot":"","sources":["../../src/__tests__/platform.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAyC;AACzC,gEAAwC;AACxC,0CAAqD;AAErD,MAAM,IAAI,GAAG,4CAA4C,CAAC;AAE1D,IAAA,oBAAQ,EAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAA,cAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,gBAAM,CAAC,KAAK,CAAC,IAAA,wBAAa,EAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,oBAAQ,EAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAA,cAAE,EAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,MAAM,CAAC,CAAC;QAC/B,gBAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,IAAA,kBAAO,EAAC,MAAM,CAAC,CAAC;QAC/B,gBAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,gBAAM,CAAC,KAAK,CAAC,IAAA,kBAAO,EAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=run.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/run.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const run_1 = require("../commands/run");
9
+ const baseConfig = {
10
+ githubRepo: 'owner/repo',
11
+ githubBaseBranch: 'main',
12
+ clickupInReviewStatus: 'review',
13
+ };
14
+ // ─── buildPRUrl ───────────────────────────────────────────────────────────────
15
+ (0, node_test_1.describe)('buildPRUrl', () => {
16
+ (0, node_test_1.it)('returns a GitHub compare URL', () => {
17
+ const url = (0, run_1.buildPRUrl)(baseConfig, 'abc123/fix-login');
18
+ strict_1.default.ok(url.startsWith('https://github.com/owner/repo/compare/'));
19
+ strict_1.default.ok(url.includes('main...'));
20
+ strict_1.default.ok(url.includes('expand=1'));
21
+ });
22
+ (0, node_test_1.it)('URL-encodes the branch name', () => {
23
+ const url = (0, run_1.buildPRUrl)(baseConfig, 'abc/fix login');
24
+ strict_1.default.ok(url.includes('fix%20login'));
25
+ });
26
+ (0, node_test_1.it)('returns empty string when githubRepo is not set', () => {
27
+ const url = (0, run_1.buildPRUrl)({ ...baseConfig, githubRepo: '' }, 'abc/branch');
28
+ strict_1.default.equal(url, '');
29
+ });
30
+ });
31
+ // ─── buildCompletionComment ───────────────────────────────────────────────────
32
+ (0, node_test_1.describe)('buildCompletionComment', () => {
33
+ (0, node_test_1.it)('includes the branch name', () => {
34
+ const comment = (0, run_1.buildCompletionComment)('abc123/fix-login', '', baseConfig);
35
+ strict_1.default.ok(comment.includes('abc123/fix-login'));
36
+ });
37
+ (0, node_test_1.it)('includes the in-review status', () => {
38
+ const comment = (0, run_1.buildCompletionComment)('abc/branch', '', baseConfig);
39
+ strict_1.default.ok(comment.includes('review'));
40
+ });
41
+ (0, node_test_1.it)('includes PR link when provided', () => {
42
+ const comment = (0, run_1.buildCompletionComment)('abc/branch', 'https://github.com/pr/1', baseConfig);
43
+ strict_1.default.ok(comment.includes('https://github.com/pr/1'));
44
+ });
45
+ (0, node_test_1.it)('omits PR link when empty', () => {
46
+ const comment = (0, run_1.buildCompletionComment)('abc/branch', '', baseConfig);
47
+ strict_1.default.ok(!comment.includes('https://'));
48
+ });
49
+ });
50
+ // ─── buildImplementPrompt ─────────────────────────────────────────────────────
51
+ (0, node_test_1.describe)('buildImplementPrompt', () => {
52
+ const task = {
53
+ id: 'abc123',
54
+ name: 'Fix login bug',
55
+ description: 'Users cannot log in with email.',
56
+ status: 'open',
57
+ url: 'https://app.clickup.com/t/abc123',
58
+ tags: ['myproject'],
59
+ };
60
+ (0, node_test_1.it)('includes the task name', () => {
61
+ const prompt = (0, run_1.buildImplementPrompt)(task, '');
62
+ strict_1.default.ok(prompt.includes('Fix login bug'));
63
+ });
64
+ (0, node_test_1.it)('includes the description', () => {
65
+ const prompt = (0, run_1.buildImplementPrompt)(task, '');
66
+ strict_1.default.ok(prompt.includes('Users cannot log in with email.'));
67
+ });
68
+ (0, node_test_1.it)('includes context when provided', () => {
69
+ const prompt = (0, run_1.buildImplementPrompt)(task, 'Use JWT tokens.');
70
+ strict_1.default.ok(prompt.includes('Use JWT tokens.'));
71
+ });
72
+ (0, node_test_1.it)('handles missing description gracefully', () => {
73
+ const prompt = (0, run_1.buildImplementPrompt)({ ...task, description: '' }, '');
74
+ strict_1.default.ok(prompt.includes('no description provided'));
75
+ });
76
+ });
77
+ //# sourceMappingURL=run.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.test.js","sourceRoot":"","sources":["../../src/__tests__/run.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schedule.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/schedule.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const schedule_1 = require("../commands/schedule");
9
+ (0, node_test_1.describe)('cronToSchtasksArgs', () => {
10
+ (0, node_test_1.it)('every 15 minutes', () => {
11
+ strict_1.default.deepEqual((0, schedule_1.cronToSchtasksArgs)('*/15 * * * *'), ['/sc', 'MINUTE', '/mo', '15']);
12
+ });
13
+ (0, node_test_1.it)('every 30 minutes', () => {
14
+ strict_1.default.deepEqual((0, schedule_1.cronToSchtasksArgs)('*/30 * * * *'), ['/sc', 'MINUTE', '/mo', '30']);
15
+ });
16
+ (0, node_test_1.it)('every hour', () => {
17
+ strict_1.default.deepEqual((0, schedule_1.cronToSchtasksArgs)('0 * * * *'), ['/sc', 'HOURLY', '/mo', '1']);
18
+ });
19
+ (0, node_test_1.it)('every 5 hours', () => {
20
+ strict_1.default.deepEqual((0, schedule_1.cronToSchtasksArgs)('0 */5 * * *'), ['/sc', 'HOURLY', '/mo', '5']);
21
+ });
22
+ (0, node_test_1.it)('daily at 8am — zero-pads hour', () => {
23
+ strict_1.default.deepEqual((0, schedule_1.cronToSchtasksArgs)('0 8 * * *'), ['/sc', 'DAILY', '/st', '08:00']);
24
+ });
25
+ (0, node_test_1.it)('daily at midnight (0 0)', () => {
26
+ strict_1.default.deepEqual((0, schedule_1.cronToSchtasksArgs)('0 0 * * *'), ['/sc', 'DAILY', '/st', '00:00']);
27
+ });
28
+ (0, node_test_1.it)('returns null for unsupported expressions', () => {
29
+ strict_1.default.equal((0, schedule_1.cronToSchtasksArgs)('0 9 * * 1'), null); // weekday not supported
30
+ strict_1.default.equal((0, schedule_1.cronToSchtasksArgs)('*/5 */2 * * *'), null);
31
+ strict_1.default.equal((0, schedule_1.cronToSchtasksArgs)('not a cron'), null);
32
+ });
33
+ });
34
+ (0, node_test_1.describe)('windowsTaskName', () => {
35
+ (0, node_test_1.it)('produces a name prefixed with aidev\\', () => {
36
+ strict_1.default.ok((0, schedule_1.windowsTaskName)('C:\\Users\\dev\\myproject').startsWith('aidev\\'));
37
+ });
38
+ (0, node_test_1.it)('removes colons and backslashes from path', () => {
39
+ const name = (0, schedule_1.windowsTaskName)('C:\\Users\\dev\\myproject');
40
+ strict_1.default.ok(!name.includes(':'));
41
+ strict_1.default.ok(!name.slice('aidev\\'.length).includes('\\'));
42
+ });
43
+ (0, node_test_1.it)('handles unix paths', () => {
44
+ const name = (0, schedule_1.windowsTaskName)('/home/user/myproject');
45
+ strict_1.default.ok(name.startsWith('aidev\\'));
46
+ strict_1.default.ok(!name.includes('/'));
47
+ });
48
+ });
49
+ //# sourceMappingURL=schedule.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule.test.js","sourceRoot":"","sources":["../../src/__tests__/schedule.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface AIRunResult {
2
+ success: boolean;
3
+ output: string;
4
+ error: string;
5
+ }
6
+ export interface AIRunner {
7
+ name: string;
8
+ isAvailable(): boolean;
9
+ run(prompt: string, notes?: string): Promise<AIRunResult>;
10
+ }
11
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/ai/base.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { AIRunner, AIRunResult } from './base';
2
+ export declare class ClaudeRunner implements AIRunner {
3
+ readonly name = "claude";
4
+ isAvailable(): boolean;
5
+ run(prompt: string, notes?: string): Promise<AIRunResult>;
6
+ }
7
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/ai/claude.ts"],"names":[],"mappings":";;;AAAA,2DAA+C;AAE/C,sCAAmC;AACnC,0CAA4C;AAE5C,MAAa,YAAY;IAAzB;QACW,SAAI,GAAG,QAAQ,CAAC;IA4B3B,CAAC;IA1BC,WAAW;QACT,OAAO,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;IACjC,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,uBAAuB,CAAC,CAAC;QACrC,eAAM,CAAC,KAAK,CAAC,WAAW,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,IAAA,8BAAS,EAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,gCAAgC,CAAC,EAAE;YACvF,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QAEH,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,6BAA6B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;CACF;AA7BD,oCA6BC"}
@@ -0,0 +1,7 @@
1
+ import { AIRunner, AIRunResult } from './base';
2
+ export declare class CursorRunner implements AIRunner {
3
+ readonly name = "cursor";
4
+ isAvailable(): boolean;
5
+ run(prompt: string, notes?: string): Promise<AIRunResult>;
6
+ }
7
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +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;IA4B3B,CAAC;IA1BC,WAAW;QACT,OAAO,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;IACjC,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,MAAM,GAAG,IAAA,8BAAS,EAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;YAC1D,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QAEH,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,6BAA6B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;CACF;AA7BD,oCA6BC"}
@@ -0,0 +1,5 @@
1
+ import { Config } from '../types';
2
+ import { AIRunner } from './base';
3
+ export declare function createRunners(config: Config): AIRunner[];
4
+ export { AIRunner };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":";;AAUA,sCAEC;AAVD,qCAAwC;AACxC,qCAAwC;AAExC,MAAM,QAAQ,GAA6B;IACzC,MAAM,EAAE,IAAI,qBAAY,EAAE;IAC1B,MAAM,EAAE,IAAI,qBAAY,EAAE;CAC3B,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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function helpCommand(): void;
2
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":";;;;;AAOA,kCAmCC;AA1CD,kDAA0B;AAE1B,MAAM,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC;AACrB,MAAM,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC;AACrB,MAAM,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC;AACpB,MAAM,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC;AAEtB,SAAgB,WAAW;IACzB,OAAO,CAAC,GAAG,CAAC;EACZ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;;EAEzB,CAAC,CAAC,OAAO,CAAC;IACR,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;;EAE9B,CAAC,CAAC,UAAU,CAAC;IACX,CAAC,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,YAAY,CAAC;IAC9E,CAAC,CAAC,KAAK,CAAC;IACR,CAAC,CAAC,UAAU,CAAC;IACb,CAAC,CAAC,aAAa,CAAC;IAChB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAChC,CAAC,CAAC,cAAc,CAAC;IACjB,CAAC,CAAC,MAAM,CAAC;;EAEX,CAAC,CAAC,UAAU,CAAC;IACX,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;IACzB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;IACxB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC;IAC7B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,mCAAmC,CAAC;IAChD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC;;EAEnC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,sCAAsC,CAAC;IACvD,CAAC,CAAC,iBAAiB,CAAC;IACpB,CAAC,CAAC,iBAAiB,CAAC;IACpB,CAAC,CAAC,aAAa,CAAC;IAChB,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,mCAAmC,CAAC;IACtG,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC;IAClE,CAAC,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC,0BAA0B,CAAC;IACtE,CAAC,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,CAAC;IAC7D,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC;;QAExC,CAAC,CAAC,YAAY,CAAC;CACtB,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare function ensureGitignore(dir?: string): void;
2
+ export interface Answers {
3
+ clickupApiKey: string;
4
+ clickupTeamId: string;
5
+ clickupTag: string;
6
+ clickupPendingStatus: string;
7
+ clickupInReviewStatus: string;
8
+ assigneeTag: string;
9
+ gitRemote: string;
10
+ githubBaseBranch: string;
11
+ githubRepo: string;
12
+ agents: string;
13
+ devNotesMode: string;
14
+ }
15
+ /** Wraps value in double quotes if it contains spaces or special chars. */
16
+ export declare function envVal(val: string): string;
17
+ export declare function renderEnv(a: Answers): string;
18
+ export declare function initCommand(): Promise<void>;
19
+ //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA0MA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA6FjD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAiBA,wBAAgB,eAAe,CAAC,GAAG,SAAgB,GAAG,IAAI,CAgBzD;AAQD,MAAM,WAAW,OAAO;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,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,CAsB5C;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA6FjD"}
@@ -36,6 +36,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ensureGitignore = ensureGitignore;
40
+ exports.envVal = envVal;
41
+ exports.renderEnv = renderEnv;
39
42
  exports.initCommand = initCommand;
40
43
  const fs = __importStar(require("node:fs"));
41
44
  const path = __importStar(require("node:path"));
@@ -51,8 +54,8 @@ const GITIGNORE_RULES = [
51
54
  ['.env.*', /^\.env[\.\*]/m],
52
55
  ['*.log', /^\*\.log/m],
53
56
  ];
54
- function ensureGitignore() {
55
- const gitignorePath = path.join(process.cwd(), '.gitignore');
57
+ function ensureGitignore(dir = process.cwd()) {
58
+ const gitignorePath = path.join(dir, '.gitignore');
56
59
  const existing = fs.existsSync(gitignorePath)
57
60
  ? fs.readFileSync(gitignorePath, 'utf8')
58
61
  : '';
@@ -64,7 +67,8 @@ function ensureGitignore() {
64
67
  const addition = (existing.endsWith('\n') || existing === '' ? '' : '\n')
65
68
  + missing.join('\n') + '\n';
66
69
  fs.appendFileSync(gitignorePath, addition, 'utf8');
67
- logger_1.logger.info(`.gitignore added: ${missing.join(', ')}`);
70
+ if (dir === process.cwd())
71
+ logger_1.logger.info(`.gitignore — added: ${missing.join(', ')}`);
68
72
  }
69
73
  function dim(s) {
70
74
  return chalk_1.default.dim(s);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Config, Task } from '../types';
2
+ import { TaskProvider } from '../providers';
3
+ import { AIRunner } from '../ai';
4
+ export type RunFilter = 'all' | 'open' | 'pending';
5
+ export declare function runCommand(filter: RunFilter, config: Config, provider: TaskProvider, runners: AIRunner[]): Promise<void>;
6
+ export declare function buildImplementPrompt(task: Task, context: string): string;
7
+ export declare function buildPRUrl(config: Config, branch: string): string;
8
+ export declare function buildCompletionComment(branch: string, prUrl: string, config: Config): string;
9
+ //# sourceMappingURL=run.d.ts.map