* fix: eliminate 8 as any in MCP handlers, structured output, and stream events
- Group A: Add : () => AnyObjectSchema type annotations to MCP notification
schema constants (useIdeSelection, useIdeLogging, usePrompts, channelNotification)
- Group B: Add isStructuredOutputAttachmentMessage type guard for structured
output attachment payloads (execAgentHook)
- Group C: Add isMessageDeltaStreamEvent type guard for message_delta
stream event usage extraction (forkedAgent)
These as any casts also exist in the upstream CCB source — this fix provides
real type safety without changing any runtime behavior.
* feat: wire mode persona injection — Claude Soul Document distilled into system prompt
- prompts.ts: add getModePersonaSection() → injects current mode's
systemPrompt as 'mode_persona' dynamic section (first in order,
before operational instructions). Previously modes had systemPrompt
fields but they were never sent to the model.
- modes/personas/claude.ts: 3KB distilled Claude persona from
Anthropic's leaked Claude 4.5 Opus Soul Document (70KB → operational
extract): core traits, 7 honesty principles, helpfulness/caution
balance, collaboration stance, identity stability.
- With custom mode YAML (~/.claude/modes/claude.yaml), 7 modes total
including the new Claude persona — fully operational at /mode claude.
Co-Authored-By: James Feng <47167674+GhostDragon124@users.noreply.github.com>
* fix: import path convention + reword persona source comment
- prompts.ts: use 'src/modes/store.js' alias instead of relative '../modes/store.js'
to match the file's existing import convention
- claude.ts: reword JSDoc to say 'based on publicly available reference document'
instead of 'leaked', addressing CodeRabbit review concern
* docs: update contributors
* docs: update contributors
* feat: add mode system with 6 AI personality presets
Add a /mode command that lets users switch between 6 interaction
modes, each with distinct system prompts, UI themes, permission
defaults, and response verbosity:
- Default (⚡) — balanced, everyday development
- Gentle (🌸) — patient explanations for learning
- Dr. Sharp (🔍) — strict 3-phase code review workflow
- Workhorse (🐴) — auto-execute, minimal confirmations
- Token Saver (💰) — minimal replies to save tokens
- Super AI (🧠) — deep analysis, proactive suggestions
Custom modes can be defined via YAML files in ~/.claude/modes/.
New files:
- src/modes/types.ts — CCBMode interface
- src/modes/defaults.ts — 6 built-in mode presets
- src/modes/store.ts — mode state management with useSyncExternalStore
- src/commands/mode/index.ts — command registration
- src/commands/mode/mode.tsx — mode picker UI
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>