cc-mirror 1.2.1 → 1.3.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.
- package/README.md +14 -0
- package/dist/cc-mirror.mjs +17 -17
- package/dist/tui.mjs +17 -17
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -201,6 +201,20 @@ cc-mirror quick --provider mirror --name mclaude
|
|
|
201
201
|
|
|
202
202
|
Team mode enables: `TaskCreate`, `TaskGet`, `TaskUpdate`, `TaskList` tools plus an **orchestrator skill** that teaches Claude effective multi-agent coordination patterns.
|
|
203
203
|
|
|
204
|
+
### Project-Scoped Tasks (v1.2.0+)
|
|
205
|
+
|
|
206
|
+
Tasks are automatically scoped by project folder — no cross-project pollution:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# Run in different project folders - tasks stay isolated
|
|
210
|
+
cd ~/projects/api && mc # Team: mc-api
|
|
211
|
+
cd ~/projects/frontend && mc # Team: mc-frontend
|
|
212
|
+
|
|
213
|
+
# Multiple teams in the same project
|
|
214
|
+
TEAM=backend mc # Team: mc-myproject-backend
|
|
215
|
+
TEAM=frontend mc # Team: mc-myproject-frontend
|
|
216
|
+
```
|
|
217
|
+
|
|
204
218
|
→ [Team Mode Documentation](docs/features/team-mode.md)
|
|
205
219
|
|
|
206
220
|
---
|
package/dist/cc-mirror.mjs
CHANGED
|
@@ -2612,7 +2612,7 @@ var TeamModeStep = class {
|
|
|
2612
2612
|
this.patchCli(ctx);
|
|
2613
2613
|
}
|
|
2614
2614
|
patchCli(ctx) {
|
|
2615
|
-
const { state,
|
|
2615
|
+
const { state, paths } = ctx;
|
|
2616
2616
|
const cliPath = path9.join(paths.npmDir, "node_modules", "@anthropic-ai", "claude-code", "cli.js");
|
|
2617
2617
|
const backupPath = `${cliPath}.backup`;
|
|
2618
2618
|
if (!fs8.existsSync(cliPath)) {
|
|
@@ -2643,8 +2643,8 @@ var TeamModeStep = class {
|
|
|
2643
2643
|
try {
|
|
2644
2644
|
const settings = JSON.parse(fs8.readFileSync(settingsPath, "utf8"));
|
|
2645
2645
|
settings.env = settings.env || {};
|
|
2646
|
-
if (!settings.env.
|
|
2647
|
-
settings.env.
|
|
2646
|
+
if (!settings.env.CLAUDE_CODE_TEAM_MODE) {
|
|
2647
|
+
settings.env.CLAUDE_CODE_TEAM_MODE = "1";
|
|
2648
2648
|
}
|
|
2649
2649
|
if (!settings.env.CLAUDE_CODE_AGENT_TYPE) {
|
|
2650
2650
|
settings.env.CLAUDE_CODE_AGENT_TYPE = "team-lead";
|
|
@@ -3615,23 +3615,23 @@ var writeWrapper = (wrapperPath, configDir, binaryPath, runtime = "node") => {
|
|
|
3615
3615
|
'if [[ "${CC_MIRROR_UNSET_AUTH_TOKEN:-0}" != "0" ]]; then',
|
|
3616
3616
|
" unset ANTHROPIC_AUTH_TOKEN",
|
|
3617
3617
|
"fi",
|
|
3618
|
-
"# Dynamic team name:
|
|
3619
|
-
|
|
3618
|
+
"# Dynamic team name: purely directory-based, with optional TEAM modifier",
|
|
3619
|
+
"# Check for CLAUDE_CODE_TEAM_MODE (not TEAM_NAME) to avoid Claude Code overwriting",
|
|
3620
|
+
'if [[ -n "${CLAUDE_CODE_TEAM_MODE:-}" ]]; then',
|
|
3620
3621
|
" __cc_git_root=$(git rev-parse --show-toplevel 2>/dev/null || pwd)",
|
|
3621
3622
|
' __cc_folder_name=$(basename "$__cc_git_root")',
|
|
3622
|
-
' if [[ -n "$TEAM" ]]; then',
|
|
3623
|
-
" #
|
|
3624
|
-
' export CLAUDE_CODE_TEAM_NAME="${
|
|
3623
|
+
' if [[ -n "${TEAM:-}" ]]; then',
|
|
3624
|
+
" # Folder name + TEAM modifier",
|
|
3625
|
+
' export CLAUDE_CODE_TEAM_NAME="${__cc_folder_name}-${TEAM}"',
|
|
3625
3626
|
" else",
|
|
3626
|
-
" #
|
|
3627
|
-
' export CLAUDE_CODE_TEAM_NAME="${
|
|
3627
|
+
" # Just folder name (pure directory-based)",
|
|
3628
|
+
' export CLAUDE_CODE_TEAM_NAME="${__cc_folder_name}"',
|
|
3628
3629
|
" fi",
|
|
3629
|
-
'elif [[ -n "$TEAM" ]]; then',
|
|
3630
|
-
" # TEAM
|
|
3630
|
+
'elif [[ -n "${TEAM:-}" ]]; then',
|
|
3631
|
+
" # TEAM env var set without team mode in settings - use folder + TEAM",
|
|
3631
3632
|
" __cc_git_root=$(git rev-parse --show-toplevel 2>/dev/null || pwd)",
|
|
3632
3633
|
' __cc_folder_name=$(basename "$__cc_git_root")',
|
|
3633
|
-
'
|
|
3634
|
-
' export CLAUDE_CODE_TEAM_NAME="${__cc_variant_name}-${__cc_folder_name}-${TEAM}"',
|
|
3634
|
+
' export CLAUDE_CODE_TEAM_NAME="${__cc_folder_name}-${TEAM}"',
|
|
3635
3635
|
"fi",
|
|
3636
3636
|
...splash,
|
|
3637
3637
|
execLine,
|
|
@@ -4113,7 +4113,7 @@ var TeamModeUpdateStep = class {
|
|
|
4113
4113
|
}
|
|
4114
4114
|
}
|
|
4115
4115
|
patchCli(ctx) {
|
|
4116
|
-
const { state, meta,
|
|
4116
|
+
const { state, meta, paths } = ctx;
|
|
4117
4117
|
const cliPath = path18.join(paths.npmDir, "node_modules", "@anthropic-ai", "claude-code", "cli.js");
|
|
4118
4118
|
const backupPath = `${cliPath}.backup`;
|
|
4119
4119
|
if (!fs13.existsSync(cliPath)) {
|
|
@@ -4145,8 +4145,8 @@ var TeamModeUpdateStep = class {
|
|
|
4145
4145
|
try {
|
|
4146
4146
|
const settings = JSON.parse(fs13.readFileSync(settingsPath, "utf8"));
|
|
4147
4147
|
settings.env = settings.env || {};
|
|
4148
|
-
if (!settings.env.
|
|
4149
|
-
settings.env.
|
|
4148
|
+
if (!settings.env.CLAUDE_CODE_TEAM_MODE) {
|
|
4149
|
+
settings.env.CLAUDE_CODE_TEAM_MODE = "1";
|
|
4150
4150
|
}
|
|
4151
4151
|
if (!settings.env.CLAUDE_CODE_AGENT_TYPE) {
|
|
4152
4152
|
settings.env.CLAUDE_CODE_AGENT_TYPE = "team-lead";
|
package/dist/tui.mjs
CHANGED
|
@@ -2481,7 +2481,7 @@ var TeamModeStep = class {
|
|
|
2481
2481
|
this.patchCli(ctx);
|
|
2482
2482
|
}
|
|
2483
2483
|
patchCli(ctx) {
|
|
2484
|
-
const { state,
|
|
2484
|
+
const { state, paths } = ctx;
|
|
2485
2485
|
const cliPath = path8.join(paths.npmDir, "node_modules", "@anthropic-ai", "claude-code", "cli.js");
|
|
2486
2486
|
const backupPath = `${cliPath}.backup`;
|
|
2487
2487
|
if (!fs7.existsSync(cliPath)) {
|
|
@@ -2512,8 +2512,8 @@ var TeamModeStep = class {
|
|
|
2512
2512
|
try {
|
|
2513
2513
|
const settings = JSON.parse(fs7.readFileSync(settingsPath, "utf8"));
|
|
2514
2514
|
settings.env = settings.env || {};
|
|
2515
|
-
if (!settings.env.
|
|
2516
|
-
settings.env.
|
|
2515
|
+
if (!settings.env.CLAUDE_CODE_TEAM_MODE) {
|
|
2516
|
+
settings.env.CLAUDE_CODE_TEAM_MODE = "1";
|
|
2517
2517
|
}
|
|
2518
2518
|
if (!settings.env.CLAUDE_CODE_AGENT_TYPE) {
|
|
2519
2519
|
settings.env.CLAUDE_CODE_AGENT_TYPE = "team-lead";
|
|
@@ -3484,23 +3484,23 @@ var writeWrapper = (wrapperPath, configDir, binaryPath, runtime = "node") => {
|
|
|
3484
3484
|
'if [[ "${CC_MIRROR_UNSET_AUTH_TOKEN:-0}" != "0" ]]; then',
|
|
3485
3485
|
" unset ANTHROPIC_AUTH_TOKEN",
|
|
3486
3486
|
"fi",
|
|
3487
|
-
"# Dynamic team name:
|
|
3488
|
-
|
|
3487
|
+
"# Dynamic team name: purely directory-based, with optional TEAM modifier",
|
|
3488
|
+
"# Check for CLAUDE_CODE_TEAM_MODE (not TEAM_NAME) to avoid Claude Code overwriting",
|
|
3489
|
+
'if [[ -n "${CLAUDE_CODE_TEAM_MODE:-}" ]]; then',
|
|
3489
3490
|
" __cc_git_root=$(git rev-parse --show-toplevel 2>/dev/null || pwd)",
|
|
3490
3491
|
' __cc_folder_name=$(basename "$__cc_git_root")',
|
|
3491
|
-
' if [[ -n "$TEAM" ]]; then',
|
|
3492
|
-
" #
|
|
3493
|
-
' export CLAUDE_CODE_TEAM_NAME="${
|
|
3492
|
+
' if [[ -n "${TEAM:-}" ]]; then',
|
|
3493
|
+
" # Folder name + TEAM modifier",
|
|
3494
|
+
' export CLAUDE_CODE_TEAM_NAME="${__cc_folder_name}-${TEAM}"',
|
|
3494
3495
|
" else",
|
|
3495
|
-
" #
|
|
3496
|
-
' export CLAUDE_CODE_TEAM_NAME="${
|
|
3496
|
+
" # Just folder name (pure directory-based)",
|
|
3497
|
+
' export CLAUDE_CODE_TEAM_NAME="${__cc_folder_name}"',
|
|
3497
3498
|
" fi",
|
|
3498
|
-
'elif [[ -n "$TEAM" ]]; then',
|
|
3499
|
-
" # TEAM
|
|
3499
|
+
'elif [[ -n "${TEAM:-}" ]]; then',
|
|
3500
|
+
" # TEAM env var set without team mode in settings - use folder + TEAM",
|
|
3500
3501
|
" __cc_git_root=$(git rev-parse --show-toplevel 2>/dev/null || pwd)",
|
|
3501
3502
|
' __cc_folder_name=$(basename "$__cc_git_root")',
|
|
3502
|
-
'
|
|
3503
|
-
' export CLAUDE_CODE_TEAM_NAME="${__cc_variant_name}-${__cc_folder_name}-${TEAM}"',
|
|
3503
|
+
' export CLAUDE_CODE_TEAM_NAME="${__cc_folder_name}-${TEAM}"',
|
|
3504
3504
|
"fi",
|
|
3505
3505
|
...splash,
|
|
3506
3506
|
execLine,
|
|
@@ -3982,7 +3982,7 @@ var TeamModeUpdateStep = class {
|
|
|
3982
3982
|
}
|
|
3983
3983
|
}
|
|
3984
3984
|
patchCli(ctx) {
|
|
3985
|
-
const { state, meta,
|
|
3985
|
+
const { state, meta, paths } = ctx;
|
|
3986
3986
|
const cliPath = path17.join(paths.npmDir, "node_modules", "@anthropic-ai", "claude-code", "cli.js");
|
|
3987
3987
|
const backupPath = `${cliPath}.backup`;
|
|
3988
3988
|
if (!fs12.existsSync(cliPath)) {
|
|
@@ -4014,8 +4014,8 @@ var TeamModeUpdateStep = class {
|
|
|
4014
4014
|
try {
|
|
4015
4015
|
const settings = JSON.parse(fs12.readFileSync(settingsPath, "utf8"));
|
|
4016
4016
|
settings.env = settings.env || {};
|
|
4017
|
-
if (!settings.env.
|
|
4018
|
-
settings.env.
|
|
4017
|
+
if (!settings.env.CLAUDE_CODE_TEAM_MODE) {
|
|
4018
|
+
settings.env.CLAUDE_CODE_TEAM_MODE = "1";
|
|
4019
4019
|
}
|
|
4020
4020
|
if (!settings.env.CLAUDE_CODE_AGENT_TYPE) {
|
|
4021
4021
|
settings.env.CLAUDE_CODE_AGENT_TYPE = "team-lead";
|
package/package.json
CHANGED