ccg-workflow 2.1.1 → 2.1.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.
- package/README.md +5 -1
- package/README.zh-CN.md +5 -1
- package/dist/cli.mjs +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.mjs +1 -1
- package/dist/shared/{ccg-workflow.pMx0aHNz.mjs → ccg-workflow.B7JDWK9O.mjs} +36 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
[](https://claude.ai/code)
|
|
8
8
|
[]()
|
|
9
|
+
[](https://x.com/CCG_Workflow)
|
|
9
10
|
|
|
10
11
|
[简体中文](./README.zh-CN.md) | English
|
|
11
12
|
|
|
@@ -37,6 +38,8 @@ Codex Gemini
|
|
|
37
38
|
|
|
38
39
|
External models have no write access — they only return patches, which Claude reviews before applying.
|
|
39
40
|
|
|
41
|
+
> **🎬 [See CCG in action →](https://x.com/CCG_Workflow/status/2038923720610463876)** — Real multi-model collaboration demo on X
|
|
42
|
+
|
|
40
43
|
## Quick Start
|
|
41
44
|
|
|
42
45
|
### Prerequisites
|
|
@@ -349,6 +352,7 @@ Looking for a place to start? Check out issues labeled [`good first issue`](http
|
|
|
349
352
|
|
|
350
353
|
## Contact
|
|
351
354
|
|
|
355
|
+
- **X (Twitter)**: [@CCG_Workflow](https://x.com/CCG_Workflow) — Updates, demos, and tips
|
|
352
356
|
- **Email**: [fengshao1227@gmail.com](mailto:fengshao1227@gmail.com) — Sponsorship, collaboration, or development ideas
|
|
353
357
|
- **Issues**: [GitHub Issues](https://github.com/fengshao1227/ccg-workflow/issues) — Bug reports and feature requests
|
|
354
358
|
- **Discussions**: [GitHub Discussions](https://github.com/fengshao1227/ccg-workflow/discussions) — Questions and community chat
|
|
@@ -359,4 +363,4 @@ MIT
|
|
|
359
363
|
|
|
360
364
|
---
|
|
361
365
|
|
|
362
|
-
|
|
366
|
+
v2.1.11 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues) | [Contributing](./CONTRIBUTING.md)
|
package/README.zh-CN.md
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
[](https://claude.ai/code)
|
|
8
8
|
[]()
|
|
9
|
+
[](https://x.com/CCG_Workflow)
|
|
9
10
|
|
|
10
11
|
简体中文 | [English](./README.md)
|
|
11
12
|
|
|
@@ -37,6 +38,8 @@ Codex Gemini
|
|
|
37
38
|
|
|
38
39
|
外部模型无写入权限,仅返回 Patch,由 Claude 审核后应用。
|
|
39
40
|
|
|
41
|
+
> **🎬 [查看 CCG 实战演示 →](https://x.com/CCG_Workflow/status/2038923720610463876)** — X 上的多模型协作真实案例
|
|
42
|
+
|
|
40
43
|
## 快速开始
|
|
41
44
|
|
|
42
45
|
### 前置条件
|
|
@@ -349,6 +352,7 @@ npm uninstall -g ccg-workflow # npm 全局用户需额外执行
|
|
|
349
352
|
|
|
350
353
|
## 联系方式
|
|
351
354
|
|
|
355
|
+
- **X (Twitter)**: [@CCG_Workflow](https://x.com/CCG_Workflow) — 更新动态、实战演示、使用技巧
|
|
352
356
|
- **邮箱**: [fengshao1227@gmail.com](mailto:fengshao1227@gmail.com) — 赞助、合作洽谈、开发交流
|
|
353
357
|
- **Issues**: [GitHub Issues](https://github.com/fengshao1227/ccg-workflow/issues) — Bug 反馈与功能建议
|
|
354
358
|
- **讨论区**: [GitHub Discussions](https://github.com/fengshao1227/ccg-workflow/discussions) — 问题咨询与社区交流
|
|
@@ -359,4 +363,4 @@ MIT
|
|
|
359
363
|
|
|
360
364
|
---
|
|
361
365
|
|
|
362
|
-
|
|
366
|
+
v2.1.11 | [Issues](https://github.com/fengshao1227/ccg-workflow/issues) | [参与贡献](./CONTRIBUTING.md)
|
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 { z as diagnoseMcpConfig, A as isWindows, B as readClaudeCodeConfig, C as fixWindowsMcpConfig, D as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, a as i18n, s as showMainMenu, i as init, E as configMcp, F as version } from './shared/ccg-workflow.
|
|
4
|
+
import { z as diagnoseMcpConfig, A as isWindows, B as readClaudeCodeConfig, C as fixWindowsMcpConfig, D as writeClaudeCodeConfig, r as readCcgConfig, b as initI18n, a as i18n, s as showMainMenu, i as init, E as configMcp, F as version } from './shared/ccg-workflow.B7JDWK9O.mjs';
|
|
5
5
|
import 'inquirer';
|
|
6
6
|
import 'ora';
|
|
7
7
|
import 'node:child_process';
|
package/dist/index.d.mts
CHANGED
|
@@ -55,6 +55,7 @@ interface CcgConfig {
|
|
|
55
55
|
};
|
|
56
56
|
performance?: {
|
|
57
57
|
liteMode?: boolean;
|
|
58
|
+
skipImpeccable?: boolean;
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
interface WorkflowConfig {
|
|
@@ -123,6 +124,7 @@ declare function createDefaultConfig(options: {
|
|
|
123
124
|
installedWorkflows: string[];
|
|
124
125
|
mcpProvider?: string;
|
|
125
126
|
liteMode?: boolean;
|
|
127
|
+
skipImpeccable?: boolean;
|
|
126
128
|
}): CcgConfig;
|
|
127
129
|
declare function createDefaultRouting(): ModelRouting;
|
|
128
130
|
|
|
@@ -168,6 +170,7 @@ declare function installWorkflows(workflowIds: string[], installDir: string, for
|
|
|
168
170
|
};
|
|
169
171
|
liteMode?: boolean;
|
|
170
172
|
mcpProvider?: string;
|
|
173
|
+
skipImpeccable?: boolean;
|
|
171
174
|
}): Promise<InstallResult>;
|
|
172
175
|
interface UninstallResult {
|
|
173
176
|
success: boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -55,6 +55,7 @@ interface CcgConfig {
|
|
|
55
55
|
};
|
|
56
56
|
performance?: {
|
|
57
57
|
liteMode?: boolean;
|
|
58
|
+
skipImpeccable?: boolean;
|
|
58
59
|
};
|
|
59
60
|
}
|
|
60
61
|
interface WorkflowConfig {
|
|
@@ -123,6 +124,7 @@ declare function createDefaultConfig(options: {
|
|
|
123
124
|
installedWorkflows: string[];
|
|
124
125
|
mcpProvider?: string;
|
|
125
126
|
liteMode?: boolean;
|
|
127
|
+
skipImpeccable?: boolean;
|
|
126
128
|
}): CcgConfig;
|
|
127
129
|
declare function createDefaultRouting(): ModelRouting;
|
|
128
130
|
|
|
@@ -168,6 +170,7 @@ declare function installWorkflows(workflowIds: string[], installDir: string, for
|
|
|
168
170
|
};
|
|
169
171
|
liteMode?: boolean;
|
|
170
172
|
mcpProvider?: string;
|
|
173
|
+
skipImpeccable?: boolean;
|
|
171
174
|
}): Promise<InstallResult>;
|
|
172
175
|
interface UninstallResult {
|
|
173
176
|
success: boolean;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as changeLanguage, x as checkForUpdates, y as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, t as getCurrentVersion, v as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, m as installAceToolRs, k as installWorkflows, p as migrateToV1_4_0, q as needsMigration, r as readCcgConfig, s as showMainMenu, o as uninstallAceTool, n as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.
|
|
1
|
+
export { c as changeLanguage, x as checkForUpdates, y as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, t as getCurrentVersion, v as getLatestVersion, j as getWorkflowById, h as getWorkflowConfigs, a as i18n, i as init, b as initI18n, l as installAceTool, m as installAceToolRs, k as installWorkflows, p as migrateToV1_4_0, q as needsMigration, r as readCcgConfig, s as showMainMenu, o as uninstallAceTool, n as uninstallWorkflows, u as update, w as writeCcgConfig } from './shared/ccg-workflow.B7JDWK9O.mjs';
|
|
2
2
|
import 'ansis';
|
|
3
3
|
import 'inquirer';
|
|
4
4
|
import 'ora';
|
|
@@ -10,7 +10,7 @@ import fs from 'fs-extra';
|
|
|
10
10
|
import { parse, stringify } from 'smol-toml';
|
|
11
11
|
import i18next from 'i18next';
|
|
12
12
|
|
|
13
|
-
const version = "2.1.
|
|
13
|
+
const version = "2.1.11";
|
|
14
14
|
|
|
15
15
|
function cmd(id, order, category, name, nameEn, description, descriptionEn, cmdOverride) {
|
|
16
16
|
return {
|
|
@@ -319,8 +319,8 @@ function generateCommandContent(skill, skillsInstallDir) {
|
|
|
319
319
|
`\`\`\``
|
|
320
320
|
].join("\n");
|
|
321
321
|
}
|
|
322
|
-
async function installSkillCommands(skillsTemplateDir, skillsInstallDir, commandsDir, existingCommandNames) {
|
|
323
|
-
const invocableSkills = collectInvocableSkills(skillsTemplateDir);
|
|
322
|
+
async function installSkillCommands(skillsTemplateDir, skillsInstallDir, commandsDir, existingCommandNames, skipCategories = []) {
|
|
323
|
+
const invocableSkills = collectInvocableSkills(skillsTemplateDir).filter((s) => !skipCategories.includes(s.category));
|
|
324
324
|
const generated = [];
|
|
325
325
|
await fs.ensureDir(commandsDir);
|
|
326
326
|
for (const skill of invocableSkills) {
|
|
@@ -1043,11 +1043,16 @@ async function installSkillGeneratedCommands(ctx) {
|
|
|
1043
1043
|
existingCommandNames.add(basename(f, ".md"));
|
|
1044
1044
|
}
|
|
1045
1045
|
}
|
|
1046
|
+
const skipCategories = [];
|
|
1047
|
+
if (ctx.config.skipImpeccable) {
|
|
1048
|
+
skipCategories.push("impeccable");
|
|
1049
|
+
}
|
|
1046
1050
|
const generated = await installSkillCommands(
|
|
1047
1051
|
skillsTemplateDir,
|
|
1048
1052
|
skillsInstallDir,
|
|
1049
1053
|
commandsDir,
|
|
1050
|
-
existingCommandNames
|
|
1054
|
+
existingCommandNames,
|
|
1055
|
+
skipCategories
|
|
1051
1056
|
);
|
|
1052
1057
|
if (generated.length > 0) {
|
|
1053
1058
|
ctx.result.installedCommands.push(...generated);
|
|
@@ -1191,7 +1196,8 @@ async function installWorkflows(workflowIds, installDir, force = false, config)
|
|
|
1191
1196
|
review: { models: ["codex", "gemini"] }
|
|
1192
1197
|
},
|
|
1193
1198
|
liteMode: config?.liteMode || false,
|
|
1194
|
-
mcpProvider: config?.mcpProvider || "ace-tool"
|
|
1199
|
+
mcpProvider: config?.mcpProvider || "ace-tool",
|
|
1200
|
+
skipImpeccable: config?.skipImpeccable || false
|
|
1195
1201
|
},
|
|
1196
1202
|
templateDir: join(PACKAGE_ROOT$1, "templates"),
|
|
1197
1203
|
result: {
|
|
@@ -1875,6 +1881,9 @@ const zhCN = {
|
|
|
1875
1881
|
standardOption: "\u6807\u51C6\u6A21\u5F0F\uFF08\u542B Web UI \u5B9E\u65F6\u76D1\u63A7\uFF09",
|
|
1876
1882
|
liteOption: "\u8F7B\u91CF\u6A21\u5F0F\uFF08\u65E0 Web UI\uFF0C\u54CD\u5E94\u66F4\u5FEB\uFF09"
|
|
1877
1883
|
},
|
|
1884
|
+
commands: {
|
|
1885
|
+
includeImpeccable: "\u5B89\u88C5 Impeccable \u524D\u7AEF\u8BBE\u8BA1\u5DE5\u5177\uFF1F\uFF0820 \u4E2A UI/UX \u547D\u4EE4\uFF1Apolish/audit/animate \u7B49\uFF09"
|
|
1886
|
+
},
|
|
1878
1887
|
hooks: {
|
|
1879
1888
|
title: "codeagent-wrapper \u81EA\u52A8\u6388\u6743",
|
|
1880
1889
|
description: "\u4F7F\u7528 Hook \u81EA\u52A8\u6388\u6743 codeagent-wrapper \u547D\u4EE4",
|
|
@@ -2348,6 +2357,9 @@ const en = {
|
|
|
2348
2357
|
standardOption: "Standard (with Web UI real-time monitoring)",
|
|
2349
2358
|
liteOption: "Lite (no Web UI, faster response)"
|
|
2350
2359
|
},
|
|
2360
|
+
commands: {
|
|
2361
|
+
includeImpeccable: "Install Impeccable frontend design tools? (20 UI/UX commands: polish/audit/animate etc.)"
|
|
2362
|
+
},
|
|
2351
2363
|
hooks: {
|
|
2352
2364
|
title: "codeagent-wrapper auto-authorization",
|
|
2353
2365
|
description: "Use Hook to auto-authorize codeagent-wrapper commands",
|
|
@@ -2685,7 +2697,8 @@ function createDefaultConfig(options) {
|
|
|
2685
2697
|
setup_url: "https://augmentcode.com/"
|
|
2686
2698
|
},
|
|
2687
2699
|
performance: {
|
|
2688
|
-
liteMode: options.liteMode || false
|
|
2700
|
+
liteMode: options.liteMode || false,
|
|
2701
|
+
skipImpeccable: options.skipImpeccable || false
|
|
2689
2702
|
}
|
|
2690
2703
|
};
|
|
2691
2704
|
}
|
|
@@ -2937,6 +2950,7 @@ async function init(options = {}) {
|
|
|
2937
2950
|
}
|
|
2938
2951
|
}
|
|
2939
2952
|
let liteMode = false;
|
|
2953
|
+
let skipImpeccable = false;
|
|
2940
2954
|
let mcpProvider = "ace-tool";
|
|
2941
2955
|
let aceToolBaseUrl = "";
|
|
2942
2956
|
let aceToolToken = "";
|
|
@@ -3038,7 +3052,8 @@ async function init(options = {}) {
|
|
|
3038
3052
|
}
|
|
3039
3053
|
}
|
|
3040
3054
|
if (options.skipMcp) {
|
|
3041
|
-
|
|
3055
|
+
const existingConfig = await readCcgConfig();
|
|
3056
|
+
mcpProvider = existingConfig?.mcp?.provider || "skip";
|
|
3042
3057
|
} else if (!options.skipPrompt) {
|
|
3043
3058
|
console.log();
|
|
3044
3059
|
console.log(ansis.cyan.bold(` \u{1F527} Step 3/4 \u2014 ${i18n.t("init:mcp.title")}`));
|
|
@@ -3190,11 +3205,21 @@ async function init(options = {}) {
|
|
|
3190
3205
|
default: currentLiteMode ? "lite" : "standard"
|
|
3191
3206
|
}]);
|
|
3192
3207
|
liteMode = perfMode === "lite";
|
|
3208
|
+
const { includeImpeccable } = await inquirer.prompt([{
|
|
3209
|
+
type: "confirm",
|
|
3210
|
+
name: "includeImpeccable",
|
|
3211
|
+
message: i18n.t("init:commands.includeImpeccable"),
|
|
3212
|
+
default: false
|
|
3213
|
+
}]);
|
|
3214
|
+
skipImpeccable = !includeImpeccable;
|
|
3193
3215
|
} else {
|
|
3194
3216
|
const existingConfig = await readCcgConfig();
|
|
3195
3217
|
if (existingConfig?.performance?.liteMode !== void 0) {
|
|
3196
3218
|
liteMode = existingConfig.performance.liteMode;
|
|
3197
3219
|
}
|
|
3220
|
+
if (existingConfig?.performance?.skipImpeccable !== void 0) {
|
|
3221
|
+
skipImpeccable = existingConfig.performance.skipImpeccable;
|
|
3222
|
+
}
|
|
3198
3223
|
}
|
|
3199
3224
|
const routing = {
|
|
3200
3225
|
frontend: {
|
|
@@ -3283,14 +3308,16 @@ async function init(options = {}) {
|
|
|
3283
3308
|
routing,
|
|
3284
3309
|
installedWorkflows: selectedWorkflows,
|
|
3285
3310
|
mcpProvider,
|
|
3286
|
-
liteMode
|
|
3311
|
+
liteMode,
|
|
3312
|
+
skipImpeccable
|
|
3287
3313
|
});
|
|
3288
3314
|
await writeCcgConfig(config);
|
|
3289
3315
|
const installDir = options.installDir || join(homedir(), ".claude");
|
|
3290
3316
|
const result = await installWorkflows(selectedWorkflows, installDir, options.force, {
|
|
3291
3317
|
routing,
|
|
3292
3318
|
liteMode,
|
|
3293
|
-
mcpProvider
|
|
3319
|
+
mcpProvider,
|
|
3320
|
+
skipImpeccable
|
|
3294
3321
|
});
|
|
3295
3322
|
spinner.succeed(ansis.green(i18n.t("init:installSuccess")));
|
|
3296
3323
|
if (aceToolToken) {
|
package/package.json
CHANGED