@qelos/aidev 0.2.8 → 0.2.11

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 (80) hide show
  1. package/.env.aidev.example +51 -37
  2. package/CONTRIBUTING.md +78 -78
  3. package/LICENSE +21 -21
  4. package/README.md +455 -453
  5. package/dist/__tests__/ai-runners.test.js +15 -10
  6. package/dist/__tests__/ai-runners.test.js.map +1 -1
  7. package/dist/__tests__/init.test.js +122 -1
  8. package/dist/__tests__/init.test.js.map +1 -1
  9. package/dist/__tests__/local-provider.test.js +31 -31
  10. package/dist/__tests__/platform.test.js +235 -20
  11. package/dist/__tests__/platform.test.js.map +1 -1
  12. package/dist/__tests__/providers.test.js +413 -21
  13. package/dist/__tests__/providers.test.js.map +1 -1
  14. package/dist/__tests__/run.test.js +19 -0
  15. package/dist/__tests__/run.test.js.map +1 -1
  16. package/dist/ai/antigravity.d.ts +12 -0
  17. package/dist/ai/antigravity.d.ts.map +1 -0
  18. package/dist/ai/antigravity.js +70 -0
  19. package/dist/ai/antigravity.js.map +1 -0
  20. package/dist/ai/codex.d.ts +11 -0
  21. package/dist/ai/codex.d.ts.map +1 -0
  22. package/dist/ai/codex.js +49 -0
  23. package/dist/ai/codex.js.map +1 -0
  24. package/dist/ai/windsurf.d.ts +7 -0
  25. package/dist/ai/windsurf.d.ts.map +1 -1
  26. package/dist/ai/windsurf.js +205 -58
  27. package/dist/ai/windsurf.js.map +1 -1
  28. package/dist/cli.js +2 -0
  29. package/dist/cli.js.map +1 -1
  30. package/dist/commands/help.js +61 -61
  31. package/dist/commands/help.js.map +1 -1
  32. package/dist/commands/init.d.ts +11 -1
  33. package/dist/commands/init.d.ts.map +1 -1
  34. package/dist/commands/init.js +116 -22
  35. package/dist/commands/init.js.map +1 -1
  36. package/dist/commands/run.d.ts +4 -0
  37. package/dist/commands/run.d.ts.map +1 -1
  38. package/dist/commands/run.js +155 -117
  39. package/dist/commands/run.js.map +1 -1
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/config.js +16 -1
  42. package/dist/config.js.map +1 -1
  43. package/dist/diagnostics.d.ts.map +1 -1
  44. package/dist/diagnostics.js +1 -0
  45. package/dist/diagnostics.js.map +1 -1
  46. package/dist/github.js +23 -23
  47. package/dist/platform.d.ts +20 -2
  48. package/dist/platform.d.ts.map +1 -1
  49. package/dist/platform.js +74 -3
  50. package/dist/platform.js.map +1 -1
  51. package/dist/providers/assets.d.ts +15 -0
  52. package/dist/providers/assets.d.ts.map +1 -0
  53. package/dist/providers/assets.js +153 -0
  54. package/dist/providers/assets.js.map +1 -0
  55. package/dist/providers/clickup.d.ts +4 -0
  56. package/dist/providers/clickup.d.ts.map +1 -1
  57. package/dist/providers/clickup.js +45 -8
  58. package/dist/providers/clickup.js.map +1 -1
  59. package/dist/providers/index.d.ts.map +1 -1
  60. package/dist/providers/index.js +6 -0
  61. package/dist/providers/index.js.map +1 -1
  62. package/dist/providers/jira.d.ts +11 -0
  63. package/dist/providers/jira.d.ts.map +1 -1
  64. package/dist/providers/jira.js +143 -11
  65. package/dist/providers/jira.js.map +1 -1
  66. package/dist/providers/linear.d.ts +19 -0
  67. package/dist/providers/linear.d.ts.map +1 -0
  68. package/dist/providers/linear.js +214 -0
  69. package/dist/providers/linear.js.map +1 -0
  70. package/dist/providers/monday.d.ts +18 -0
  71. package/dist/providers/monday.d.ts.map +1 -0
  72. package/dist/providers/monday.js +185 -0
  73. package/dist/providers/monday.js.map +1 -0
  74. package/dist/providers/notion.d.ts +21 -0
  75. package/dist/providers/notion.d.ts.map +1 -0
  76. package/dist/providers/notion.js +182 -0
  77. package/dist/providers/notion.js.map +1 -0
  78. package/dist/types.d.ts +11 -0
  79. package/dist/types.d.ts.map +1 -1
  80. package/package.json +50 -50
