ccg-ros2-workflow 1.4.0 → 2.1.0

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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +128 -241
  3. package/bin/ccg.mjs +2 -0
  4. package/bin/codeagent-wrapper-darwin-amd64 +0 -0
  5. package/bin/codeagent-wrapper-darwin-arm64 +0 -0
  6. package/bin/codeagent-wrapper-linux-amd64 +0 -0
  7. package/bin/codeagent-wrapper-linux-arm64 +0 -0
  8. package/bin/codeagent-wrapper-windows-amd64.exe +0 -0
  9. package/bin/codeagent-wrapper-windows-arm64.exe +0 -0
  10. package/dist/cli.d.mts +1 -0
  11. package/dist/cli.d.ts +1 -0
  12. package/dist/cli.mjs +173 -0
  13. package/dist/index.d.mts +229 -0
  14. package/dist/index.d.ts +229 -0
  15. package/dist/index.mjs +12 -0
  16. package/dist/shared/ccg-ros2-workflow.CpLJvcLP.mjs +2274 -0
  17. package/package.json +85 -22
  18. package/templates/commands/agents/planner.md +345 -0
  19. package/templates/commands/agents/system-integrator.md +397 -0
  20. package/{src/commands/ccg → templates/commands}/analyze.md +17 -17
  21. package/{src/commands/ccg → templates/commands}/backend.md +25 -25
  22. package/{src/commands/ccg → templates/commands}/debug.md +12 -12
  23. package/{src/commands/ccg → templates/commands}/execute.md +24 -23
  24. package/{src/commands/ccg → templates/commands}/feat.md +21 -21
  25. package/{src/commands/ccg → templates/commands}/frontend.md +26 -26
  26. package/{src/commands/ccg → templates/commands}/optimize.md +24 -24
  27. package/{src/commands/ccg → templates/commands}/plan.md +20 -19
  28. package/{src/commands/ccg → templates/commands}/review.md +9 -9
  29. package/templates/commands/spec-impl.md +123 -0
  30. package/templates/commands/spec-init.md +91 -0
  31. package/templates/commands/spec-plan.md +109 -0
  32. package/templates/commands/spec-research.md +104 -0
  33. package/templates/commands/spec-review.md +120 -0
  34. package/{src/commands/ccg → templates/commands}/test.md +23 -23
  35. package/templates/commands/workflow.md +193 -0
  36. package/{src/commands/ccg → templates/commands}/worktree.md +8 -8
  37. package/templates/prompts/claude/analyzer.md +59 -0
  38. package/templates/prompts/claude/architect.md +54 -0
  39. package/templates/prompts/claude/debugger.md +71 -0
  40. package/templates/prompts/claude/optimizer.md +73 -0
  41. package/templates/prompts/claude/reviewer.md +63 -0
  42. package/templates/prompts/claude/tester.md +69 -0
  43. package/templates/prompts/codex/analyzer.md +50 -0
  44. package/templates/prompts/codex/architect.md +46 -0
  45. package/templates/prompts/codex/debugger.md +66 -0
  46. package/templates/prompts/codex/optimizer.md +74 -0
  47. package/templates/prompts/codex/reviewer.md +66 -0
  48. package/templates/prompts/codex/tester.md +55 -0
  49. package/templates/prompts/gemini/analyzer.md +53 -0
  50. package/templates/prompts/gemini/architect.md +47 -0
  51. package/templates/prompts/gemini/debugger.md +70 -0
  52. package/templates/prompts/gemini/frontend.md +56 -0
  53. package/templates/prompts/gemini/optimizer.md +77 -0
  54. package/templates/prompts/gemini/reviewer.md +73 -0
  55. package/templates/prompts/gemini/tester.md +61 -0
  56. package/bin/cli.js +0 -903
  57. package/src/agents/ccg/planner.md +0 -358
  58. package/src/agents/ccg/system-integrator.md +0 -627
  59. package/src/codeagent-wrapper.sh +0 -86
  60. package/src/commands/ccg/workflow.md +0 -212
  61. package/src/config.toml +0 -36
  62. package/src/prompts/claude/analyzer.md +0 -25
  63. package/src/prompts/claude/architect.md +0 -25
  64. package/src/prompts/claude/debugger.md +0 -24
  65. package/src/prompts/claude/optimizer.md +0 -25
  66. package/src/prompts/claude/reviewer.md +0 -26
  67. package/src/prompts/claude/tester.md +0 -24
  68. package/src/prompts/codex/analyzer.md +0 -32
  69. package/src/prompts/codex/architect.md +0 -42
  70. package/src/prompts/codex/debugger.md +0 -24
  71. package/src/prompts/codex/optimizer.md +0 -25
  72. package/src/prompts/codex/reviewer.md +0 -32
  73. package/src/prompts/codex/tester.md +0 -24
  74. package/src/prompts/gemini/analyzer.md +0 -32
  75. package/src/prompts/gemini/architect.md +0 -34
  76. package/src/prompts/gemini/debugger.md +0 -24
  77. package/src/prompts/gemini/frontend.md +0 -25
  78. package/src/prompts/gemini/optimizer.md +0 -25
  79. package/src/prompts/gemini/reviewer.md +0 -32
  80. package/src/prompts/gemini/tester.md +0 -24
  81. /package/{src/agents/ccg → templates/commands/agents}/get-current-datetime.md +0 -0
  82. /package/{src/agents/ccg → templates/commands/agents}/init-architect.md +0 -0
  83. /package/{src/commands/ccg → templates/commands}/clean-branches.md +0 -0
  84. /package/{src/commands/ccg → templates/commands}/commit.md +0 -0
  85. /package/{src/commands/ccg → templates/commands}/enhance.md +0 -0
  86. /package/{src/commands/ccg → templates/commands}/init.md +0 -0
  87. /package/{src/commands/ccg → templates/commands}/rollback.md +0 -0
