claude-flow-novice 2.14.36 → 2.15.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/.claude/commands/cfn-loop-cli.md +491 -456
- package/.claude/commands/switch-api.md +33 -12
- package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh +107 -0
- package/.claude/skills/cfn-agent-spawning/parse-agent-provider.sh +59 -0
- package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +24 -6
- package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +18 -9
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +220 -220
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +5 -0
- package/claude-assets/agents/custom/claude-code-expert.md +151 -2
- package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +43 -3
- package/claude-assets/commands/cfn-loop-cli.md +491 -456
- package/claude-assets/commands/switch-api.md +33 -12
- package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh +107 -0
- package/claude-assets/skills/cfn-agent-spawning/parse-agent-provider.sh +59 -0
- package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +24 -6
- package/claude-assets/skills/cfn-error-logging/SKILL.md +339 -0
- package/claude-assets/skills/cfn-error-logging/cleanup-error-logs.sh +334 -0
- package/claude-assets/skills/cfn-error-logging/integrate-cli.sh +232 -0
- package/claude-assets/skills/cfn-error-logging/integrate-docker.sh +294 -0
- package/claude-assets/skills/cfn-error-logging/invoke-error-logging.sh +839 -0
- package/claude-assets/skills/cfn-error-logging/test-error-logging.sh +475 -0
- package/claude-assets/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +18 -9
- package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +5 -3
- package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +220 -220
- package/claude-assets/skills/cfn-task-mode-sanitize/task-mode-env-sanitizer.sh +21 -9
- package/claude-assets/skills/cfn-validation-runner-instrumentation/wrapped-executor.sh +3 -1
- package/dist/hello.js +27 -3
- package/dist/hello.js.map +1 -1
- package/dist/server.js +194 -0
- package/dist/server.js.map +1 -0
- package/dist/server.test.js +207 -0
- package/dist/server.test.js.map +1 -0
- package/package.json +2 -1
- package/scripts/switch-api.sh +140 -12
package/scripts/switch-api.sh
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
##############################################################################
|
|
3
3
|
# Claude API Switcher - Main Chat & Task Tool Provider Routing
|
|
4
4
|
#
|
|
5
|
-
# Usage: scripts/switch-api.sh [zai|max|status]
|
|
5
|
+
# Usage: scripts/switch-api.sh [zai|kimi|openrouter|max|status]
|
|
6
6
|
#
|
|
7
7
|
# What it does:
|
|
8
|
-
# - zai:
|
|
9
|
-
# -
|
|
10
|
-
# -
|
|
8
|
+
# - zai: Main Chat + Task tool use Z.ai
|
|
9
|
+
# - kimi: Main Chat + Task tool use Moonshot Kimi
|
|
10
|
+
# - openrouter: Main Chat + Task tool use OpenRouter
|
|
11
|
+
# - max: Main Chat + Task tool use Anthropic (requires re-login)
|
|
12
|
+
# - CLI: Respects custom routing when enabled (see agent profiles)
|
|
11
13
|
#
|
|
12
14
|
# Settings file: .claude/settings.json (project local)
|
|
13
15
|
##############################################################################
|
|
@@ -43,14 +45,25 @@ show_status() {
|
|
|
43
45
|
return
|
|
44
46
|
fi
|
|
45
47
|
|
|
46
|
-
# Check for
|
|
48
|
+
# Check for custom provider env vars in settings
|
|
47
49
|
if grep -q "ANTHROPIC_BASE_URL" "$SETTINGS_FILE" 2>/dev/null; then
|
|
48
50
|
BASE_URL=$(jq -r '.env.ANTHROPIC_BASE_URL // empty' "$SETTINGS_FILE" 2>/dev/null || echo "")
|
|
51
|
+
MODEL=$(jq -r '.env.ANTHROPIC_MODEL // empty' "$SETTINGS_FILE" 2>/dev/null || echo "")
|
|
49
52
|
|
|
50
53
|
if [[ "$BASE_URL" == *"z.ai"* ]]; then
|
|
51
54
|
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} Z.ai"
|
|
52
55
|
echo " Base URL: $BASE_URL"
|
|
53
56
|
echo " Cost: \$0.50/1M tokens"
|
|
57
|
+
elif [[ "$BASE_URL" == *"moonshot.ai"* ]]; then
|
|
58
|
+
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} Moonshot Kimi"
|
|
59
|
+
echo " Base URL: $BASE_URL"
|
|
60
|
+
echo " Model: $MODEL"
|
|
61
|
+
echo " Cost: ~\$2/1M tokens"
|
|
62
|
+
elif [[ "$BASE_URL" == *"openrouter.ai"* ]]; then
|
|
63
|
+
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} OpenRouter"
|
|
64
|
+
echo " Base URL: $BASE_URL"
|
|
65
|
+
echo " Model: $MODEL"
|
|
66
|
+
echo " Cost: Varies by model"
|
|
54
67
|
else
|
|
55
68
|
echo -e "${GREEN}✓ Main Chat/Task Tool:${NC} Custom"
|
|
56
69
|
echo " Base URL: $BASE_URL"
|
|
@@ -129,6 +142,107 @@ switch_to_zai() {
|
|
|
129
142
|
echo ""
|
|
130
143
|
}
|
|
131
144
|
|
|
145
|
+
##############################################################################
|
|
146
|
+
# Switch to Kimi for Main Chat and Task Tool
|
|
147
|
+
##############################################################################
|
|
148
|
+
switch_to_kimi() {
|
|
149
|
+
echo -e "${BLUE}Switching Main Chat/Task Tool to Moonshot Kimi...${NC}"
|
|
150
|
+
echo ""
|
|
151
|
+
|
|
152
|
+
# Backup current settings
|
|
153
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
154
|
+
BACKUP_NAME="settings-$(date +%Y%m%d-%H%M%S)-before-kimi.json"
|
|
155
|
+
cp "$SETTINGS_FILE" "$BACKUP_DIR/$BACKUP_NAME"
|
|
156
|
+
echo -e "${GREEN}✓${NC} Backed up: $BACKUP_DIR/$BACKUP_NAME"
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
# Read current settings or create empty object
|
|
160
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
161
|
+
CURRENT_SETTINGS=$(cat "$SETTINGS_FILE")
|
|
162
|
+
else
|
|
163
|
+
CURRENT_SETTINGS='{}'
|
|
164
|
+
fi
|
|
165
|
+
|
|
166
|
+
# Add Kimi env vars to settings (read from .env)
|
|
167
|
+
KIMI_KEY=$(grep -E "^KIMI_API_KEY=" .env | head -1 | cut -d'=' -f2 | sed 's/#.*//' | xargs)
|
|
168
|
+
if [ -z "$KIMI_KEY" ]; then
|
|
169
|
+
echo -e "${RED}Error: KIMI_API_KEY not found in .env${NC}"
|
|
170
|
+
exit 1
|
|
171
|
+
fi
|
|
172
|
+
NEW_SETTINGS=$(echo "$CURRENT_SETTINGS" | jq --arg key "$KIMI_KEY" '. + {"env": ((.env // {}) + {"ANTHROPIC_BASE_URL": "https://api.moonshot.ai/anthropic", "ANTHROPIC_AUTH_TOKEN": $key, "ANTHROPIC_MODEL": "kimi-k2-turbo-preview", "ANTHROPIC_SMALL_FAST_MODEL": "kimi-k2-turbo-preview"})}')
|
|
173
|
+
|
|
174
|
+
echo "$NEW_SETTINGS" > "$SETTINGS_FILE"
|
|
175
|
+
|
|
176
|
+
echo ""
|
|
177
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
178
|
+
echo -e "${GREEN}✓ Switched to Moonshot Kimi${NC}"
|
|
179
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
180
|
+
echo ""
|
|
181
|
+
echo -e "${GREEN}Main Chat + Task Tool:${NC} Kimi"
|
|
182
|
+
echo " • All Task() spawned agents use Kimi"
|
|
183
|
+
echo " • Cost: ~\$2/1M tokens"
|
|
184
|
+
echo " • No login required"
|
|
185
|
+
echo ""
|
|
186
|
+
echo -e "${YELLOW}Next Steps:${NC}"
|
|
187
|
+
echo " 1. Restart Claude desktop (if running)"
|
|
188
|
+
echo " 2. Test: Main Chat should use Kimi"
|
|
189
|
+
echo ""
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
##############################################################################
|
|
193
|
+
# Switch to OpenRouter for Main Chat and Task Tool
|
|
194
|
+
##############################################################################
|
|
195
|
+
switch_to_openrouter() {
|
|
196
|
+
echo -e "${BLUE}Switching Main Chat/Task Tool to OpenRouter...${NC}"
|
|
197
|
+
echo ""
|
|
198
|
+
|
|
199
|
+
# Backup current settings
|
|
200
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
201
|
+
BACKUP_NAME="settings-$(date +%Y%m%d-%H%M%S)-before-openrouter.json"
|
|
202
|
+
cp "$SETTINGS_FILE" "$BACKUP_DIR/$BACKUP_NAME"
|
|
203
|
+
echo -e "${GREEN}✓${NC} Backed up: $BACKUP_DIR/$BACKUP_NAME"
|
|
204
|
+
fi
|
|
205
|
+
|
|
206
|
+
# Read current settings or create empty object
|
|
207
|
+
if [ -f "$SETTINGS_FILE" ]; then
|
|
208
|
+
CURRENT_SETTINGS=$(cat "$SETTINGS_FILE")
|
|
209
|
+
else
|
|
210
|
+
CURRENT_SETTINGS='{}'
|
|
211
|
+
fi
|
|
212
|
+
|
|
213
|
+
# Add OpenRouter env vars to settings (read from .env)
|
|
214
|
+
OPENROUTER_KEY=$(grep -E "^OPENROUTER_API_KEY=" .env | head -1 | cut -d'=' -f2 | sed 's/#.*//' | xargs)
|
|
215
|
+
if [ -z "$OPENROUTER_KEY" ]; then
|
|
216
|
+
echo -e "${RED}Error: OPENROUTER_API_KEY not found in .env${NC}"
|
|
217
|
+
exit 1
|
|
218
|
+
fi
|
|
219
|
+
# Default to Claude Sonnet 4.5 on OpenRouter
|
|
220
|
+
NEW_SETTINGS=$(echo "$CURRENT_SETTINGS" | jq --arg key "$OPENROUTER_KEY" '. + {"env": ((.env // {}) + {"ANTHROPIC_BASE_URL": "https://openrouter.ai/api/v1", "ANTHROPIC_AUTH_TOKEN": $key, "ANTHROPIC_MODEL": "anthropic/claude-sonnet-4.5", "ANTHROPIC_SMALL_FAST_MODEL": "anthropic/claude-sonnet-4.5"})}')
|
|
221
|
+
|
|
222
|
+
echo "$NEW_SETTINGS" > "$SETTINGS_FILE"
|
|
223
|
+
|
|
224
|
+
echo ""
|
|
225
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
226
|
+
echo -e "${GREEN}✓ Switched to OpenRouter${NC}"
|
|
227
|
+
echo -e "${GREEN}═══════════════════════════════════════${NC}"
|
|
228
|
+
echo ""
|
|
229
|
+
echo -e "${GREEN}Main Chat + Task Tool:${NC} OpenRouter"
|
|
230
|
+
echo " • All Task() spawned agents use OpenRouter"
|
|
231
|
+
echo " • Default Model: anthropic/claude-sonnet-4.5"
|
|
232
|
+
echo " • Cost: Varies by model"
|
|
233
|
+
echo " • No login required"
|
|
234
|
+
echo ""
|
|
235
|
+
echo -e "${BLUE}Available Models:${NC}"
|
|
236
|
+
echo " • 400+ models from 60+ providers"
|
|
237
|
+
echo " • Change model in .claude/settings.json"
|
|
238
|
+
echo " • Visit: https://openrouter.ai/models"
|
|
239
|
+
echo ""
|
|
240
|
+
echo -e "${YELLOW}Next Steps:${NC}"
|
|
241
|
+
echo " 1. Restart Claude desktop (if running)"
|
|
242
|
+
echo " 2. Test: Main Chat should use OpenRouter"
|
|
243
|
+
echo ""
|
|
244
|
+
}
|
|
245
|
+
|
|
132
246
|
##############################################################################
|
|
133
247
|
# Switch to Anthropic Max for Main Chat and Task Tool
|
|
134
248
|
##############################################################################
|
|
@@ -197,6 +311,16 @@ case "${1:-status}" in
|
|
|
197
311
|
show_status
|
|
198
312
|
;;
|
|
199
313
|
|
|
314
|
+
kimi|moonshot)
|
|
315
|
+
switch_to_kimi
|
|
316
|
+
show_status
|
|
317
|
+
;;
|
|
318
|
+
|
|
319
|
+
openrouter|or)
|
|
320
|
+
switch_to_openrouter
|
|
321
|
+
show_status
|
|
322
|
+
;;
|
|
323
|
+
|
|
200
324
|
max|claude|anthropic)
|
|
201
325
|
switch_to_max
|
|
202
326
|
show_status
|
|
@@ -208,17 +332,21 @@ case "${1:-status}" in
|
|
|
208
332
|
echo "Usage: $0 [command]"
|
|
209
333
|
echo ""
|
|
210
334
|
echo "Commands:"
|
|
211
|
-
echo " status
|
|
212
|
-
echo " zai
|
|
213
|
-
echo "
|
|
335
|
+
echo " status Show current API configuration (default)"
|
|
336
|
+
echo " zai Switch Main Chat/Task tool to Z.ai"
|
|
337
|
+
echo " kimi Switch Main Chat/Task tool to Moonshot Kimi"
|
|
338
|
+
echo " openrouter Switch Main Chat/Task tool to OpenRouter"
|
|
339
|
+
echo " max Switch Main Chat/Task tool to Anthropic"
|
|
214
340
|
echo ""
|
|
215
341
|
echo "Examples:"
|
|
216
|
-
echo " $0
|
|
217
|
-
echo " $0 zai
|
|
218
|
-
echo " $0
|
|
342
|
+
echo " $0 # Show current status"
|
|
343
|
+
echo " $0 zai # Use Z.ai for Main Chat (\$0.50/1M tokens)"
|
|
344
|
+
echo " $0 kimi # Use Moonshot Kimi (~\$2/1M tokens)"
|
|
345
|
+
echo " $0 openrouter # Use OpenRouter (varies by model)"
|
|
346
|
+
echo " $0 max # Use Anthropic (\$15/1M tokens, requires re-login)"
|
|
219
347
|
echo ""
|
|
220
348
|
echo "Notes:"
|
|
221
|
-
echo " • CLI agents
|
|
349
|
+
echo " • CLI agents respect custom routing when enabled"
|
|
222
350
|
echo " • Main Chat routing affects Task() spawned agents"
|
|
223
351
|
echo " • Settings file: .claude/settings.json"
|
|
224
352
|
echo " • Backups saved to: .claude/backups/"
|