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.
Files changed (34) hide show
  1. package/.claude/commands/cfn-loop-cli.md +491 -456
  2. package/.claude/commands/switch-api.md +33 -12
  3. package/.claude/skills/cfn-agent-spawning/get-agent-provider-env.sh +107 -0
  4. package/.claude/skills/cfn-agent-spawning/parse-agent-provider.sh +59 -0
  5. package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +24 -6
  6. package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +18 -9
  7. package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +220 -220
  8. package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +5 -0
  9. package/claude-assets/agents/custom/claude-code-expert.md +151 -2
  10. package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +43 -3
  11. package/claude-assets/commands/cfn-loop-cli.md +491 -456
  12. package/claude-assets/commands/switch-api.md +33 -12
  13. package/claude-assets/skills/cfn-agent-spawning/get-agent-provider-env.sh +107 -0
  14. package/claude-assets/skills/cfn-agent-spawning/parse-agent-provider.sh +59 -0
  15. package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +24 -6
  16. package/claude-assets/skills/cfn-error-logging/SKILL.md +339 -0
  17. package/claude-assets/skills/cfn-error-logging/cleanup-error-logs.sh +334 -0
  18. package/claude-assets/skills/cfn-error-logging/integrate-cli.sh +232 -0
  19. package/claude-assets/skills/cfn-error-logging/integrate-docker.sh +294 -0
  20. package/claude-assets/skills/cfn-error-logging/invoke-error-logging.sh +839 -0
  21. package/claude-assets/skills/cfn-error-logging/test-error-logging.sh +475 -0
  22. package/claude-assets/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +18 -9
  23. package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +5 -3
  24. package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +220 -220
  25. package/claude-assets/skills/cfn-task-mode-sanitize/task-mode-env-sanitizer.sh +21 -9
  26. package/claude-assets/skills/cfn-validation-runner-instrumentation/wrapped-executor.sh +3 -1
  27. package/dist/hello.js +27 -3
  28. package/dist/hello.js.map +1 -1
  29. package/dist/server.js +194 -0
  30. package/dist/server.js.map +1 -0
  31. package/dist/server.test.js +207 -0
  32. package/dist/server.test.js.map +1 -0
  33. package/package.json +2 -1
  34. package/scripts/switch-api.sh +140 -12
@@ -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: Main Chat + Task tool use Z.ai (add env vars to settings.json)
9
- # - max: Main Chat + Task tool use Anthropic (remove env vars, requires re-login)
10
- # - CLI: Always uses Z.ai (controlled by .env CLAUDE_API_PROVIDER=zai)
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 Z.ai env vars in settings
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 Show current API configuration (default)"
212
- echo " zai Switch Main Chat/Task tool to Z.ai"
213
- echo " max Switch Main Chat/Task tool to Anthropic"
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 # Show current status"
217
- echo " $0 zai # Use Z.ai for Main Chat"
218
- echo " $0 max # Use Anthropic for Main Chat (requires re-login)"
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 always use Z.ai (from .env CLAUDE_API_PROVIDER=zai)"
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/"