@@ -0,0 +1,229 @@
1
+ import * as i18next from 'i18next';
2
+
3
+ interface CliOptions {
4
+ lang?: SupportedLang;
5
+ force?: boolean;
6
+ skipPrompt?: boolean;
7
+ skipMcp?: boolean;
8
+ frontend?: string;
9
+ backend?: string;
10
+ mode?: CollaborationMode;
11
+ workflows?: string;
12
+ installDir?: string;
13
+ }
14
+
15
+ type SupportedLang = 'zh-CN' | 'en';
16
+ type ModelType = 'codex' | 'gemini' | 'claude';
17
+ type CollaborationMode = 'parallel' | 'smart' | 'sequential';
18
+ type RoutingStrategy = 'parallel' | 'fallback' | 'round-robin';
19
+ interface ModelRouting {
20
+ frontend: {
21
+ models: ModelType[];
22
+ primary: ModelType;
23
+ strategy: RoutingStrategy;
24
+ };
25
+ backend: {
26
+ models: ModelType[];
27
+ primary: ModelType;
28
+ strategy: RoutingStrategy;
29
+ };
30
+ review: {
31
+ models: ModelType[];
32
+ strategy: 'parallel';
33
+ };
34
+ mode: CollaborationMode;
35
+ }
36
+ interface CcgConfig {
37
+ general: {
38
+ version: string;
39
+ language: SupportedLang;
40
+ createdAt: string;
41
+ };
42
+ ros2: {
43
+ distro: string;
44
+ target: string;
45
+ };
46
+ routing: ModelRouting;
47
+ workflows: {
48
+ installed: string[];
49
+ };
50
+ paths: {
51
+ commands: string;
52
+ prompts: string;
53
+ backup: string;
54
+ };
55
+ mcp: {
56
+ provider: string;
57
+ setup_url: string;
58
+ };
59
+ performance?: {
60
+ liteMode?: boolean;
61
+ };
62
+ }
63
+ interface WorkflowConfig {
64
+ id: string;
65
+ name: string;
66
+ nameEn: string;
67
+ category: string;
68
+ commands: string[];
69
+ defaultSelected: boolean;
70
+ order: number;
71
+ description?: string;
72
+ descriptionEn?: string;
73
+ }
74
+ interface InitOptions {
75
+ lang?: SupportedLang;
76
+ skipPrompt?: boolean;
77
+ skipMcp?: boolean;
78
+ force?: boolean;
79
+ frontend?: string;
80
+ backend?: string;
81
+ mode?: CollaborationMode;
82
+ workflows?: string;
83
+ installDir?: string;
84
+ }
85
+ interface InstallResult {
86
+ success: boolean;
87
+ installedCommands: string[];
88
+ installedPrompts: string[];
89
+ errors: string[];
90
+ configPath: string;
91
+ binPath?: string;
92
+ binInstalled?: boolean;
93
+ }
94
+ interface AceToolConfig {
95
+ baseUrl: string;
96
+ token: string;
97
+ }
98
+
99
+ declare function init(options?: InitOptions): Promise<void>;
100
+
101
+ declare function showMainMenu(): Promise<void>;
102
+
103
+ /**
104
+ * Main update command - checks for updates and installs if available
105
+ */
106
+ declare function update(): Promise<void>;
107
+
108
+ declare const i18n: i18next.i18n;
109
+ declare function initI18n(lang?: SupportedLang): Promise<void>;
110
+ declare function changeLanguage(lang: SupportedLang): Promise<void>;
111
+
112
+ declare function getCcgDir(): string;
113
+ declare function getConfigPath(): string;
114
+ declare function readCcgConfig(): Promise<CcgConfig | null>;
115
+ declare function writeCcgConfig(config: CcgConfig): Promise<void>;
116
+ declare function createDefaultConfig(options: {
117
+ language: SupportedLang;
118
+ routing: ModelRouting;
119
+ installedWorkflows: string[];
120
+ mcpProvider?: string;
121
+ liteMode?: boolean;
122
+ }): CcgConfig;
123
+ declare function createDefaultRouting(): ModelRouting;
124
+
125
+ declare function getWorkflowConfigs(): WorkflowConfig[];
126
+ declare function getWorkflowById(id: string): WorkflowConfig | undefined;
127
+ declare function installWorkflows(workflowIds: string[], installDir: string, force?: boolean, config?: {
128
+ routing?: {
129
+ mode?: string;
130
+ frontend?: {
131
+ models?: string[];
132
+ primary?: string;
133
+ };
134
+ backend?: {
135
+ models?: string[];
136
+ primary?: string;
137
+ };
138
+ review?: {
139
+ models?: string[];
140
+ };
141
+ };
142
+ liteMode?: boolean;
143
+ }): Promise<InstallResult>;
144
+ /**
145
+ * Install and configure ace-tool MCP for Claude Code
146
+ * Writes to ~/.claude.json (the correct config file for Claude Code CLI)
147
+ */
148
+ interface UninstallResult {
149
+ success: boolean;
150
+ removedCommands: string[];
151
+ removedPrompts: string[];
152
+ removedAgents: string[];
153
+ removedSkills: string[];
154
+ removedBin: boolean;
155
+ errors: string[];
156
+ }
157
+ /**
158
+ * Uninstall workflows by removing their command files
159
+ */
160
+ declare function uninstallWorkflows(installDir: string): Promise<UninstallResult>;
161
+ /**
162
+ * Uninstall ace-tool MCP configuration from ~/.claude.json
163
+ */
164
+ declare function uninstallAceTool(): Promise<{
165
+ success: boolean;
166
+ message: string;
167
+ }>;
168
+ declare function installAceTool(config: AceToolConfig): Promise<{
169
+ success: boolean;
170
+ message: string;
171
+ configPath?: string;
172
+ }>;
173
+ /**
174
+ * Install and configure ace-tool-rs MCP for Claude Code
175
+ * ace-tool-rs is a Rust implementation of ace-tool, more lightweight and faster
176
+ */
177
+ declare function installAceToolRs(config: AceToolConfig): Promise<{
178
+ success: boolean;
179
+ message: string;
180
+ configPath?: string;
181
+ }>;
182
+
183
+ /**
184
+ * Migration utilities for v1.4.0
185
+ * Handles automatic migration from old directory structure to new one
186
+ */
187
+ interface MigrationResult {
188
+ success: boolean;
189
+ migratedFiles: string[];
190
+ errors: string[];
191
+ skipped: string[];
192
+ }
193
+ /**
194
+ * Migrate from v1.3.x to v1.4.0
195
+ *
196
+ * Changes:
197
+ * 1. ~/.ccg/ → ~/.claude/.ccg/
198
+ * 2. ~/.claude/prompts/ccg/ → ~/.claude/.ccg/prompts/
199
+ */
200
+ declare function migrateToV1_4_0(): Promise<MigrationResult>;
201
+ /**
202
+ * Check if migration is needed
203
+ */
204
+ declare function needsMigration(): Promise<boolean>;
205
+
206
+ /**
207
+ * Get current installed version from package.json
208
+ */
209
+ declare function getCurrentVersion(): Promise<string>;
210
+ /**
211
+ * Get latest version from npm registry
212
+ */
213
+ declare function getLatestVersion(packageName?: string): Promise<string | null>;
214
+ /**
215
+ * Compare two semantic versions
216
+ * @returns 1 if v1 > v2, -1 if v1 < v2, 0 if equal
217
+ */
218
+ declare function compareVersions(v1: string, v2: string): number;
219
+ /**
220
+ * Check if update is available
221
+ */
222
+ declare function checkForUpdates(): Promise<{
223
+ hasUpdate: boolean;
224
+ currentVersion: string;
225
+ latestVersion: string | null;
226
+ }>;
227
+
228
+ export { changeLanguage, checkForUpdates, compareVersions, createDefaultConfig, createDefaultRouting, getCcgDir, getConfigPath, getCurrentVersion, getLatestVersion, getWorkflowById, getWorkflowConfigs, i18n, init, initI18n, installAceTool, installAceToolRs, installWorkflows, migrateToV1_4_0, needsMigration, readCcgConfig, showMainMenu, uninstallAceTool, uninstallWorkflows, update, writeCcgConfig };
229
+ export type { AceToolConfig, CcgConfig, CliOptions, CollaborationMode, InitOptions, InstallResult, ModelRouting, ModelType, RoutingStrategy, SupportedLang, WorkflowConfig };
@@ -0,0 +1,229 @@
1
+ import * as i18next from 'i18next';
2
+
3
+ interface CliOptions {
4
+ lang?: SupportedLang;
5
+ force?: boolean;
6
+ skipPrompt?: boolean;
7
+ skipMcp?: boolean;
8
+ frontend?: string;
9
+ backend?: string;
10
+ mode?: CollaborationMode;
11
+ workflows?: string;
12
+ installDir?: string;
13
+ }
14
+
15
+ type SupportedLang = 'zh-CN' | 'en';
16
+ type ModelType = 'codex' | 'gemini' | 'claude';
17
+ type CollaborationMode = 'parallel' | 'smart' | 'sequential';
18
+ type RoutingStrategy = 'parallel' | 'fallback' | 'round-robin';
19
+ interface ModelRouting {
20
+ frontend: {
21
+ models: ModelType[];
22
+ primary: ModelType;
23
+ strategy: RoutingStrategy;
24
+ };
25
+ backend: {
26
+ models: ModelType[];
27
+ primary: ModelType;
28
+ strategy: RoutingStrategy;
29
+ };
30
+ review: {
31
+ models: ModelType[];
32
+ strategy: 'parallel';
33
+ };
34
+ mode: CollaborationMode;
35
+ }
36
+ interface CcgConfig {
37
+ general: {
38
+ version: string;
39
+ language: SupportedLang;
40
+ createdAt: string;
41
+ };
42
+ ros2: {
43
+ distro: string;
44
+ target: string;
45
+ };
46
+ routing: ModelRouting;
47
+ workflows: {
48
+ installed: string[];
49
+ };
50
+ paths: {
51
+ commands: string;
52
+ prompts: string;
53
+ backup: string;
54
+ };
55
+ mcp: {
56
+ provider: string;
57
+ setup_url: string;
58
+ };
59
+ performance?: {
60
+ liteMode?: boolean;
61
+ };
62
+ }
63
+ interface WorkflowConfig {
64
+ id: string;
65
+ name: string;
66
+ nameEn: string;
67
+ category: string;
68
+ commands: string[];
69
+ defaultSelected: boolean;
70
+ order: number;
71
+ description?: string;
72
+ descriptionEn?: string;
73
+ }
74
+ interface InitOptions {
75
+ lang?: SupportedLang;
76
+ skipPrompt?: boolean;
77
+ skipMcp?: boolean;
78
+ force?: boolean;
79
+ frontend?: string;
80
+ backend?: string;
81
+ mode?: CollaborationMode;
82
+ workflows?: string;
83
+ installDir?: string;
84
+ }
85
+ interface InstallResult {
86
+ success: boolean;
87
+ installedCommands: string[];
88
+ installedPrompts: string[];
89
+ errors: string[];
90
+ configPath: string;
91
+ binPath?: string;
92
+ binInstalled?: boolean;
93
+ }
94
+ interface AceToolConfig {
95
+ baseUrl: string;
96
+ token: string;
97
+ }
98
+
99
+ declare function init(options?: InitOptions): Promise<void>;
100
+
101
+ declare function showMainMenu(): Promise<void>;
102
+
103
+ /**
104
+ * Main update command - checks for updates and installs if available
105
+ */
106
+ declare function update(): Promise<void>;
107
+
108
+ declare const i18n: i18next.i18n;
109
+ declare function initI18n(lang?: SupportedLang): Promise<void>;
110
+ declare function changeLanguage(lang: SupportedLang): Promise<void>;
111
+
112
+ declare function getCcgDir(): string;
113
+ declare function getConfigPath(): string;
114
+ declare function readCcgConfig(): Promise<CcgConfig | null>;
115
+ declare function writeCcgConfig(config: CcgConfig): Promise<void>;
116
+ declare function createDefaultConfig(options: {
117
+ language: SupportedLang;
118
+ routing: ModelRouting;
119
+ installedWorkflows: string[];
120
+ mcpProvider?: string;
121
+ liteMode?: boolean;
122
+ }): CcgConfig;
123
+ declare function createDefaultRouting(): ModelRouting;
124
+
125
+ declare function getWorkflowConfigs(): WorkflowConfig[];
126
+ declare function getWorkflowById(id: string): WorkflowConfig | undefined;
127
+ declare function installWorkflows(workflowIds: string[], installDir: string, force?: boolean, config?: {
128
+ routing?: {
129
+ mode?: string;
130
+ frontend?: {
131
+ models?: string[];
132
+ primary?: string;
133
+ };
134
+ backend?: {
135
+ models?: string[];
136
+ primary?: string;
137
+ };
138
+ review?: {
139
+ models?: string[];
140
+ };
141
+ };
142
+ liteMode?: boolean;
143
+ }): Promise<InstallResult>;
144
+ /**
145
+ * Install and configure ace-tool MCP for Claude Code
146
+ * Writes to ~/.claude.json (the correct config file for Claude Code CLI)
147
+ */
148
+ interface UninstallResult {
149
+ success: boolean;
150
+ removedCommands: string[];
151
+ removedPrompts: string[];
152
+ removedAgents: string[];
153
+ removedSkills: string[];
154
+ removedBin: boolean;
155
+ errors: string[];
156
+ }
157
+ /**
158
+ * Uninstall workflows by removing their command files
159
+ */
160
+ declare function uninstallWorkflows(installDir: string): Promise<UninstallResult>;
161
+ /**
162
+ * Uninstall ace-tool MCP configuration from ~/.claude.json
163
+ */
164
+ declare function uninstallAceTool(): Promise<{
165
+ success: boolean;
166
+ message: string;
167
+ }>;
168
+ declare function installAceTool(config: AceToolConfig): Promise<{
169
+ success: boolean;
170
+ message: string;
171
+ configPath?: string;
172
+ }>;
173
+ /**
174
+ * Install and configure ace-tool-rs MCP for Claude Code
175
+ * ace-tool-rs is a Rust implementation of ace-tool, more lightweight and faster
176
+ */
177
+ declare function installAceToolRs(config: AceToolConfig): Promise<{
178
+ success: boolean;
179
+ message: string;
180
+ configPath?: string;
181
+ }>;
182
+
183
+ /**
184
+ * Migration utilities for v1.4.0
185
+ * Handles automatic migration from old directory structure to new one
186
+ */
187
+ interface MigrationResult {
188
+ success: boolean;
189
+ migratedFiles: string[];
190
+ errors: string[];
191
+ skipped: string[];
192
+ }
193
+ /**
194
+ * Migrate from v1.3.x to v1.4.0
195
+ *
196
+ * Changes:
197
+ * 1. ~/.ccg/ → ~/.claude/.ccg/
198
+ * 2. ~/.claude/prompts/ccg/ → ~/.claude/.ccg/prompts/
199
+ */
200
+ declare function migrateToV1_4_0(): Promise<MigrationResult>;
201
+ /**
202
+ * Check if migration is needed
203
+ */
204
+ declare function needsMigration(): Promise<boolean>;
205
+
206
+ /**
207
+ * Get current installed version from package.json
208
+ */
209
+ declare function getCurrentVersion(): Promise<string>;
210
+ /**
211
+ * Get latest version from npm registry
212
+ */
213
+ declare function getLatestVersion(packageName?: string): Promise<string | null>;
214
+ /**
215
+ * Compare two semantic versions
216
+ * @returns 1 if v1 > v2, -1 if v1 < v2, 0 if equal
217
+ */
218
+ declare function compareVersions(v1: string, v2: string): number;
219
+ /**
220
+ * Check if update is available
221
+ */
222
+ declare function checkForUpdates(): Promise<{
223
+ hasUpdate: boolean;
224
+ currentVersion: string;
225
+ latestVersion: string | null;
226
+ }>;
227
+
228
+ export { changeLanguage, checkForUpdates, compareVersions, createDefaultConfig, createDefaultRouting, getCcgDir, getConfigPath, getCurrentVersion, getLatestVersion, getWorkflowById, getWorkflowConfigs, i18n, init, initI18n, installAceTool, installAceToolRs, installWorkflows, migrateToV1_4_0, needsMigration, readCcgConfig, showMainMenu, uninstallAceTool, uninstallWorkflows, update, writeCcgConfig };
229
+ export type { AceToolConfig, CcgConfig, CliOptions, CollaborationMode, InitOptions, InstallResult, ModelRouting, ModelType, RoutingStrategy, SupportedLang, WorkflowConfig };
package/dist/index.mjs ADDED
@@ -0,0 +1,12 @@
1
+ export { c as changeLanguage, a as checkForUpdates, b as compareVersions, d as createDefaultConfig, e as createDefaultRouting, g as getCcgDir, f as getConfigPath, h as getCurrentVersion, i as getLatestVersion, j as getWorkflowById, k as getWorkflowConfigs, l as i18n, m as init, n as initI18n, o as installAceTool, p as installAceToolRs, q as installWorkflows, r as migrateToV1_4_0, s as needsMigration, t as readCcgConfig, u as showMainMenu, v as uninstallAceTool, w as uninstallWorkflows, x as update, y as writeCcgConfig } from './shared/ccg-ros2-workflow.CpLJvcLP.mjs';
2
+ import 'ansis';
3
+ import 'inquirer';
4
+ import 'node:child_process';
5
+ import 'node:util';
6
+ import 'node:os';
7
+ import 'pathe';
8
+ import 'fs-extra';
9
+ import 'node:url';
10
+ import 'i18next';
11
+ import 'ora';
12
+ import 'smol-toml';