claude-sdk-tutor 0.1.7__tar.gz → 0.1.8__tar.gz
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.
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/PKG-INFO +1 -1
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/app.py +111 -1
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/pyproject.toml +1 -1
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/uv.lock +1 -1
- claude_sdk_tutor-0.1.7/phosphor.tcss +0 -122
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/.gitignore +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/.python-version +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/CLAUDE.md +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/LICENSE +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/Makefile +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/README.md +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/__init__.py +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/src/__init__.py +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/src/claude/__init__.py +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/src/claude/claude_agent.py +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/src/claude/history.py +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/src/claude/mcp_commands.py +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/src/claude/mcp_config.py +0 -0
- {claude_sdk_tutor-0.1.7 → claude_sdk_tutor-0.1.8}/src/claude/widgets.py +0 -0
|
@@ -35,7 +35,117 @@ HEADER_TEXT = "Claude SDK Tutor"
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
class MyApp(App):
|
|
38
|
-
|
|
38
|
+
CSS = """
|
|
39
|
+
/* Color Variables */
|
|
40
|
+
$bg-primary: #1a1a1a;
|
|
41
|
+
$bg-secondary: #242424;
|
|
42
|
+
$bg-elevated: #2a2a2a;
|
|
43
|
+
$text-primary: #e0e0e0;
|
|
44
|
+
$text-muted: #888888;
|
|
45
|
+
$accent: #5c9fd4;
|
|
46
|
+
$accent-dim: #4a7fa8;
|
|
47
|
+
$border: #333333;
|
|
48
|
+
$border-focus: #555555;
|
|
49
|
+
|
|
50
|
+
Screen {
|
|
51
|
+
background: $bg-primary;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#main {
|
|
55
|
+
height: 100%;
|
|
56
|
+
background: $bg-primary;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
#header {
|
|
60
|
+
content-align: center middle;
|
|
61
|
+
width: 100%;
|
|
62
|
+
padding: 1 0;
|
|
63
|
+
height: auto;
|
|
64
|
+
color: $text-primary;
|
|
65
|
+
text-style: bold;
|
|
66
|
+
background: $bg-primary;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
#status-bar {
|
|
70
|
+
content-align: center middle;
|
|
71
|
+
width: 100%;
|
|
72
|
+
height: auto;
|
|
73
|
+
padding-bottom: 1;
|
|
74
|
+
color: $text-muted;
|
|
75
|
+
background: $bg-primary;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
RichLog {
|
|
79
|
+
background: $bg-secondary;
|
|
80
|
+
margin-left: 2;
|
|
81
|
+
margin-right: 2;
|
|
82
|
+
height: 1fr;
|
|
83
|
+
border: round $border;
|
|
84
|
+
scrollbar-color: $border;
|
|
85
|
+
scrollbar-color-hover: $border-focus;
|
|
86
|
+
scrollbar-color-active: $accent;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#spinner {
|
|
90
|
+
height: auto;
|
|
91
|
+
margin-left: 2;
|
|
92
|
+
margin-right: 2;
|
|
93
|
+
color: $text-muted;
|
|
94
|
+
background: $bg-primary;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
HistoryInput {
|
|
98
|
+
height: auto;
|
|
99
|
+
margin-top: 1;
|
|
100
|
+
margin-left: 2;
|
|
101
|
+
margin-right: 2;
|
|
102
|
+
margin-bottom: 1;
|
|
103
|
+
background: $bg-elevated;
|
|
104
|
+
color: $text-primary;
|
|
105
|
+
border: round $border;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
HistoryInput:focus {
|
|
109
|
+
border: round $accent-dim;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
HistoryInput > .input--cursor {
|
|
113
|
+
color: $bg-primary;
|
|
114
|
+
background: $accent;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
HistoryInput > .input--placeholder {
|
|
118
|
+
color: $text-muted;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
Footer {
|
|
122
|
+
background: $bg-secondary;
|
|
123
|
+
color: $text-muted;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
Footer > .footer--key {
|
|
127
|
+
background: $bg-elevated;
|
|
128
|
+
color: $text-primary;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
Footer > .footer--description {
|
|
132
|
+
color: $text-muted;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
FooterKey {
|
|
136
|
+
background: $bg-elevated;
|
|
137
|
+
color: $text-primary;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
FooterKey:hover {
|
|
141
|
+
background: $accent-dim;
|
|
142
|
+
color: $bg-primary;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
LoadingIndicator {
|
|
146
|
+
display: none;
|
|
147
|
+
}
|
|
148
|
+
"""
|
|
39
149
|
|
|
40
150
|
def __init__(self):
|
|
41
151
|
super().__init__()
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/* MINIMAL Theme - Clean, Modern, Professional */
|
|
2
|
-
|
|
3
|
-
/* Color Variables */
|
|
4
|
-
$bg-primary: #1a1a1a;
|
|
5
|
-
$bg-secondary: #242424;
|
|
6
|
-
$bg-elevated: #2a2a2a;
|
|
7
|
-
$text-primary: #e0e0e0;
|
|
8
|
-
$text-muted: #888888;
|
|
9
|
-
$accent: #5c9fd4;
|
|
10
|
-
$accent-dim: #4a7fa8;
|
|
11
|
-
$border: #333333;
|
|
12
|
-
$border-focus: #555555;
|
|
13
|
-
$success: #6fbf73;
|
|
14
|
-
$warning: #d4a05c;
|
|
15
|
-
|
|
16
|
-
/* Global App Styling */
|
|
17
|
-
Screen {
|
|
18
|
-
background: $bg-primary;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* Main Container */
|
|
22
|
-
#main {
|
|
23
|
-
height: 100%;
|
|
24
|
-
background: $bg-primary;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/* Header */
|
|
28
|
-
#header {
|
|
29
|
-
content-align: center middle;
|
|
30
|
-
width: 100%;
|
|
31
|
-
padding: 1 0;
|
|
32
|
-
height: auto;
|
|
33
|
-
color: $text-primary;
|
|
34
|
-
text-style: bold;
|
|
35
|
-
background: $bg-primary;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/* Status Bar */
|
|
39
|
-
#status-bar {
|
|
40
|
-
content-align: center middle;
|
|
41
|
-
width: 100%;
|
|
42
|
-
height: auto;
|
|
43
|
-
padding-bottom: 1;
|
|
44
|
-
color: $text-muted;
|
|
45
|
-
background: $bg-primary;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/* Message Log */
|
|
49
|
-
RichLog {
|
|
50
|
-
background: $bg-secondary;
|
|
51
|
-
margin-left: 2;
|
|
52
|
-
margin-right: 2;
|
|
53
|
-
height: 1fr;
|
|
54
|
-
border: round $border;
|
|
55
|
-
scrollbar-color: $border;
|
|
56
|
-
scrollbar-color-hover: $border-focus;
|
|
57
|
-
scrollbar-color-active: $accent;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* Spinner */
|
|
61
|
-
#spinner {
|
|
62
|
-
height: auto;
|
|
63
|
-
margin-left: 2;
|
|
64
|
-
margin-right: 2;
|
|
65
|
-
color: $text-muted;
|
|
66
|
-
background: $bg-primary;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/* Input Field */
|
|
70
|
-
HistoryInput {
|
|
71
|
-
height: auto;
|
|
72
|
-
margin-top: 1;
|
|
73
|
-
margin-left: 2;
|
|
74
|
-
margin-right: 2;
|
|
75
|
-
margin-bottom: 1;
|
|
76
|
-
background: $bg-elevated;
|
|
77
|
-
color: $text-primary;
|
|
78
|
-
border: round $border;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
HistoryInput:focus {
|
|
82
|
-
border: round $accent-dim;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
HistoryInput > .input--cursor {
|
|
86
|
-
color: $bg-primary;
|
|
87
|
-
background: $accent;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
HistoryInput > .input--placeholder {
|
|
91
|
-
color: $text-muted;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/* Footer */
|
|
95
|
-
Footer {
|
|
96
|
-
background: $bg-secondary;
|
|
97
|
-
color: $text-muted;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
Footer > .footer--key {
|
|
101
|
-
background: $bg-elevated;
|
|
102
|
-
color: $text-primary;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
Footer > .footer--description {
|
|
106
|
-
color: $text-muted;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
FooterKey {
|
|
110
|
-
background: $bg-elevated;
|
|
111
|
-
color: $text-primary;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
FooterKey:hover {
|
|
115
|
-
background: $accent-dim;
|
|
116
|
-
color: $bg-primary;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/* Hide the default loading indicator */
|
|
120
|
-
LoadingIndicator {
|
|
121
|
-
display: none;
|
|
122
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|