ccg-workflow 1.7.64 → 1.7.66
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
CHANGED
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, s as showMainMenu, i as init, E as configMcp, F as version, a as i18n } 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, s as showMainMenu, i as init, E as configMcp, F as version, a as i18n } from './shared/ccg-workflow.DJhRBISe.mjs';
|
|
5
5
|
import 'inquirer';
|
|
6
6
|
import 'node:child_process';
|
|
7
7
|
import 'node:util';
|
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.DJhRBISe.mjs';
|
|
2
2
|
import 'ansis';
|
|
3
3
|
import 'inquirer';
|
|
4
4
|
import 'node:child_process';
|
|
@@ -10,7 +10,7 @@ import i18next from 'i18next';
|
|
|
10
10
|
import ora from 'ora';
|
|
11
11
|
import { parse, stringify } from 'smol-toml';
|
|
12
12
|
|
|
13
|
-
const version = "1.7.
|
|
13
|
+
const version = "1.7.66";
|
|
14
14
|
|
|
15
15
|
function isWindows() {
|
|
16
16
|
return process.platform === "win32";
|
|
@@ -489,7 +489,19 @@ function injectConfigVariables(content, config) {
|
|
|
489
489
|
const liteModeFlag = config.liteMode ? "--lite " : "";
|
|
490
490
|
processed = processed.replace(/\{\{LITE_MODE_FLAG\}\}/g, liteModeFlag);
|
|
491
491
|
const mcpProvider = config.mcpProvider || "ace-tool";
|
|
492
|
-
if (mcpProvider === "
|
|
492
|
+
if (mcpProvider === "skip") {
|
|
493
|
+
processed = processed.replace(/,\s*\{\{MCP_SEARCH_TOOL\}\}/g, "");
|
|
494
|
+
processed = processed.replace(
|
|
495
|
+
/```\n\{\{MCP_SEARCH_TOOL\}\}[\s\S]*?\n```/g,
|
|
496
|
+
"> MCP \u672A\u914D\u7F6E\u3002\u4F7F\u7528 `Glob` \u5B9A\u4F4D\u6587\u4EF6 + `Grep` \u641C\u7D22\u5173\u952E\u7B26\u53F7 + `Read` \u8BFB\u53D6\u6587\u4EF6\u5185\u5BB9\u3002"
|
|
497
|
+
);
|
|
498
|
+
processed = processed.replace(
|
|
499
|
+
/`\{\{MCP_SEARCH_TOOL\}\}`/g,
|
|
500
|
+
"`Glob + Grep`\uFF08MCP \u672A\u914D\u7F6E\uFF09"
|
|
501
|
+
);
|
|
502
|
+
processed = processed.replace(/\{\{MCP_SEARCH_TOOL\}\}/g, "Glob + Grep");
|
|
503
|
+
processed = processed.replace(/\{\{MCP_SEARCH_PARAM\}\}/g, "");
|
|
504
|
+
} else if (mcpProvider === "contextweaver") {
|
|
493
505
|
processed = processed.replace(/\{\{MCP_SEARCH_TOOL\}\}/g, "mcp__contextweaver__codebase-retrieval");
|
|
494
506
|
processed = processed.replace(/\{\{MCP_SEARCH_PARAM\}\}/g, "information_request");
|
|
495
507
|
} else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccg-workflow",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.66",
|
|
4
4
|
"description": "Claude-Codex-Gemini 多模型协作系统 - 智能路由多模型开发工作流",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.17.1",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"start": "node bin/ccg.mjs",
|
|
72
72
|
"typecheck": "tsc --noEmit",
|
|
73
73
|
"prepublishOnly": "pnpm build",
|
|
74
|
+
"test": "vitest run",
|
|
74
75
|
"lint": "eslint",
|
|
75
76
|
"lint:fix": "eslint --fix"
|
|
76
77
|
},
|
|
@@ -93,6 +94,7 @@
|
|
|
93
94
|
"eslint": "^9.36.0",
|
|
94
95
|
"tsx": "^4.20.5",
|
|
95
96
|
"typescript": "^5.9.2",
|
|
96
|
-
"unbuild": "^3.6.1"
|
|
97
|
+
"unbuild": "^3.6.1",
|
|
98
|
+
"vitest": "^3.1.1"
|
|
97
99
|
}
|
|
98
100
|
}
|
|
@@ -47,7 +47,11 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
|
|
|
47
47
|
- Each boundary should be self-contained: no cross-communication needed.
|
|
48
48
|
|
|
49
49
|
4. **Parallel Multi-Model Exploration**
|
|
50
|
-
-
|
|
50
|
+
- **CRITICAL**: You MUST launch BOTH Codex AND Gemini in a SINGLE message with TWO Bash tool calls.
|
|
51
|
+
- **DO NOT** call one model first and wait. Launch BOTH simultaneously with `run_in_background: true`.
|
|
52
|
+
- **工作目录**:`{{WORKDIR}}` 替换为目标工作目录的绝对路径。如果用户通过 `/add-dir` 添加了多个工作区,先确定任务相关的工作区。
|
|
53
|
+
|
|
54
|
+
**Output Template** (instruct both models to use this format):
|
|
51
55
|
```json
|
|
52
56
|
{
|
|
53
57
|
"module_name": "context boundary explored",
|
|
@@ -60,7 +64,34 @@ description: '需求 → 约束集(并行探索 + OPSX 提案)'
|
|
|
60
64
|
"success_criteria_hints": ["observable success behaviors"]
|
|
61
65
|
}
|
|
62
66
|
```
|
|
63
|
-
|
|
67
|
+
|
|
68
|
+
**Step 4.1**: In ONE message, make TWO parallel Bash calls:
|
|
69
|
+
|
|
70
|
+
**FIRST Bash call (Codex — backend boundaries)**:
|
|
71
|
+
```
|
|
72
|
+
Bash({
|
|
73
|
+
command: "~/.claude/bin/codeagent-wrapper --backend codex - \"{{WORKDIR}}\" <<'EOF'\nExplore backend context boundaries for <change description>:\n- Existing structures and patterns\n- Conventions in use\n- Hard constraints limiting solution space\n- Dependencies and risks\nOUTPUT: JSON using the output template above\nEOF",
|
|
74
|
+
run_in_background: true,
|
|
75
|
+
timeout: 300000,
|
|
76
|
+
description: "Codex: backend boundary exploration"
|
|
77
|
+
})
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**SECOND Bash call (Gemini — frontend boundaries) - IN THE SAME MESSAGE**:
|
|
81
|
+
```
|
|
82
|
+
Bash({
|
|
83
|
+
command: "~/.claude/bin/codeagent-wrapper --backend gemini --gemini-model gemini-3.1-pro-preview - \"{{WORKDIR}}\" <<'EOF'\nExplore frontend context boundaries for <change description>:\n- Existing structures and patterns\n- Conventions in use\n- Hard constraints limiting solution space\n- Dependencies and risks\nOUTPUT: JSON using the output template above\nEOF",
|
|
84
|
+
run_in_background: true,
|
|
85
|
+
timeout: 300000,
|
|
86
|
+
description: "Gemini: frontend boundary exploration"
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Step 4.2**: After BOTH Bash calls return task IDs, wait for results with TWO TaskOutput calls:
|
|
91
|
+
```
|
|
92
|
+
TaskOutput({ task_id: "<codex_task_id>", block: true, timeout: 600000 })
|
|
93
|
+
TaskOutput({ task_id: "<gemini_task_id>", block: true, timeout: 600000 })
|
|
94
|
+
```
|
|
64
95
|
|
|
65
96
|
5. **Aggregate and Synthesize**
|
|
66
97
|
- Collect all subagent outputs.
|
|
@@ -16,7 +16,7 @@ description: 'Agent Teams 规划 - Lead 调用 Codex/Gemini 并行分析,产
|
|
|
16
16
|
**Steps**
|
|
17
17
|
1. **上下文收集**
|
|
18
18
|
- 用 Glob/Grep/Read 分析项目结构、技术栈、现有代码模式。
|
|
19
|
-
- 如果 `
|
|
19
|
+
- 如果 `{{MCP_SEARCH_TOOL}}` 可用,优先语义检索。
|
|
20
20
|
- 整理出:技术栈、目录结构、关键文件、现有模式。
|
|
21
21
|
|
|
22
22
|
2. **多模型并行分析(PARALLEL)**
|