@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.
- package/assets/sidekick/defaults/README.md +2 -17
- package/assets/sidekick/defaults/core.defaults.yaml +1 -1
- package/assets/sidekick/defaults/features/session-summary.defaults.yaml +13 -0
- package/assets/sidekick/defaults/llm.defaults.yaml +5 -1
- package/assets/sidekick/personas/avasarala.yaml +1 -0
- package/assets/sidekick/personas/{emperor.yaml → emperor-palpatine.yaml} +1 -1
- package/assets/sidekick/prompts/resume-message.prompt.txt +6 -0
- package/assets/sidekick/prompts/snarky-message.prompt.txt +6 -0
- package/assets/sidekick/reminders/user-profile.yaml +11 -0
- package/dist/bin.js +990 -162
- package/dist/daemon.js +602 -131
- package/package.json +1 -1
|
@@ -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.
|
|
27
|
-
6. Project
|
|
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/
|
|
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
|
-
|
|
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}}.
|