ccg-workflow 1.7.4 → 1.7.6
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/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import cac from 'cac';
|
|
3
3
|
import ansis from 'ansis';
|
|
4
|
-
import { y as diagnoseMcpConfig, z as isWindows, A as readClaudeCodeConfig, B as fixWindowsMcpConfig, C as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, s as showMainMenu, i as init, D as configMcp, E as version, a as i18n } from './shared/ccg-workflow.
|
|
4
|
+
import { y as diagnoseMcpConfig, z as isWindows, A as readClaudeCodeConfig, B as fixWindowsMcpConfig, C as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, s as showMainMenu, i as init, D as configMcp, E as version, a as i18n } from './shared/ccg-workflow.B8xBuAaQ.mjs';
|
|
5
5
|
import 'inquirer';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'pathe';
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as changeLanguage, v as checkForUpdates, x as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, q as getCurrentVersion, t as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, k as installWorkflows, o as migrateToV1_4_0, p as needsMigration, r as readCcgConfig, s as showMainMenu, n as uninstallAceTool, m as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.
|
|
1
|
+
export { c as changeLanguage, v as checkForUpdates, x as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, q as getCurrentVersion, t as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, k as installWorkflows, o as migrateToV1_4_0, p as needsMigration, r as readCcgConfig, s as showMainMenu, n as uninstallAceTool, m as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.B8xBuAaQ.mjs';
|
|
2
2
|
import 'ansis';
|
|
3
3
|
import 'inquirer';
|
|
4
4
|
import 'node:os';
|
|
@@ -10,7 +10,7 @@ import { parse, stringify } from 'smol-toml';
|
|
|
10
10
|
import { exec } from 'node:child_process';
|
|
11
11
|
import { promisify } from 'node:util';
|
|
12
12
|
|
|
13
|
-
const version = "1.7.
|
|
13
|
+
const version = "1.7.6";
|
|
14
14
|
|
|
15
15
|
function isWindows() {
|
|
16
16
|
return process.platform === "win32";
|
|
@@ -246,6 +246,17 @@ const WORKFLOW_CONFIGS = [
|
|
|
246
246
|
description: "\u53CC\u6A21\u578B\u4EE3\u7801\u5BA1\u67E5\uFF0C\u65E0\u53C2\u6570\u65F6\u81EA\u52A8\u5BA1\u67E5 git diff",
|
|
247
247
|
descriptionEn: "Dual-model code review, auto-review git diff when no args"
|
|
248
248
|
},
|
|
249
|
+
{
|
|
250
|
+
id: "enhance",
|
|
251
|
+
name: "Prompt \u589E\u5F3A",
|
|
252
|
+
nameEn: "Prompt Enhancement",
|
|
253
|
+
category: "development",
|
|
254
|
+
commands: ["enhance"],
|
|
255
|
+
defaultSelected: true,
|
|
256
|
+
order: 9.5,
|
|
257
|
+
description: "ace-tool Prompt \u589E\u5F3A\u5DE5\u5177",
|
|
258
|
+
descriptionEn: "ace-tool prompt enhancement"
|
|
259
|
+
},
|
|
249
260
|
{
|
|
250
261
|
id: "init-project",
|
|
251
262
|
name: "\u9879\u76EE\u521D\u59CB\u5316",
|
|
@@ -688,6 +699,17 @@ async function installAceTool(config) {
|
|
|
688
699
|
}
|
|
689
700
|
}
|
|
690
701
|
|
|
702
|
+
const installer = {
|
|
703
|
+
__proto__: null,
|
|
704
|
+
getAllCommandIds: getAllCommandIds,
|
|
705
|
+
getWorkflowById: getWorkflowById,
|
|
706
|
+
getWorkflowConfigs: getWorkflowConfigs,
|
|
707
|
+
installAceTool: installAceTool,
|
|
708
|
+
installWorkflows: installWorkflows,
|
|
709
|
+
uninstallAceTool: uninstallAceTool,
|
|
710
|
+
uninstallWorkflows: uninstallWorkflows
|
|
711
|
+
};
|
|
712
|
+
|
|
691
713
|
async function configMcp() {
|
|
692
714
|
console.log();
|
|
693
715
|
console.log(ansis.cyan.bold(` \u914D\u7F6E ace-tool MCP`));
|
|
@@ -1675,74 +1697,6 @@ async function update() {
|
|
|
1675
1697
|
console.log(ansis.red(`\u274C \u66F4\u65B0\u5931\u8D25: ${error}`));
|
|
1676
1698
|
}
|
|
1677
1699
|
}
|
|
1678
|
-
async function askReconfigureRouting(currentRouting) {
|
|
1679
|
-
console.log();
|
|
1680
|
-
console.log(ansis.cyan.bold("\u{1F527} \u6A21\u578B\u8DEF\u7531\u914D\u7F6E"));
|
|
1681
|
-
console.log();
|
|
1682
|
-
if (currentRouting) {
|
|
1683
|
-
console.log(ansis.gray("\u5F53\u524D\u914D\u7F6E:"));
|
|
1684
|
-
console.log(` ${ansis.cyan("\u524D\u7AEF\u6A21\u578B:")} ${currentRouting.frontend.models.map((m) => ansis.green(m)).join(", ")}`);
|
|
1685
|
-
console.log(` ${ansis.cyan("\u540E\u7AEF\u6A21\u578B:")} ${currentRouting.backend.models.map((m) => ansis.blue(m)).join(", ")}`);
|
|
1686
|
-
console.log();
|
|
1687
|
-
}
|
|
1688
|
-
const { reconfigure } = await inquirer.prompt([{
|
|
1689
|
-
type: "confirm",
|
|
1690
|
-
name: "reconfigure",
|
|
1691
|
-
message: "\u662F\u5426\u91CD\u65B0\u914D\u7F6E\u524D\u7AEF\u548C\u540E\u7AEF\u6A21\u578B\uFF1F",
|
|
1692
|
-
default: false
|
|
1693
|
-
}]);
|
|
1694
|
-
if (!reconfigure) {
|
|
1695
|
-
return null;
|
|
1696
|
-
}
|
|
1697
|
-
console.log();
|
|
1698
|
-
const { selectedFrontend } = await inquirer.prompt([{
|
|
1699
|
-
type: "checkbox",
|
|
1700
|
-
name: "selectedFrontend",
|
|
1701
|
-
message: i18n.t("init:selectFrontendModels"),
|
|
1702
|
-
choices: [
|
|
1703
|
-
{ name: "Gemini", value: "gemini", checked: currentRouting?.frontend.models.includes("gemini") ?? true },
|
|
1704
|
-
{ name: "Claude", value: "claude", checked: currentRouting?.frontend.models.includes("claude") ?? false },
|
|
1705
|
-
{ name: "Codex", value: "codex", checked: currentRouting?.frontend.models.includes("codex") ?? false }
|
|
1706
|
-
],
|
|
1707
|
-
validate: (answer) => answer.length > 0 || i18n.t("init:validation.selectAtLeastOne")
|
|
1708
|
-
}]);
|
|
1709
|
-
const { selectedBackend } = await inquirer.prompt([{
|
|
1710
|
-
type: "checkbox",
|
|
1711
|
-
name: "selectedBackend",
|
|
1712
|
-
message: i18n.t("init:selectBackendModels"),
|
|
1713
|
-
choices: [
|
|
1714
|
-
{ name: "Codex", value: "codex", checked: currentRouting?.backend.models.includes("codex") ?? true },
|
|
1715
|
-
{ name: "Gemini", value: "gemini", checked: currentRouting?.backend.models.includes("gemini") ?? false },
|
|
1716
|
-
{ name: "Claude", value: "claude", checked: currentRouting?.backend.models.includes("claude") ?? false }
|
|
1717
|
-
],
|
|
1718
|
-
validate: (answer) => answer.length > 0 || i18n.t("init:validation.selectAtLeastOne")
|
|
1719
|
-
}]);
|
|
1720
|
-
const frontendModels = selectedFrontend;
|
|
1721
|
-
const backendModels = selectedBackend;
|
|
1722
|
-
const newRouting = {
|
|
1723
|
-
frontend: {
|
|
1724
|
-
models: frontendModels,
|
|
1725
|
-
primary: frontendModels[0],
|
|
1726
|
-
strategy: frontendModels.length > 1 ? "parallel" : "fallback"
|
|
1727
|
-
},
|
|
1728
|
-
backend: {
|
|
1729
|
-
models: backendModels,
|
|
1730
|
-
primary: backendModels[0],
|
|
1731
|
-
strategy: backendModels.length > 1 ? "parallel" : "fallback"
|
|
1732
|
-
},
|
|
1733
|
-
review: {
|
|
1734
|
-
models: [.../* @__PURE__ */ new Set([...frontendModels, ...backendModels])],
|
|
1735
|
-
strategy: "parallel"
|
|
1736
|
-
},
|
|
1737
|
-
mode: currentRouting?.mode || "smart"
|
|
1738
|
-
};
|
|
1739
|
-
console.log();
|
|
1740
|
-
console.log(ansis.green("\u2713 \u65B0\u914D\u7F6E:"));
|
|
1741
|
-
console.log(` ${ansis.cyan("\u524D\u7AEF\u6A21\u578B:")} ${frontendModels.map((m) => ansis.green(m)).join(", ")}`);
|
|
1742
|
-
console.log(` ${ansis.cyan("\u540E\u7AEF\u6A21\u578B:")} ${backendModels.map((m) => ansis.blue(m)).join(", ")}`);
|
|
1743
|
-
console.log();
|
|
1744
|
-
return newRouting;
|
|
1745
|
-
}
|
|
1746
1700
|
async function performUpdate(fromVersion, toVersion, isNewVersion) {
|
|
1747
1701
|
console.log();
|
|
1748
1702
|
console.log(ansis.yellow.bold("\u2699\uFE0F \u5F00\u59CB\u66F4\u65B0..."));
|
|
@@ -1757,16 +1711,17 @@ async function performUpdate(fromVersion, toVersion, isNewVersion) {
|
|
|
1757
1711
|
return;
|
|
1758
1712
|
}
|
|
1759
1713
|
const config = await readCcgConfig();
|
|
1760
|
-
|
|
1761
|
-
spinner = ora("\u6B63\u5728\u5220\u9664\u65E7\u5DE5\u4F5C\u6D41\u5E76\u5B89\u88C5\u65B0\u5DE5\u4F5C\u6D41...").start();
|
|
1714
|
+
spinner = ora("\u6B63\u5728\u66F4\u65B0\u5DE5\u4F5C\u6D41\u548C codeagent-wrapper \u4E8C\u8FDB\u5236...").start();
|
|
1762
1715
|
try {
|
|
1763
|
-
const
|
|
1716
|
+
const { getAllCommandIds } = await Promise.resolve().then(function () { return installer; });
|
|
1717
|
+
const workflows = getAllCommandIds();
|
|
1764
1718
|
const installDir = join(homedir(), ".claude");
|
|
1765
1719
|
const result = await installWorkflows(workflows, installDir, true, {
|
|
1766
|
-
routing:
|
|
1720
|
+
routing: config?.routing
|
|
1721
|
+
// Use existing routing (fixed: Gemini frontend + Codex backend)
|
|
1767
1722
|
});
|
|
1768
1723
|
if (result.success) {
|
|
1769
|
-
spinner.succeed("\u5DE5\u4F5C\u6D41\u66F4\u65B0\u6210\u529F");
|
|
1724
|
+
spinner.succeed("\u5DE5\u4F5C\u6D41\u548C\u4E8C\u8FDB\u5236\u6587\u4EF6\u66F4\u65B0\u6210\u529F");
|
|
1770
1725
|
console.log();
|
|
1771
1726
|
console.log(ansis.cyan(`\u5DF2\u66F4\u65B0 ${result.installedCommands.length} \u4E2A\u547D\u4EE4:`));
|
|
1772
1727
|
for (const cmd of result.installedCommands) {
|
|
@@ -1774,15 +1729,12 @@ async function performUpdate(fromVersion, toVersion, isNewVersion) {
|
|
|
1774
1729
|
}
|
|
1775
1730
|
if (config) {
|
|
1776
1731
|
config.general.version = toVersion;
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1732
|
+
config.workflows = {
|
|
1733
|
+
installed: workflows
|
|
1734
|
+
// Update to include all current commands
|
|
1735
|
+
};
|
|
1780
1736
|
await writeCcgConfig(config);
|
|
1781
1737
|
}
|
|
1782
|
-
if (newRouting) {
|
|
1783
|
-
console.log();
|
|
1784
|
-
console.log(ansis.green("\u2713 \u6A21\u578B\u8DEF\u7531\u914D\u7F6E\u5DF2\u66F4\u65B0"));
|
|
1785
|
-
}
|
|
1786
1738
|
} else {
|
|
1787
1739
|
spinner.fail("\u66F4\u65B0\u5931\u8D25");
|
|
1788
1740
|
console.log(ansis.red("\u90E8\u5206\u6587\u4EF6\u66F4\u65B0\u5931\u8D25:"));
|