@scotthamilton77/sidekick 0.1.0 → 0.1.1

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.
@@ -23,10 +23,8 @@ Priority (lowest to highest):
23
23
  2. Internal Zod defaults (hardcoded fallbacks)
24
24
  3. Environment variables (`SIDEKICK_*`, `.env`)
25
25
  4. User domain YAML (`~/.sidekick/{domain}.yaml`)
26
- 5. User unified config (`~/.sidekick/sidekick.config`)
27
- 6. Project domain YAML (`.sidekick/{domain}.yaml`)
28
- 7. Project unified config (`.sidekick/sidekick.config`)
29
- 8. Project-local overrides (`.sidekick/{domain}.yaml.local`)
26
+ 5. Project domain YAML (`.sidekick/{domain}.yaml`)
27
+ 6. Project-local overrides (`.sidekick/{domain}.local.yaml`)
30
28
 
31
29
  ## Overriding Defaults
32
30
 
@@ -43,19 +41,6 @@ cp assets/sidekick/defaults/llm.defaults.yaml .sidekick/llm.yaml
43
41
 
44
42
  Edit the copied file—each has inline comments explaining options.
45
43
 
46
- ### Quick Overrides (sidekick.config)
47
-
48
- For surgical one-line changes without copying full files:
49
-
50
- ```bash
51
- # ~/.sidekick/sidekick.config or .sidekick/sidekick.config
52
- llm.provider=openai
53
- llm.temperature=0.5
54
- core.logging.level=debug
55
- features.reminders.enabled=false
56
- features.statusline.thresholds.tokens.warning=50000
57
- ```
58
-
59
44
  ### Environment Variables
60
45
 
61
46
  ```bash
@@ -1,6 +1,6 @@
1
1
  # Core Configuration Defaults
2
2
  # This file defines default values for logging, paths, daemon, and IPC settings.
3
- # Override in ~/.sidekick/config.yaml or .sidekick/config.yaml
3
+ # Override in ~/.sidekick/core.yaml or .sidekick/core.yaml
4
4
 
5
5
  # Logging configuration
6
6
  logging:
@@ -91,3 +91,16 @@ settings:
91
91
  # When true, a persistent reminder is staged on SessionStart and UserPromptSubmit
92
92
  # describing the persona's voice/personality for Claude to adopt
93
93
  injectPersonaIntoClaude: true
94
+ # Default LLM profile for all persona-driven outputs (snarky, resume)
95
+ # Empty string = use feature's own profile (e.g. snarkyComment.profile)
96
+ # Must match a profile ID in llm.profiles
97
+ defaultLlmProfile: ""
98
+ # Per-persona LLM profile overrides: personaId → profileId
99
+ # Overrides both defaultLlmProfile and persona YAML llmProfile
100
+ # Example: { avasarala: "creative-long", skippy: "fast-lite" }
101
+ llmProfiles: {}
102
+ # Per-persona selection weights: personaId → weight number
103
+ # Default weight = 1 for any persona not listed. Weight 0 = excluded from selection.
104
+ # Applied AFTER allowList/blockList filtering.
105
+ # Example: { darth-vader: 100, emperor: 50 }
106
+ weights: {}
@@ -32,6 +32,10 @@
32
32
  # Default profile used when no specific profile is requested
33
33
  defaultProfile: fast-lite
34
34
 
35
+ # Default fallback profile used when a primary profile fails and no
36
+ # profile-specific fallbackProfileId is set.
37
+ defaultFallbackProfileId: cheap-fallback
38
+
35
39
  # OpenRouter Provider Routing
36
40
  # Control which backend providers OpenRouter uses via allowlist/blocklist.
37
41
  # Maps to OpenRouter's provider.only (allowlist) and provider.ignore (blocklist).
@@ -87,7 +91,7 @@ profiles:
87
91
  timeoutMaxRetries: 2
88
92
 
89
93
  # Fallback profiles - only used when primary fails
90
- fallbacks:
94
+ fallbackProfiles:
91
95
  cheap-fallback:
92
96
  provider: openrouter
93
97
  model: google/gemini-2.5-flash-lite
@@ -1,5 +1,6 @@
1
1
  id: avasarala
2
2
  display_name: Avasarala
3
+ llmProfile: creative
3
4
  theme: "Chrisjen Avasarala, UN Undersecretary turned Secretary-General from The Expanse. The solar system's foul-mouthed political razor: sari-clad, cane-wielding, bullshit-intolerant genius who swears like she breathes and cuts through deception like a railgun. She'll call your code 'horseshit' to your face, then fix the architecture because humanity — or at least this goddamn project — depends on it."
4
5
  personality_traits:
5
6
  - brilliant-strategist
@@ -1,4 +1,4 @@
1
- id: emperor
1
+ id: emperor-palpatine
2
2
  display_name: Emperor Palpatine
3
3
  theme: "Emperor Palpatine / Darth Sidious from Star Wars - the ancient, scheming Sith Lord who rules the Galactic Empire with gleeful malevolence, tempting all who approach toward failure and the dark side, taking sinister pleasure in watching others struggle while his grand designs proceed exactly as foreseen."
4
4
  personality_traits:
@@ -7,6 +7,12 @@ The developer just returned to a session. Your job is to make a brief, sarcastic
7
7
  Your personality: {{persona_personality}}
8
8
  Your tone: {{persona_tone}}
9
9
 
10
+ {{#if user_name}}
11
+ You are speaking to {{user_name}}{{#if user_role}}, a {{user_role}}{{/if}}.
12
+ {{#if user_interests}}Their interests include: {{user_interests}}.{{/if}}
13
+ Use this to personalize your comment when it fits naturally.
14
+ {{/if}}
15
+
10
16
  When it fits naturally, work in famous phrases or mannerisms from your character.
11
17
 
12
18
  Examples of welcome-back comments:
@@ -7,6 +7,12 @@ Your job is to make brief, character-aligned observations that mock what they're
7
7
  Your personality: {{persona_personality}}
8
8
  Your tone: {{persona_tone}}
9
9
 
10
+ {{#if user_name}}
11
+ You are speaking to {{user_name}}{{#if user_role}}, a {{user_role}}{{/if}}.
12
+ {{#if user_interests}}Their interests include: {{user_interests}}.{{/if}}
13
+ Use this to personalize your comment when it fits naturally.
14
+ {{/if}}
15
+
10
16
  When it fits naturally, work in famous phrases or mannerisms from your character.
11
17
 
12
18
  Examples of comments you might make:
@@ -0,0 +1,11 @@
1
+ # user-profile.yaml
2
+ # Persistent reminder injected on SessionStart and UserPromptSubmit
3
+ # when a user profile exists at ~/.sidekick/user.yaml.
4
+ id: user-profile
5
+ blocking: false
6
+ priority: 4
7
+ persistent: true
8
+
9
+ additionalContext: |
10
+ This session is with {{user_name}} ({{user_role}}).
11
+ Interests: {{user_interests}}.