conductor-install 0.1.0 → 0.1.1
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/README.md +32 -6
- package/dist/conductor/conductor/CHANGELOG.md +39 -0
- package/dist/conductor/conductor/CONTRIBUTING.md +33 -0
- package/dist/conductor/conductor/GEMINI.md +41 -0
- package/dist/conductor/conductor/LICENSE +202 -0
- package/dist/conductor/conductor/README.md +128 -0
- package/dist/conductor/conductor/commands/conductor/implement.toml +179 -0
- package/dist/conductor/conductor/commands/conductor/newTrack.toml +154 -0
- package/dist/conductor/conductor/commands/conductor/revert.toml +130 -0
- package/dist/conductor/conductor/commands/conductor/review.toml +158 -0
- package/dist/conductor/conductor/commands/conductor/setup.toml +456 -0
- package/dist/conductor/conductor/commands/conductor/status.toml +57 -0
- package/dist/conductor/conductor/gemini-extension.json +5 -0
- package/dist/conductor/conductor/release-please-config.json +11 -0
- package/dist/conductor/conductor/templates/code_styleguides/cpp.md +113 -0
- package/dist/conductor/conductor/templates/code_styleguides/csharp.md +115 -0
- package/dist/conductor/conductor/templates/code_styleguides/dart.md +238 -0
- package/dist/conductor/conductor/templates/code_styleguides/general.md +23 -0
- package/dist/conductor/conductor/templates/code_styleguides/go.md +48 -0
- package/dist/conductor/conductor/templates/code_styleguides/html-css.md +49 -0
- package/dist/conductor/conductor/templates/code_styleguides/javascript.md +51 -0
- package/dist/conductor/conductor/templates/code_styleguides/python.md +37 -0
- package/dist/conductor/conductor/templates/code_styleguides/typescript.md +43 -0
- package/dist/conductor/conductor/templates/workflow.md +333 -0
- package/dist/conductor-install.cjs +242 -246
- package/dist/conductor-install.js +241 -245
- package/dist/index.cjs +242 -246
- package/dist/index.js +241 -245
- package/package.json +2 -2
|
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
mod
|
|
24
24
|
));
|
|
25
25
|
|
|
26
|
-
// node_modules
|
|
26
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
27
27
|
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
|
|
28
28
|
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
29
29
|
|
|
@@ -33,75 +33,48 @@ var import_helpers = require("yargs/helpers");
|
|
|
33
33
|
|
|
34
34
|
// src/cli/prompt.ts
|
|
35
35
|
var import_select = __toESM(require("@inquirer/select"), 1);
|
|
36
|
-
async function promptForInstallScope(agent) {
|
|
37
|
-
const isCodex = agent === "codex";
|
|
38
|
-
const isCline = agent === "cline";
|
|
39
|
-
const choices = isCodex ? [{ name: "Global (User Home Directory)", value: "global" }] : [{ name: "Project (Current Directory)", value: "project" }];
|
|
40
|
-
const answer = await (0, import_select.default)({
|
|
41
|
-
message: "Select installation method:",
|
|
42
|
-
choices,
|
|
43
|
-
default: isCodex ? "global" : "project"
|
|
44
|
-
});
|
|
45
|
-
return answer;
|
|
46
|
-
}
|
|
47
|
-
async function promptForAgent() {
|
|
48
|
-
const answer = await (0, import_select.default)({
|
|
49
|
-
message: "Select your coding agent:",
|
|
50
|
-
choices: [
|
|
51
|
-
{
|
|
52
|
-
name: "OpenCode",
|
|
53
|
-
value: "opencode",
|
|
54
|
-
description: "The open source AI coding agent"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: "Claude Code",
|
|
58
|
-
value: "claude-code",
|
|
59
|
-
description: "Anthropic's coding assistant"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: "Antigravity",
|
|
63
|
-
value: "antigravity",
|
|
64
|
-
description: "Google's agentic coding assistant"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
name: "Cursor",
|
|
68
|
-
value: "cursor",
|
|
69
|
-
description: "Cursor IDE's AI agent"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
name: "VS Code Copilot",
|
|
73
|
-
value: "vscode-copilot",
|
|
74
|
-
description: "VS Code Copilot's Prompt Files"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: "Codex",
|
|
78
|
-
value: "codex",
|
|
79
|
-
description: "OpenAI Codex Agent"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
name: "Windsurf",
|
|
83
|
-
value: "windsurf",
|
|
84
|
-
description: "Windsurf Cascade AI Agent"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
name: "Cline",
|
|
88
|
-
value: "cline",
|
|
89
|
-
description: "Cline AI coding assistant"
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: "Gemini CLI",
|
|
93
|
-
value: "gemini",
|
|
94
|
-
description: "Google Gemini CLI agent"
|
|
95
|
-
}
|
|
96
|
-
],
|
|
97
|
-
default: "opencode"
|
|
98
|
-
});
|
|
99
|
-
return answer;
|
|
100
|
-
}
|
|
101
36
|
|
|
102
|
-
// src/generators/
|
|
103
|
-
var
|
|
104
|
-
|
|
37
|
+
// src/generators/opencode/config.ts
|
|
38
|
+
var opencodeConfig = {
|
|
39
|
+
agentType: "opencode",
|
|
40
|
+
agentDir: ".opencode",
|
|
41
|
+
commandsDir: "commands",
|
|
42
|
+
displayName: "OpenCode",
|
|
43
|
+
protocolFilename: "AGENTS.md",
|
|
44
|
+
description: "The open source AI coding agent"
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// src/generators/claude-code/config.ts
|
|
48
|
+
var claudeCodeConfig = {
|
|
49
|
+
agentType: "claude-code",
|
|
50
|
+
agentDir: ".claude",
|
|
51
|
+
commandsDir: "commands",
|
|
52
|
+
displayName: "Claude Code",
|
|
53
|
+
protocolFilename: "CLAUDE.md",
|
|
54
|
+
description: "Anthropic's coding assistant"
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// src/generators/antigravity/config.ts
|
|
58
|
+
var antigravityConfig = {
|
|
59
|
+
agentType: "antigravity",
|
|
60
|
+
agentDir: ".agent",
|
|
61
|
+
commandsDir: "workflows",
|
|
62
|
+
displayName: "Antigravity",
|
|
63
|
+
protocolFilename: "GEMINI.md",
|
|
64
|
+
description: "Google's agentic coding assistant"
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// src/generators/cursor/config.ts
|
|
68
|
+
var cursorConfig = {
|
|
69
|
+
agentType: "cursor",
|
|
70
|
+
agentDir: ".cursor",
|
|
71
|
+
commandsDir: "commands",
|
|
72
|
+
displayName: "Cursor",
|
|
73
|
+
protocolFilename: "AGENTS.md",
|
|
74
|
+
description: "Cursor IDE's AI agent"
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// src/generators/vscode-copilot/strategy.ts
|
|
105
78
|
var import_smol_toml = require("smol-toml");
|
|
106
79
|
|
|
107
80
|
// src/utils/template.ts
|
|
@@ -192,12 +165,196 @@ async function loadTemplate(templatePath, repo, branch) {
|
|
|
192
165
|
return (0, import_promises.readFile)(fullPath, "utf-8");
|
|
193
166
|
}
|
|
194
167
|
|
|
195
|
-
// src/generators/
|
|
168
|
+
// src/generators/vscode-copilot/strategy.ts
|
|
169
|
+
var VsCodeCopilotContentStrategy = class {
|
|
170
|
+
process(templateContent, options) {
|
|
171
|
+
const { installPath, agentType, fixedAgent } = options;
|
|
172
|
+
const parsed = (0, import_smol_toml.parse)(templateContent);
|
|
173
|
+
if (!parsed.prompt) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
let prompt = parsed.prompt;
|
|
177
|
+
prompt = prompt.replace(/__\$\$CODE_AGENT_INSTALL_PATH\$\$__/g, installPath);
|
|
178
|
+
const finalContent = substituteVariables(prompt, { agent_type: agentType });
|
|
179
|
+
return `---
|
|
180
|
+
description: ${parsed.description || ""}
|
|
181
|
+
agent: ${fixedAgent}
|
|
182
|
+
---
|
|
183
|
+
${finalContent}`;
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
var vscodeCopilotContentStrategy = new VsCodeCopilotContentStrategy();
|
|
187
|
+
|
|
188
|
+
// src/generators/vscode-copilot/config.ts
|
|
189
|
+
var vscodeCopilotConfig = {
|
|
190
|
+
agentType: "vscode-copilot",
|
|
191
|
+
agentDir: ".github",
|
|
192
|
+
commandsDir: "prompts",
|
|
193
|
+
displayName: "VS Code Copilot",
|
|
194
|
+
protocolFilename: "AGENTS.md",
|
|
195
|
+
description: "VS Code Copilot's Prompt Files",
|
|
196
|
+
extension: ".prompt.md",
|
|
197
|
+
fixedAgent: "agent",
|
|
198
|
+
strategy: {
|
|
199
|
+
content: vscodeCopilotContentStrategy
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
// src/generators/codex/config.ts
|
|
204
|
+
var codexConfig = {
|
|
205
|
+
agentType: "codex",
|
|
206
|
+
agentDir: ".codex",
|
|
207
|
+
commandsDir: "prompts",
|
|
208
|
+
displayName: "Codex",
|
|
209
|
+
protocolFilename: "AGENTS.md",
|
|
210
|
+
description: "OpenAI Codex Agent",
|
|
211
|
+
extension: ".md"
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
// src/generators/windsurf/config.ts
|
|
215
|
+
var windsurfConfig = {
|
|
216
|
+
agentType: "windsurf",
|
|
217
|
+
agentDir: ".windsurf",
|
|
218
|
+
commandsDir: "workflows",
|
|
219
|
+
displayName: "Windsurf",
|
|
220
|
+
protocolFilename: "AGENTS.md",
|
|
221
|
+
description: "Windsurf Cascade AI Agent"
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// src/generators/cline/strategy.ts
|
|
225
|
+
var import_smol_toml2 = require("smol-toml");
|
|
226
|
+
var ClineContentStrategy = class {
|
|
227
|
+
process(templateContent, options) {
|
|
228
|
+
const { installPath, agentType, commandName } = options;
|
|
229
|
+
const parsed = (0, import_smol_toml2.parse)(templateContent);
|
|
230
|
+
if (!parsed.prompt) {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
let prompt = parsed.prompt;
|
|
234
|
+
prompt = prompt.replace(/__\$\$CODE_AGENT_INSTALL_PATH\$\$__/g, installPath);
|
|
235
|
+
const finalContent = substituteVariables(prompt, { agent_type: agentType });
|
|
236
|
+
const title = commandName ? commandName.charAt(0).toUpperCase() + commandName.slice(1) : "Command";
|
|
237
|
+
return `# Conductor ${title}${parsed.description ? "\n\n" + parsed.description + "\n\n" : "\n\n"}${finalContent}`;
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
var clineContentStrategy = new ClineContentStrategy();
|
|
241
|
+
|
|
242
|
+
// src/generators/cline/config.ts
|
|
243
|
+
var clineConfig = {
|
|
244
|
+
agentType: "cline",
|
|
245
|
+
agentDir: ".clinerules",
|
|
246
|
+
commandsDir: "workflows",
|
|
247
|
+
displayName: "Cline",
|
|
248
|
+
protocolFilename: "AGENTS.md",
|
|
249
|
+
description: "Cline AI coding assistant",
|
|
250
|
+
strategy: {
|
|
251
|
+
content: clineContentStrategy
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
// src/generators/gemini/strategy.ts
|
|
256
|
+
var import_path2 = require("path");
|
|
257
|
+
var import_fs_extra2 = __toESM(require("fs-extra"), 1);
|
|
258
|
+
var import_smol_toml3 = require("smol-toml");
|
|
196
259
|
var { writeFile } = import_fs_extra2.default;
|
|
260
|
+
var GeminiContentStrategy = class {
|
|
261
|
+
process(templateContent, options) {
|
|
262
|
+
const { installPath, agentType } = options;
|
|
263
|
+
const parsed = (0, import_smol_toml3.parse)(templateContent);
|
|
264
|
+
if (!parsed.prompt) {
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
const content = templateContent.replace(/__\$\$CODE_AGENT_INSTALL_PATH\$\$__/g, installPath);
|
|
268
|
+
return substituteVariables(content, { agent_type: agentType });
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
var GeminiFileStrategy = class {
|
|
272
|
+
async write(options) {
|
|
273
|
+
const { targetDir, agentDir, commandsDir, commandName, extension, content } = options;
|
|
274
|
+
const fileName = `${commandName}${extension}`;
|
|
275
|
+
await writeFile((0, import_path2.join)(targetDir, agentDir, commandsDir, fileName), content);
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
var geminiContentStrategy = new GeminiContentStrategy();
|
|
279
|
+
var geminiFileStrategy = new GeminiFileStrategy();
|
|
280
|
+
|
|
281
|
+
// src/generators/gemini/config.ts
|
|
282
|
+
var geminiConfig = {
|
|
283
|
+
agentType: "gemini",
|
|
284
|
+
agentDir: ".gemini",
|
|
285
|
+
commandsDir: "commands/conductor",
|
|
286
|
+
displayName: "Gemini CLI",
|
|
287
|
+
protocolFilename: "GEMINI.md",
|
|
288
|
+
description: "Google Gemini CLI agent",
|
|
289
|
+
extension: ".toml",
|
|
290
|
+
usesPrefix: false,
|
|
291
|
+
strategy: {
|
|
292
|
+
content: geminiContentStrategy,
|
|
293
|
+
file: geminiFileStrategy
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// src/generators/registry.ts
|
|
298
|
+
var ALL_AGENT_CONFIGS = [
|
|
299
|
+
opencodeConfig,
|
|
300
|
+
claudeCodeConfig,
|
|
301
|
+
antigravityConfig,
|
|
302
|
+
cursorConfig,
|
|
303
|
+
vscodeCopilotConfig,
|
|
304
|
+
codexConfig,
|
|
305
|
+
windsurfConfig,
|
|
306
|
+
clineConfig,
|
|
307
|
+
geminiConfig
|
|
308
|
+
];
|
|
309
|
+
|
|
310
|
+
// src/cli/prompt.ts
|
|
311
|
+
async function promptForInstallScope(agent) {
|
|
312
|
+
const isCodex = agent === "codex";
|
|
313
|
+
const isCline = agent === "cline";
|
|
314
|
+
const choices = isCodex ? [{ name: "Global (User Home Directory)", value: "global" }] : [{ name: "Project (Current Directory)", value: "project" }];
|
|
315
|
+
const answer = await (0, import_select.default)({
|
|
316
|
+
message: "Select installation method:",
|
|
317
|
+
choices,
|
|
318
|
+
default: isCodex ? "global" : "project"
|
|
319
|
+
});
|
|
320
|
+
return answer;
|
|
321
|
+
}
|
|
322
|
+
async function promptForAgent() {
|
|
323
|
+
const choices = ALL_AGENT_CONFIGS.map((config) => {
|
|
324
|
+
const {
|
|
325
|
+
displayName,
|
|
326
|
+
agentType,
|
|
327
|
+
protocolFilename,
|
|
328
|
+
agentDir,
|
|
329
|
+
commandsDir,
|
|
330
|
+
description
|
|
331
|
+
} = config;
|
|
332
|
+
const finalDescription = description || `${displayName} agent`;
|
|
333
|
+
const pathInfo = `\x1B[90m(${protocolFilename}, ${agentDir}/${commandsDir})\x1B[0m`;
|
|
334
|
+
return {
|
|
335
|
+
name: `${displayName} ${pathInfo}`,
|
|
336
|
+
value: agentType,
|
|
337
|
+
description: finalDescription
|
|
338
|
+
};
|
|
339
|
+
});
|
|
340
|
+
const answer = await (0, import_select.default)({
|
|
341
|
+
message: "Select your coding agent:",
|
|
342
|
+
choices,
|
|
343
|
+
default: "opencode",
|
|
344
|
+
loop: true
|
|
345
|
+
});
|
|
346
|
+
return answer;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// src/generators/default/strategy.ts
|
|
350
|
+
var import_path3 = require("path");
|
|
351
|
+
var import_fs_extra3 = __toESM(require("fs-extra"), 1);
|
|
352
|
+
var import_smol_toml4 = require("smol-toml");
|
|
353
|
+
var { writeFile: writeFile2 } = import_fs_extra3.default;
|
|
197
354
|
var DefaultContentStrategy = class {
|
|
198
355
|
process(templateContent, options) {
|
|
199
356
|
const { installPath, agentType } = options;
|
|
200
|
-
const parsed = (0,
|
|
357
|
+
const parsed = (0, import_smol_toml4.parse)(templateContent);
|
|
201
358
|
if (!parsed.prompt) {
|
|
202
359
|
return null;
|
|
203
360
|
}
|
|
@@ -217,26 +374,17 @@ var DefaultFileStrategy = class {
|
|
|
217
374
|
async write(options) {
|
|
218
375
|
const { targetDir, agentDir, commandsDir, commandName, extension, content } = options;
|
|
219
376
|
const fileName = `conductor:${commandName}${extension}`;
|
|
220
|
-
await
|
|
377
|
+
await writeFile2((0, import_path3.join)(targetDir, agentDir, commandsDir, fileName), content);
|
|
221
378
|
}
|
|
222
379
|
};
|
|
223
380
|
var defaultContentStrategy = new DefaultContentStrategy();
|
|
224
381
|
var defaultFileStrategy = new DefaultFileStrategy();
|
|
225
382
|
|
|
226
|
-
// src/generators/opencode/config.ts
|
|
227
|
-
var opencodeConfig = {
|
|
228
|
-
agentType: "opencode",
|
|
229
|
-
agentDir: ".opencode",
|
|
230
|
-
commandsDir: "commands",
|
|
231
|
-
displayName: "OpenCode",
|
|
232
|
-
protocolFilename: "AGENTS.md"
|
|
233
|
-
};
|
|
234
|
-
|
|
235
383
|
// src/generators/ConfigurableGenerator.ts
|
|
236
|
-
var
|
|
384
|
+
var import_path4 = require("path");
|
|
237
385
|
var import_select2 = __toESM(require("@inquirer/select"), 1);
|
|
238
|
-
var
|
|
239
|
-
var { existsSync, ensureDir, writeFile:
|
|
386
|
+
var import_fs_extra4 = __toESM(require("fs-extra"), 1);
|
|
387
|
+
var { existsSync, ensureDir, writeFile: writeFile3, copy } = import_fs_extra4.default;
|
|
240
388
|
var ConfigurableGenerator = class {
|
|
241
389
|
constructor(config) {
|
|
242
390
|
this.config = config;
|
|
@@ -249,8 +397,8 @@ var ConfigurableGenerator = class {
|
|
|
249
397
|
const ext = extension || ".md";
|
|
250
398
|
const prefix = usesPrefix !== false ? "conductor:" : "";
|
|
251
399
|
const setupFileName = `${prefix}setup${ext}`;
|
|
252
|
-
const setupFile = (0,
|
|
253
|
-
const conductorPath = (0,
|
|
400
|
+
const setupFile = (0, import_path4.join)(targetDir, agentDir, commandsDir, setupFileName);
|
|
401
|
+
const conductorPath = (0, import_path4.join)(targetDir, agentDir, "conductor");
|
|
254
402
|
if (existsSync(conductorPath) && existsSync(setupFile)) {
|
|
255
403
|
throw new Error(
|
|
256
404
|
`Conductor (${displayName}) is already installed in: ${targetDir}`
|
|
@@ -260,18 +408,18 @@ var ConfigurableGenerator = class {
|
|
|
260
408
|
}
|
|
261
409
|
async generate(targetDir, scope, repo, branch, force) {
|
|
262
410
|
const { agentDir, commandsDir, agentType } = this.config;
|
|
263
|
-
const agentPath = (0,
|
|
264
|
-
const targetCommandsDir = (0,
|
|
265
|
-
let installPath = (0,
|
|
411
|
+
const agentPath = (0, import_path4.join)(targetDir, agentDir);
|
|
412
|
+
const targetCommandsDir = (0, import_path4.join)(agentPath, commandsDir);
|
|
413
|
+
let installPath = (0, import_path4.join)(agentDir, "conductor");
|
|
266
414
|
if (scope === "global") {
|
|
267
415
|
installPath = `~/${agentDir}/conductor`;
|
|
268
416
|
}
|
|
269
417
|
await ensureDir(targetCommandsDir);
|
|
270
|
-
await ensureDir((0,
|
|
418
|
+
await ensureDir((0, import_path4.join)(agentPath, "conductor"));
|
|
271
419
|
const templateRoot = await getTemplateRoot(repo, branch);
|
|
272
420
|
try {
|
|
273
|
-
const templateSource = (0,
|
|
274
|
-
const templateDest = (0,
|
|
421
|
+
const templateSource = (0, import_path4.join)(templateRoot, "templates");
|
|
422
|
+
const templateDest = (0, import_path4.join)(agentPath, "conductor", "templates");
|
|
275
423
|
await copy(templateSource, templateDest);
|
|
276
424
|
} catch (e) {
|
|
277
425
|
console.warn("Failed to copy templates directory:", e);
|
|
@@ -279,8 +427,8 @@ var ConfigurableGenerator = class {
|
|
|
279
427
|
const { protocolFilename } = this.config;
|
|
280
428
|
if (protocolFilename) {
|
|
281
429
|
try {
|
|
282
|
-
const protocolSource = (0,
|
|
283
|
-
const protocolDest = (0,
|
|
430
|
+
const protocolSource = (0, import_path4.join)(templateRoot, "GEMINI.md");
|
|
431
|
+
const protocolDest = (0, import_path4.join)(targetDir, protocolFilename);
|
|
284
432
|
if (existsSync(protocolSource)) {
|
|
285
433
|
let shouldCopy = true;
|
|
286
434
|
if (existsSync(protocolDest) && !force) {
|
|
@@ -358,15 +506,6 @@ var OpenCodeGenerator = class {
|
|
|
358
506
|
}
|
|
359
507
|
};
|
|
360
508
|
|
|
361
|
-
// src/generators/claude-code/config.ts
|
|
362
|
-
var claudeCodeConfig = {
|
|
363
|
-
agentType: "claude-code",
|
|
364
|
-
agentDir: ".claude",
|
|
365
|
-
commandsDir: "commands",
|
|
366
|
-
displayName: "Claude Code",
|
|
367
|
-
protocolFilename: "CLAUDE.md"
|
|
368
|
-
};
|
|
369
|
-
|
|
370
509
|
// src/generators/claude-code/generator.ts
|
|
371
510
|
var ClaudeCodeGenerator = class {
|
|
372
511
|
generator = createGenerator(claudeCodeConfig);
|
|
@@ -378,15 +517,6 @@ var ClaudeCodeGenerator = class {
|
|
|
378
517
|
}
|
|
379
518
|
};
|
|
380
519
|
|
|
381
|
-
// src/generators/antigravity/config.ts
|
|
382
|
-
var antigravityConfig = {
|
|
383
|
-
agentType: "antigravity",
|
|
384
|
-
agentDir: ".agent",
|
|
385
|
-
commandsDir: "workflows",
|
|
386
|
-
displayName: "Antigravity",
|
|
387
|
-
protocolFilename: "GEMINI.md"
|
|
388
|
-
};
|
|
389
|
-
|
|
390
520
|
// src/generators/antigravity/generator.ts
|
|
391
521
|
var AntigravityGenerator = class {
|
|
392
522
|
generator = createGenerator(antigravityConfig);
|
|
@@ -398,15 +528,6 @@ var AntigravityGenerator = class {
|
|
|
398
528
|
}
|
|
399
529
|
};
|
|
400
530
|
|
|
401
|
-
// src/generators/cursor/config.ts
|
|
402
|
-
var cursorConfig = {
|
|
403
|
-
agentType: "cursor",
|
|
404
|
-
agentDir: ".cursor",
|
|
405
|
-
commandsDir: "commands",
|
|
406
|
-
displayName: "Cursor",
|
|
407
|
-
protocolFilename: "AGENTS.md"
|
|
408
|
-
};
|
|
409
|
-
|
|
410
531
|
// src/generators/cursor/generator.ts
|
|
411
532
|
var CursorGenerator = class {
|
|
412
533
|
generator = createGenerator(cursorConfig);
|
|
@@ -418,41 +539,6 @@ var CursorGenerator = class {
|
|
|
418
539
|
}
|
|
419
540
|
};
|
|
420
541
|
|
|
421
|
-
// src/generators/vscode-copilot/strategy.ts
|
|
422
|
-
var import_smol_toml2 = require("smol-toml");
|
|
423
|
-
var VsCodeCopilotContentStrategy = class {
|
|
424
|
-
process(templateContent, options) {
|
|
425
|
-
const { installPath, agentType, fixedAgent } = options;
|
|
426
|
-
const parsed = (0, import_smol_toml2.parse)(templateContent);
|
|
427
|
-
if (!parsed.prompt) {
|
|
428
|
-
return null;
|
|
429
|
-
}
|
|
430
|
-
let prompt = parsed.prompt;
|
|
431
|
-
prompt = prompt.replace(/__\$\$CODE_AGENT_INSTALL_PATH\$\$__/g, installPath);
|
|
432
|
-
const finalContent = substituteVariables(prompt, { agent_type: agentType });
|
|
433
|
-
return `---
|
|
434
|
-
description: ${parsed.description || ""}
|
|
435
|
-
agent: ${fixedAgent}
|
|
436
|
-
---
|
|
437
|
-
${finalContent}`;
|
|
438
|
-
}
|
|
439
|
-
};
|
|
440
|
-
var vscodeCopilotContentStrategy = new VsCodeCopilotContentStrategy();
|
|
441
|
-
|
|
442
|
-
// src/generators/vscode-copilot/config.ts
|
|
443
|
-
var vscodeCopilotConfig = {
|
|
444
|
-
agentType: "vscode-copilot",
|
|
445
|
-
agentDir: ".github",
|
|
446
|
-
commandsDir: "prompts",
|
|
447
|
-
displayName: "VS Code Copilot",
|
|
448
|
-
protocolFilename: "AGENTS.md",
|
|
449
|
-
extension: ".prompt.md",
|
|
450
|
-
fixedAgent: "agent",
|
|
451
|
-
strategy: {
|
|
452
|
-
content: vscodeCopilotContentStrategy
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
|
|
456
542
|
// src/generators/vscode-copilot/generator.ts
|
|
457
543
|
var VSCodeCopilotGenerator = class {
|
|
458
544
|
generator = createGenerator(vscodeCopilotConfig);
|
|
@@ -464,16 +550,6 @@ var VSCodeCopilotGenerator = class {
|
|
|
464
550
|
}
|
|
465
551
|
};
|
|
466
552
|
|
|
467
|
-
// src/generators/codex/config.ts
|
|
468
|
-
var codexConfig = {
|
|
469
|
-
agentType: "codex",
|
|
470
|
-
agentDir: ".codex",
|
|
471
|
-
commandsDir: "prompts",
|
|
472
|
-
displayName: "Codex",
|
|
473
|
-
protocolFilename: "AGENTS.md",
|
|
474
|
-
extension: ".md"
|
|
475
|
-
};
|
|
476
|
-
|
|
477
553
|
// src/generators/codex/generator.ts
|
|
478
554
|
var import_os2 = require("os");
|
|
479
555
|
var CodexGenerator = class {
|
|
@@ -492,15 +568,6 @@ var CodexGenerator = class {
|
|
|
492
568
|
}
|
|
493
569
|
};
|
|
494
570
|
|
|
495
|
-
// src/generators/windsurf/config.ts
|
|
496
|
-
var windsurfConfig = {
|
|
497
|
-
agentType: "windsurf",
|
|
498
|
-
agentDir: ".windsurf",
|
|
499
|
-
commandsDir: "workflows",
|
|
500
|
-
displayName: "Windsurf",
|
|
501
|
-
protocolFilename: "AGENTS.md"
|
|
502
|
-
};
|
|
503
|
-
|
|
504
571
|
// src/generators/windsurf/generator.ts
|
|
505
572
|
var WindsurfGenerator = class {
|
|
506
573
|
generator = createGenerator(windsurfConfig);
|
|
@@ -512,36 +579,6 @@ var WindsurfGenerator = class {
|
|
|
512
579
|
}
|
|
513
580
|
};
|
|
514
581
|
|
|
515
|
-
// src/generators/cline/strategy.ts
|
|
516
|
-
var import_smol_toml3 = require("smol-toml");
|
|
517
|
-
var ClineContentStrategy = class {
|
|
518
|
-
process(templateContent, options) {
|
|
519
|
-
const { installPath, agentType, commandName } = options;
|
|
520
|
-
const parsed = (0, import_smol_toml3.parse)(templateContent);
|
|
521
|
-
if (!parsed.prompt) {
|
|
522
|
-
return null;
|
|
523
|
-
}
|
|
524
|
-
let prompt = parsed.prompt;
|
|
525
|
-
prompt = prompt.replace(/__\$\$CODE_AGENT_INSTALL_PATH\$\$__/g, installPath);
|
|
526
|
-
const finalContent = substituteVariables(prompt, { agent_type: agentType });
|
|
527
|
-
const title = commandName ? commandName.charAt(0).toUpperCase() + commandName.slice(1) : "Command";
|
|
528
|
-
return `# Conductor ${title}${parsed.description ? "\n\n" + parsed.description + "\n\n" : "\n\n"}${finalContent}`;
|
|
529
|
-
}
|
|
530
|
-
};
|
|
531
|
-
var clineContentStrategy = new ClineContentStrategy();
|
|
532
|
-
|
|
533
|
-
// src/generators/cline/config.ts
|
|
534
|
-
var clineConfig = {
|
|
535
|
-
agentType: "cline",
|
|
536
|
-
agentDir: ".clinerules",
|
|
537
|
-
commandsDir: "workflows",
|
|
538
|
-
displayName: "Cline",
|
|
539
|
-
protocolFilename: "AGENTS.md",
|
|
540
|
-
strategy: {
|
|
541
|
-
content: clineContentStrategy
|
|
542
|
-
}
|
|
543
|
-
};
|
|
544
|
-
|
|
545
582
|
// src/generators/cline/generator.ts
|
|
546
583
|
var ClineGenerator = class {
|
|
547
584
|
generator = createGenerator(clineConfig);
|
|
@@ -553,47 +590,6 @@ var ClineGenerator = class {
|
|
|
553
590
|
}
|
|
554
591
|
};
|
|
555
592
|
|
|
556
|
-
// src/generators/gemini/strategy.ts
|
|
557
|
-
var import_path4 = require("path");
|
|
558
|
-
var import_fs_extra4 = __toESM(require("fs-extra"), 1);
|
|
559
|
-
var import_smol_toml4 = require("smol-toml");
|
|
560
|
-
var { writeFile: writeFile3 } = import_fs_extra4.default;
|
|
561
|
-
var GeminiContentStrategy = class {
|
|
562
|
-
process(templateContent, options) {
|
|
563
|
-
const { installPath, agentType } = options;
|
|
564
|
-
const parsed = (0, import_smol_toml4.parse)(templateContent);
|
|
565
|
-
if (!parsed.prompt) {
|
|
566
|
-
return null;
|
|
567
|
-
}
|
|
568
|
-
const content = templateContent.replace(/__\$\$CODE_AGENT_INSTALL_PATH\$\$__/g, installPath);
|
|
569
|
-
return substituteVariables(content, { agent_type: agentType });
|
|
570
|
-
}
|
|
571
|
-
};
|
|
572
|
-
var GeminiFileStrategy = class {
|
|
573
|
-
async write(options) {
|
|
574
|
-
const { targetDir, agentDir, commandsDir, commandName, extension, content } = options;
|
|
575
|
-
const fileName = `${commandName}${extension}`;
|
|
576
|
-
await writeFile3((0, import_path4.join)(targetDir, agentDir, commandsDir, fileName), content);
|
|
577
|
-
}
|
|
578
|
-
};
|
|
579
|
-
var geminiContentStrategy = new GeminiContentStrategy();
|
|
580
|
-
var geminiFileStrategy = new GeminiFileStrategy();
|
|
581
|
-
|
|
582
|
-
// src/generators/gemini/config.ts
|
|
583
|
-
var geminiConfig = {
|
|
584
|
-
agentType: "gemini",
|
|
585
|
-
agentDir: ".gemini",
|
|
586
|
-
commandsDir: "commands/conductor",
|
|
587
|
-
displayName: "Gemini CLI",
|
|
588
|
-
protocolFilename: "GEMINI.md",
|
|
589
|
-
extension: ".toml",
|
|
590
|
-
usesPrefix: false,
|
|
591
|
-
strategy: {
|
|
592
|
-
content: geminiContentStrategy,
|
|
593
|
-
file: geminiFileStrategy
|
|
594
|
-
}
|
|
595
|
-
};
|
|
596
|
-
|
|
597
593
|
// src/generators/gemini/generator.ts
|
|
598
594
|
var GeminiGenerator = class {
|
|
599
595
|
generator = createGenerator(geminiConfig);
|