@@ -12,6 +12,7 @@ const TOOLS_TO_CHECK = [
12
12
  { name: 'agent', versionArgs: ['--version'] }, // Cursor Agent CLI; required for cursor runner (install: irm 'https://cursor.com/install?win32=true' | iex on Windows)
13
13
  { name: 'claude', versionArgs: ['--version'] },
14
14
  { name: 'windsurf', versionArgs: ['--version'] },
15
+ { name: 'docker', versionArgs: ['--version'] }, // Required for windsurf on Windows (headless via windsurfinabox)
15
16
  ];
16
17
  function getToolVersion(name, versionArgs) {
17
18
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
package/dist/github.js CHANGED
@@ -82,25 +82,25 @@ function getPrNumberForBranch(branch) {
82
82
  }
83
83
  }
84
84
  function fetchUnresolvedReviewThreads(owner, repo, prNumber) {
85
- const query = `query($owner: String!, $repo: String!, $prNumber: Int!) {
86
- repository(owner: $owner, name: $repo) {
87
- pullRequest(number: $prNumber) {
88
- reviewThreads(first: 100) {
89
- nodes {
90
- id
91
- isResolved
92
- path
93
- line
94
- comments(first: 50) {
95
- nodes {
96
- body
97
- author { login }
98
- }
99
- }
100
- }
101
- }
102
- }
103
- }
85
+ const query = `query($owner: String!, $repo: String!, $prNumber: Int!) {
86
+ repository(owner: $owner, name: $repo) {
87
+ pullRequest(number: $prNumber) {
88
+ reviewThreads(first: 100) {
89
+ nodes {
90
+ id
91
+ isResolved
92
+ path
93
+ line
94
+ comments(first: 50) {
95
+ nodes {
96
+ body
97
+ author { login }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
104
  }`;
105
105
  const result = gh([
106
106
  'api', 'graphql',
@@ -134,10 +134,10 @@ function fetchUnresolvedReviewThreads(owner, repo, prNumber) {
134
134
  }
135
135
  }
136
136
  function resolveReviewThread(threadId) {
137
- const mutation = `mutation($threadId: ID!) {
138
- resolveReviewThread(input: { threadId: $threadId }) {
139
- thread { isResolved }
140
- }
137
+ const mutation = `mutation($threadId: ID!) {
138
+ resolveReviewThread(input: { threadId: $threadId }) {
139
+ thread { isResolved }
140
+ }
141
141
  }`;
142
142
  const result = gh([
143
143
  'api', 'graphql',
@@ -7,10 +7,28 @@ export declare const isWindows: boolean;
7
7
  */
8
8
  export declare function findBin(name: string): string | null;
9
9
  export declare function commandExists(name: string): boolean;
10
+ /**
11
+ * Parses an npm-generated .cmd shim to extract the target Node.js script path.
12
+ * npm shims contain a line like:
13
+ * "%_prog%" "%dp0%\node_modules\...\cli.js" %*
14
+ * or:
15
+ * "%~dp0\node_modules\...\cli.js" %*
16
+ *
17
+ * Returns the resolved absolute path to the .js entry point, or null if the
18
+ * shim format is unrecognised or the script doesn't exist on disk.
19
+ */
20
+ export declare function parseCmdShimTarget(cmdPath: string): string | null;
10
21
  /**
11
22
  * Detects whether a resolved binary path is a Windows .cmd/.bat shim and
12
- * returns adjusted spawn arguments that route through cmd.exe.
13
- * Returns null when no adjustment is needed.
23
+ * returns adjusted spawn arguments that bypass cmd.exe.
24
+ *
25
+ * First tries to parse the .cmd shim to find the underlying Node.js script
26
+ * so we can spawn `node.exe <script> <args>` directly. This avoids cmd.exe's
27
+ * broken stdin forwarding and its mangling of shell metacharacters in
28
+ * arguments (which breaks AI prompts containing &, |, <, >, ", % etc.).
29
+ *
30
+ * Falls back to `cmd.exe /c` only when the shim can't be parsed.
31
+ * Returns null when no adjustment is needed (non-.cmd binary).
14
32
  */
15
33
  export declare function resolveWindowsCmd(resolvedPath: string | null, args: string[]): {
16
34
  bin: string;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kCAAkC,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,eAAO,MAAM,SAAS,SAA+B,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiCnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAIxC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,kCAAkC,GAC1C,gBAAgB,CAAC,MAAM,CAAC,CAY1B;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,UAAU,CAyBnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C"}
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kCAAkC,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,eAAO,MAAM,SAAS,SAA+B,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiCnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4BjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,IAAI,EAAE,MAAM,EAAE,GACb;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAaxC;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,kCAAkC,GAC1C,gBAAgB,CAAC,MAAM,CAAC,CAc1B;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,UAAU,CAyBnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C"}
package/dist/platform.js CHANGED
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.isWindows = void 0;
37
37
  exports.findBin = findBin;
38
38
  exports.commandExists = commandExists;
39
+ exports.parseCmdShimTarget = parseCmdShimTarget;
39
40
  exports.resolveWindowsCmd = resolveWindowsCmd;
40
41
  exports.spawnCommand = spawnCommand;
41
42
  exports.getUserShellEnv = getUserShellEnv;
@@ -86,17 +87,85 @@ function findBin(name) {
86
87
  function commandExists(name) {
87
88
  return findBin(name) !== null;
88
89
  }
90
+ /**
91
+ * Parses an npm-generated .cmd shim to extract the target Node.js script path.
92
+ * npm shims contain a line like:
93
+ * "%_prog%" "%dp0%\node_modules\...\cli.js" %*
94
+ * or:
95
+ * "%~dp0\node_modules\...\cli.js" %*
96
+ *
97
+ * Returns the resolved absolute path to the .js entry point, or null if the
98
+ * shim format is unrecognised or the script doesn't exist on disk.
99
+ */
100
+ function parseCmdShimTarget(cmdPath) {
101
+ try {
102
+ const content = fs.readFileSync(cmdPath, 'utf8');
103
+ const dir = path.dirname(cmdPath);
104
+ // Match: "%dp0%\path\to\script.js" or "%~dp0\path\to\script.js"
105
+ // Note: %~dp0 has no closing % (it's a batch parameter modifier), while
106
+ // %dp0% is a regular env var set earlier in the shim.
107
+ const dpMatch = content.match(/%(?:~dp0|dp0%)[\\\/]([^"]+\.(?:js|mjs|cjs))/i);
108
+ if (dpMatch) {
109
+ const scriptPath = path.resolve(dir, dpMatch[1]);
110
+ if (fs.existsSync(scriptPath))
111
+ return scriptPath;
112
+ }
113
+ // Fallback: look for a bare node_modules script path on the last executable line
114
+ const lines = content.split(/\r?\n/);
115
+ for (let i = lines.length - 1; i >= 0; i--) {
116
+ const m = lines[i].match(/"([^"]+node_modules[\\\/][^"]+\.(?:js|mjs|cjs))"/i);
117
+ if (m) {
118
+ const candidate = path.isAbsolute(m[1]) ? m[1] : path.resolve(dir, m[1]);
119
+ if (fs.existsSync(candidate))
120
+ return candidate;
121
+ }
122
+ }
123
+ return null;
124
+ }
125
+ catch {
126
+ return null;
127
+ }
128
+ }
89
129
  /**
90
130
  * Detects whether a resolved binary path is a Windows .cmd/.bat shim and
91
- * returns adjusted spawn arguments that route through cmd.exe.
92
- * Returns null when no adjustment is needed.
131
+ * returns adjusted spawn arguments that bypass cmd.exe.
132
+ *
133
+ * First tries to parse the .cmd shim to find the underlying Node.js script
134
+ * so we can spawn `node.exe <script> <args>` directly. This avoids cmd.exe's
135
+ * broken stdin forwarding and its mangling of shell metacharacters in
136
+ * arguments (which breaks AI prompts containing &, |, <, >, ", % etc.).
137
+ *
138
+ * Falls back to `cmd.exe /c` only when the shim can't be parsed.
139
+ * Returns null when no adjustment is needed (non-.cmd binary).
93
140
  */
94
141
  function resolveWindowsCmd(resolvedPath, args) {
95
142
  if (!resolvedPath || !/\.(cmd|bat)$/i.test(resolvedPath))
96
143
  return null;
144
+ const scriptTarget = parseCmdShimTarget(resolvedPath);
145
+ if (scriptTarget) {
146
+ // Spawn node.exe directly — no cmd.exe involved
147
+ const nodeExe = findNodeForCmd(path.dirname(resolvedPath));
148
+ return { bin: nodeExe, args: [scriptTarget, ...args] };
149
+ }
150
+ // Fallback: route through cmd.exe (non-npm shims, custom .bat files, etc.)
97
151
  const comspec = process.env.ComSpec || 'cmd.exe';
98
152
  return { bin: comspec, args: ['/c', resolvedPath, ...args] };
99
153
  }
154
+ /**
155
+ * Returns the Node.js executable to use for a .cmd shim directory.
156
+ * Prefers a local node.exe next to the shim (e.g. nvm/volta shims),
157
+ * then falls back to the currently running node.
158
+ */
159
+ function findNodeForCmd(cmdDir) {
160
+ const local = path.join(cmdDir, 'node.exe');
161
+ try {
162
+ fs.accessSync(local, fs.constants.F_OK);
163
+ return local;
164
+ }
165
+ catch {
166
+ return process.execPath;
167
+ }
168
+ }
100
169
  /**
101
170
  * Cross-platform `spawnSync` wrapper.
102
171
  * On Windows, .cmd/.bat shims (common for npm-installed CLIs like cursor,
@@ -110,7 +179,9 @@ function spawnCommand(command, args, options) {
110
179
  if (!exports.isWindows) {
111
180
  return (0, node_child_process_1.spawnSync)(command, args, options);
112
181
  }
113
- const resolved = findBin(command);
182
+ // If `command` is already an absolute/relative path to a .cmd/.bat, use it
183
+ // directly; otherwise search PATH via findBin.
184
+ const resolved = /\.(cmd|bat)$/i.test(command) ? command : findBin(command);
114
185
  const winCmd = resolveWindowsCmd(resolved, args);
115
186
  if (winCmd) {
116
187
  return (0, node_child_process_1.spawnSync)(winCmd.bin, winCmd.args, options);
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface NativeAttachment {
2
+ id?: string;
3
+ name?: string;
4
+ url?: string;
5
+ }
6
+ export interface DownloadedAttachment {
7
+ id?: string;
8
+ name: string;
9
+ path: string;
10
+ sourceUrl: string;
11
+ }
12
+ export declare function appendAttachmentPaths(text: string, attachments: DownloadedAttachment[], heading?: string): string;
13
+ export declare function downloadAttachments(taskId: string, attachments: NativeAttachment[], requestInit?: RequestInit): Promise<DownloadedAttachment[]>;
14
+ export declare function normalizeAttachmentUrl(url: string): string;
15
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/providers/assets.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,oBAAoB,EAAE,EACnC,OAAO,SAAoD,GAC1D,MAAM,CAOR;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,gBAAgB,EAAE,EAC/B,WAAW,GAAE,WAAgB,GAC5B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAsDjC;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO1D"}
@@ -0,0 +1,153 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.appendAttachmentPaths = appendAttachmentPaths;
37
+ exports.downloadAttachments = downloadAttachments;
38
+ exports.normalizeAttachmentUrl = normalizeAttachmentUrl;
39
+ const fs = __importStar(require("node:fs"));
40
+ const path = __importStar(require("node:path"));
41
+ const logger_1 = require("../logger");
42
+ const INVALID_PATH_CHARS = /[<>:"/\\|?*\x00-\x1f]/g;
43
+ function appendAttachmentPaths(text, attachments, heading = 'Local asset files (read/use these if relevant):') {
44
+ if (attachments.length === 0)
45
+ return text;
46
+ const uniquePaths = Array.from(new Set(attachments.map((attachment) => attachment.path)));
47
+ const section = [heading, ...uniquePaths.map((filePath) => `- \`${filePath}\``)].join('\n');
48
+ const trimmed = text.trimEnd();
49
+ return trimmed ? `${trimmed}\n\n${section}` : section;
50
+ }
51
+ async function downloadAttachments(taskId, attachments, requestInit = {}) {
52
+ if (attachments.length === 0)
53
+ return [];
54
+ const assetDir = path.join(process.cwd(), '.aidev', 'assets', sanitizePathSegment(taskId));
55
+ fs.mkdirSync(assetDir, { recursive: true });
56
+ const usedNames = new Set();
57
+ const downloaded = [];
58
+ for (const attachment of attachments) {
59
+ if (!attachment.url)
60
+ continue;
61
+ const storedName = buildStoredFileName(attachment, usedNames);
62
+ const destination = path.join(assetDir, storedName);
63
+ if (fs.existsSync(destination)) {
64
+ downloaded.push({
65
+ id: attachment.id,
66
+ name: storedName,
67
+ path: toRelativeAssetPath(destination),
68
+ sourceUrl: attachment.url,
69
+ });
70
+ continue;
71
+ }
72
+ try {
73
+ const response = await fetch(attachment.url, {
74
+ ...requestInit,
75
+ redirect: 'follow',
76
+ });
77
+ if (!response.ok) {
78
+ logger_1.logger.warn(`Failed to download attachment "${storedName}" for task ${taskId}: ${response.status} ${response.statusText}`);
79
+ continue;
80
+ }
81
+ const buffer = Buffer.from(await response.arrayBuffer());
82
+ fs.writeFileSync(destination, buffer);
83
+ downloaded.push({
84
+ id: attachment.id,
85
+ name: storedName,
86
+ path: toRelativeAssetPath(destination),
87
+ sourceUrl: attachment.url,
88
+ });
89
+ }
90
+ catch (err) {
91
+ logger_1.logger.warn(`Failed to download attachment "${storedName}" for task ${taskId}: ${err instanceof Error ? err.message : String(err)}`);
92
+ }
93
+ }
94
+ return downloaded;
95
+ }
96
+ function normalizeAttachmentUrl(url) {
97
+ try {
98
+ const parsed = new URL(url);
99
+ return `${parsed.origin}${parsed.pathname}`.toLowerCase();
100
+ }
101
+ catch {
102
+ return url.trim().toLowerCase();
103
+ }
104
+ }
105
+ function buildStoredFileName(attachment, usedNames) {
106
+ const fileName = sanitizeFileName(resolveAttachmentName(attachment));
107
+ const withPrefix = attachment.id
108
+ ? `${sanitizePathSegment(attachment.id)}-${fileName}`
109
+ : fileName;
110
+ let candidate = withPrefix;
111
+ let counter = 2;
112
+ while (usedNames.has(candidate)) {
113
+ const parsed = path.parse(withPrefix);
114
+ candidate = `${parsed.name}-${counter}${parsed.ext}`;
115
+ counter += 1;
116
+ }
117
+ usedNames.add(candidate);
118
+ return candidate;
119
+ }
120
+ function resolveAttachmentName(attachment) {
121
+ if (attachment.name)
122
+ return attachment.name;
123
+ if (attachment.url) {
124
+ try {
125
+ const parsed = new URL(attachment.url);
126
+ const base = path.posix.basename(parsed.pathname);
127
+ if (base)
128
+ return base;
129
+ }
130
+ catch {
131
+ // Fall through to the default name below.
132
+ }
133
+ }
134
+ return 'attachment';
135
+ }
136
+ function sanitizeFileName(fileName) {
137
+ const parsed = path.parse(fileName);
138
+ const safeBase = sanitizePathSegment(parsed.name || 'attachment');
139
+ const safeExt = parsed.ext.replace(INVALID_PATH_CHARS, '');
140
+ return `${safeBase}${safeExt}`;
141
+ }
142
+ function sanitizePathSegment(value) {
143
+ const sanitized = value
144
+ .replace(INVALID_PATH_CHARS, '-')
145
+ .replace(/\s+/g, '-')
146
+ .replace(/-+/g, '-')
147
+ .replace(/^-|-$/g, '');
148
+ return sanitized || 'attachment';
149
+ }
150
+ function toRelativeAssetPath(filePath) {
151
+ return path.relative(process.cwd(), filePath).split(path.sep).join('/');
152
+ }
153
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/providers/assets.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,12 @@ export declare class ClickUpProvider implements TaskProvider {
6
6
  private tag;
7
7
  private assigneeTag;
8
8
  private listId;
9
+ private pendingStatus;
10
+ private openStatus;
9
11
  constructor(config: Config);
10
12
  private request;
13
+ private buildAuthHeaders;
14
+ private fetchTaskAttachments;
11
15
  fetchTasks(): Promise<Task[]>;
12
16
  postComment(taskId: string, text: string): Promise<void>;
13
17
  getComments(taskId: string): Promise<Comment[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"clickup.d.ts","sourceRoot":"","sources":["../../src/providers/clickup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;YAQZ,OAAO;IA4Cf,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAgC7B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA6C/C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA+BtE"}
1
+ {"version":3,"file":"clickup.d.ts","sourceRoot":"","sources":["../../src/providers/clickup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAStC,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,MAAM;YAUZ,OAAO;IA4CrB,OAAO,CAAC,gBAAgB;YAOV,oBAAoB;IAyB5B,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAkD7B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA6C/C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA+BtE"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClickUpProvider = void 0;
4
4
  const logger_1 = require("../logger");
5
+ const assets_1 = require("./assets");
5
6
  class ClickUpProvider {
6
7
  constructor(config) {
7
8
  this.apiKey = config.clickupApiKey;
@@ -9,6 +10,8 @@ class ClickUpProvider {
9
10
  this.tag = config.clickupTag;
10
11
  this.assigneeTag = config.assigneeTag;
11
12
  this.listId = config.clickupListId;
13
+ this.pendingStatus = config.clickupPendingStatus || 'pending';
14
+ this.openStatus = config.clickupOpenStatus || 'open';
12
15
  }
13
16
  async request(path, options = {}) {
14
17
  const url = `https://api.clickup.com/api/v2${path}`;
@@ -48,17 +51,51 @@ class ClickUpProvider {
48
51
  }
49
52
  throw lastError;
50
53
  }
54
+ buildAuthHeaders() {
55
+ return {
56
+ Authorization: this.apiKey,
57
+ Accept: '*/*',
58
+ };
59
+ }
60
+ async fetchTaskAttachments(taskId) {
61
+ const detail = await this.request(`/task/${taskId}`);
62
+ const attachments = (detail.attachments || [])
63
+ .filter((attachment) => Boolean(attachment.url))
64
+ .map((attachment) => ({
65
+ id: attachment.id !== undefined ? String(attachment.id) : undefined,
66
+ name: attachment.title,
67
+ url: attachment.url,
68
+ }));
69
+ return (0, assets_1.downloadAttachments)(taskId, attachments, {
70
+ headers: this.buildAuthHeaders(),
71
+ });
72
+ }
51
73
  async fetchTasks() {
52
74
  logger_1.logger.debug(`Fetching tasks with tag "${this.tag}" from team ${this.teamId}`);
53
75
  const data = await this.request(`/team/${this.teamId}/task?tags[]=${encodeURIComponent(this.tag)}&subtasks=true&include_closed=false`);
54
- return data.tasks.map((t) => ({
55
- id: t.id,
56
- name: t.name,
57
- description: t.description || '',
58
- status: t.status.status.toLowerCase(),
59
- url: t.url,
60
- tags: t.tags.map((tag) => tag.name),
61
- priority: t.priority ? parseInt(t.priority.id, 10) : undefined,
76
+ const pendingStatus = this.pendingStatus.toLowerCase();
77
+ const openStatus = this.openStatus.toLowerCase();
78
+ const eligibleTasks = data.tasks.filter((t) => {
79
+ const status = t.status.status.toLowerCase();
80
+ return status === openStatus || status === pendingStatus;
81
+ });
82
+ return Promise.all(eligibleTasks.map(async (t) => {
83
+ let attachments = [];
84
+ try {
85
+ attachments = await this.fetchTaskAttachments(t.id);
86
+ }
87
+ catch (err) {
88
+ logger_1.logger.warn(`[${t.id}] Failed to fetch ClickUp attachments: ${err instanceof Error ? err.message : String(err)}`);
89
+ }
90
+ return {
91
+ id: t.id,
92
+ name: t.name,
93
+ description: (0, assets_1.appendAttachmentPaths)(t.description || '', attachments),
94
+ status: t.status.status.toLowerCase(),
95
+ url: t.url,
96
+ tags: t.tags.map((tag) => tag.name),
97
+ priority: t.priority ? parseInt(t.priority.id, 10) : undefined,
98
+ };
62
99
  }));
63
100
  }
64
101
  async postComment(taskId, text) {
@@ -1 +1 @@
1
- {"version":3,"file":"clickup.js","sourceRoot":"","sources":["../../src/providers/clickup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clickup.js","sourceRoot":"","sources":["../../src/providers/clickup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAiB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAElD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAe5E;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAiB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGlD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAmB5E;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -3,15 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createProvider = createProvider;
4
4
  const clickup_1 = require("./clickup");
5
5
  const jira_1 = require("./jira");
6
+ const linear_1 = require("./linear");
6
7
  const local_1 = require("./local");
8
+ const monday_1 = require("./monday");
7
9
  function createProvider(config, mode) {
8
10
  switch (config.provider.toLowerCase()) {
9
11
  case 'clickup':
10
12
  return new clickup_1.ClickUpProvider(config);
11
13
  case 'jira':
12
14
  return new jira_1.JiraProvider(config);
15
+ case 'linear':
16
+ return new linear_1.LinearProvider(config);
13
17
  case 'local':
14
18
  return new local_1.LocalProvider(process.cwd(), mode || 'code');
19
+ case 'monday':
20
+ return new monday_1.MondayProvider(config);
15
21
  case 'notion':
16
22
  throw new Error('Notion provider is not yet implemented. Contributions welcome!');
17
23
  case 'trello':
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;AAMA,wCAeC;AAnBD,uCAA4C;AAC5C,iCAAsC;AACtC,mCAAkD;AAElD,SAAgB,cAAc,CAAC,MAAc,EAAE,IAAe;IAC5D,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,IAAI,yBAAe,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,MAAM;YACT,OAAO,IAAI,mBAAY,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,OAAO;YACV,OAAO,IAAI,qBAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;QAC1D,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":";;AAQA,wCAmBC;AAzBD,uCAA4C;AAC5C,iCAAsC;AACtC,qCAA0C;AAC1C,mCAAkD;AAClD,qCAA0C;AAE1C,SAAgB,cAAc,CAAC,MAAc,EAAE,IAAe;IAC5D,QAAQ,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,KAAK,SAAS;YACZ,OAAO,IAAI,yBAAe,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,MAAM;YACT,OAAO,IAAI,mBAAY,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,QAAQ;YACX,OAAO,IAAI,uBAAc,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,OAAO;YACV,OAAO,IAAI,qBAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;QAC1D,KAAK,QAAQ;YACX,OAAO,IAAI,uBAAc,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,KAAK,QAAQ;YACX,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -8,8 +8,19 @@ export declare class JiraProvider implements TaskProvider {
8
8
  private assigneeTag;
9
9
  constructor(config: Config);
10
10
  private request;
11
+ private buildAuthHeaders;
11
12
  /** Extract plain text from an Atlassian Document Format node. */
12
13
  private adfToText;
14
+ private adfToTextNode;
15
+ private normalizeAdfText;
16
+ private downloadIssueAttachments;
17
+ private fetchIssueAttachments;
18
+ private collectAttachmentReferences;
19
+ private resolveCommentAttachments;
20
+ private findAttachmentForReference;
21
+ private toAbsoluteUrl;
22
+ private extractAttachmentId;
23
+ private asRecord;
13
24
  fetchTasks(): Promise<Task[]>;
14
25
  postComment(taskId: string, text: string): Promise<void>;
15
26
  getComments(taskId: string): Promise<Comment[]>;