@aethrekh/pi-cs 0.1.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.
- package/CHANGELOG.md +40 -0
- package/LICENSE +21 -0
- package/README.md +250 -0
- package/config/defaults.json +25 -0
- package/config/schema.json +134 -0
- package/extensions/folder-detector.d.ts +34 -0
- package/extensions/folder-detector.d.ts.map +1 -0
- package/extensions/folder-detector.js +197 -0
- package/extensions/folder-detector.js.map +1 -0
- package/extensions/index.d.ts +12 -0
- package/extensions/index.d.ts.map +1 -0
- package/extensions/index.js +227 -0
- package/extensions/index.js.map +1 -0
- package/extensions/integrity-guard.d.ts +25 -0
- package/extensions/integrity-guard.d.ts.map +1 -0
- package/extensions/integrity-guard.js +118 -0
- package/extensions/integrity-guard.js.map +1 -0
- package/extensions/progress-tracker.d.ts +33 -0
- package/extensions/progress-tracker.d.ts.map +1 -0
- package/extensions/progress-tracker.js +175 -0
- package/extensions/progress-tracker.js.map +1 -0
- package/extensions/semester-detector.d.ts +53 -0
- package/extensions/semester-detector.d.ts.map +1 -0
- package/extensions/semester-detector.js +197 -0
- package/extensions/semester-detector.js.map +1 -0
- package/index.d.ts +146 -0
- package/index.js +381 -0
- package/index.js.map +1 -0
- package/package.json +33 -0
- package/pi-cs.meta.json +7 -0
- package/pi-package.yaml +76 -0
- package/skills/exam/SKILL.md +186 -0
- package/skills/explain/SKILL.md +124 -0
- package/skills/homework/SKILL.md +89 -0
- package/skills/leetcode/SKILL.md +139 -0
- package/skills/project/SKILL.md +143 -0
- package/skills/research/SKILL.md +164 -0
- package/skills/review/SKILL.md +136 -0
- package/system.md +98 -0
- package/templates/project-init.md +141 -0
- package/templates/research-paper.md +134 -0
- package/templates/semester-init.md +49 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to pi-cs (Pisces) will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
### Planned
|
|
13
|
+
- arXiv integration for `/research` skill
|
|
14
|
+
- Model routing presets (local + cloud fallback)
|
|
15
|
+
- Obsidian vault integration
|
|
16
|
+
- `/debug` skill for interactive debugging sessions
|
|
17
|
+
- VS Code extension companion
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## [0.1.0] — Unreleased (MVP)
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Core `system.md` — Pisces academic persona
|
|
25
|
+
- `/homework` skill — Socratic guided learning with integrity guard
|
|
26
|
+
- `/project` skill — Full project kickoff with scaffolding
|
|
27
|
+
- `/review` skill — TA-level code review with severity tiers
|
|
28
|
+
- `/explain` skill — Feynman-style explanations with Mermaid diagrams
|
|
29
|
+
- `/leetcode` skill — Optimized solutions with complexity analysis
|
|
30
|
+
- `/exam` skill — Quiz, mind map, revision plan, and flashcard modes
|
|
31
|
+
- `/research` skill — Paper summarization and literature review
|
|
32
|
+
- `semester-detector` extension — Auto-loads `SEMESTER.md` context
|
|
33
|
+
- `folder-detector` extension — Detects CS university folder structures
|
|
34
|
+
- `integrity-guard` extension — Monitors for academic integrity risks
|
|
35
|
+
- `progress-tracker` extension — Weekly stats and burnout nudges
|
|
36
|
+
- `SEMESTER.md` template for semester initialization
|
|
37
|
+
- Configuration schema with sensible defaults
|
|
38
|
+
- Full TypeScript source with strict mode
|
|
39
|
+
- Jest test suite for all extensions
|
|
40
|
+
- GitHub Actions CI workflow
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ashish Bagdane
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# 🐠 pi-cs (Pisces)
|
|
2
|
+
### The CS Student Edition for Pi Coding Agent
|
|
3
|
+
|
|
4
|
+
> *Your intelligent, adaptive AI co-pilot that swims deep into every aspect of your Computer Science degree.*
|
|
5
|
+
|
|
6
|
+
**"Your Personal AI Teaching Assistant for Computer Science — From Homework to Thesis"**
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## What is Pisces?
|
|
11
|
+
|
|
12
|
+
Pisces is a [Pi Coding Agent](https://github.com/pi-agent/pi) package that transforms Pi into a deeply integrated **academic co-pilot** — the equivalent of a senior TA living inside your terminal.
|
|
13
|
+
|
|
14
|
+
It covers every dimension of a CS degree:
|
|
15
|
+
|
|
16
|
+
| Need | Command | What it does |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| Stuck on an assignment | `/homework` | Hints, pseudocode, guided walkthrough — no cheating |
|
|
19
|
+
| Starting a new project | `/project` | Requirements → architecture → scaffolded codebase |
|
|
20
|
+
| Code review before submitting | `/review` | Strict TA-level review with severity tiers |
|
|
21
|
+
| Don't understand a concept | `/explain` | Feynman-style: analogy + diagram + code example |
|
|
22
|
+
| Interview/LeetCode prep | `/leetcode` | Optimized solutions with complexity proofs |
|
|
23
|
+
| Exam in 3 days | `/exam` | Quiz mode, mind maps, and revision plans |
|
|
24
|
+
| Research paper / thesis | `/research` | Paper summaries, literature surveys, citations |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Install pi-cs
|
|
32
|
+
pi install npm:pi-cs
|
|
33
|
+
|
|
34
|
+
# Navigate to your university folder
|
|
35
|
+
cd ~/university/fall2025
|
|
36
|
+
|
|
37
|
+
# Initialize your semester context
|
|
38
|
+
/semester-init
|
|
39
|
+
|
|
40
|
+
# Start working
|
|
41
|
+
/homework
|
|
42
|
+
/explain binary search trees
|
|
43
|
+
/leetcode 42
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Semester Context
|
|
49
|
+
|
|
50
|
+
Pisces becomes dramatically more useful when it knows your academic context. Create a `SEMESTER.md` in your university root:
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
semester: Fall 2025
|
|
54
|
+
year: 2025
|
|
55
|
+
week: 7
|
|
56
|
+
year_of_study: 2
|
|
57
|
+
|
|
58
|
+
## Courses
|
|
59
|
+
- CS301: Operating Systems
|
|
60
|
+
- CS315: Database Systems
|
|
61
|
+
- CS320: Software Engineering
|
|
62
|
+
|
|
63
|
+
active_project: shell-implementation
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Pisces auto-detects this file at startup and greets you with relevant context:
|
|
67
|
+
|
|
68
|
+
> *"Hey! I see you're in Week 7 of Fall 2025. You have 3 active courses. What are we working on today?"*
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Skills Reference
|
|
73
|
+
|
|
74
|
+
### `/homework`
|
|
75
|
+
Guided learning mode. Pisces uses the Socratic method — hints, pseudocode, and guided questions. **Never produces complete submittable solutions for graded work.**
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
/homework
|
|
79
|
+
> Here's my problem: implement Dijkstra's algorithm...
|
|
80
|
+
> I've tried a basic BFS but it doesn't handle weights
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### `/project`
|
|
84
|
+
Full project kickoff. Requirements analysis, architecture proposal, tech stack recommendation, and scaffolded boilerplate.
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
/project
|
|
88
|
+
> Build a REST API for a student grade tracker
|
|
89
|
+
> Tech stack: open to suggestions
|
|
90
|
+
> Deadline: 3 weeks
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### `/review`
|
|
94
|
+
TA-level code review. Covers correctness, efficiency, style, robustness, and tests. Every issue is rated (🔴 Critical / 🟠 Major / 🟡 Minor / 🔵 Suggestion).
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
/review --mode=deep
|
|
98
|
+
[paste your code]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### `/explain`
|
|
102
|
+
Feynman-style explanations with real-world analogies, Mermaid diagrams, and connections to your prior knowledge.
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
/explain virtual memory
|
|
106
|
+
/explain the CAP theorem --depth=advanced
|
|
107
|
+
/explain recursion --style=analogy
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### `/leetcode`
|
|
111
|
+
Structured problem solving for interview prep. Full solutions with brute force → optimal progression, complexity proofs, and test cases.
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
/leetcode 42
|
|
115
|
+
/leetcode trapping rain water --lang=python
|
|
116
|
+
/leetcode --mode=interview # simulates a real interview
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### `/exam`
|
|
120
|
+
Exam preparation toolkit. Interactive quizzes, concept mind maps, day-by-day revision plans, and Anki-compatible flashcards.
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
/exam CS301 --mode=quiz
|
|
124
|
+
/exam operating systems --mode=mindmap
|
|
125
|
+
/exam --mode=plan # builds schedule based on your exam date
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### `/research`
|
|
129
|
+
Academic research assistant. Paper summaries, literature surveys, citation generation, and literature review writing.
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
/research "Attention is All You Need"
|
|
133
|
+
/research attention mechanisms --mode=survey
|
|
134
|
+
/research --mode=cite arxiv:1706.03762 --format=bibtex
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Academic Integrity
|
|
140
|
+
|
|
141
|
+
Pisces has academic integrity built in at every level:
|
|
142
|
+
|
|
143
|
+
- ✅ Always provides hints, explanations, and pseudocode
|
|
144
|
+
- ✅ Helps you debug **your own** code
|
|
145
|
+
- ✅ Writes complete code for personal projects, `/leetcode`, and `/project`
|
|
146
|
+
- ❌ Never writes complete solutions for graded assignments
|
|
147
|
+
- ❌ Never submits or helps disguise AI-generated work as your own
|
|
148
|
+
|
|
149
|
+
When Pisces detects a potential integrity issue, it redirects to guided learning mode and asks for clarification.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Configuration
|
|
154
|
+
|
|
155
|
+
Customize Pisces behavior in your Pi config:
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
# ~/.pi/config.yaml (pi-cs section)
|
|
159
|
+
pi-cs:
|
|
160
|
+
student:
|
|
161
|
+
name: Alex
|
|
162
|
+
year_of_study: 2
|
|
163
|
+
primary_language: python
|
|
164
|
+
explanations:
|
|
165
|
+
default_depth: intermediate
|
|
166
|
+
prefer_visuals: true
|
|
167
|
+
productivity:
|
|
168
|
+
burnout_nudges: true
|
|
169
|
+
session_warning_minutes: 180
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
See [`config/schema.json`](config/schema.json) for the full configuration reference.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Installation
|
|
177
|
+
|
|
178
|
+
**Requirements:** Pi >= 1.0.0, Node.js >= 18
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
pi install npm:pi-cs
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
That's it. Pisces activates automatically in every Pi session.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Project Structure
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
pi-cs/
|
|
192
|
+
├── SYSTEM.md # Core academic persona (Pi system prompt)
|
|
193
|
+
├── pi-package.yaml # Package manifest
|
|
194
|
+
├── src/
|
|
195
|
+
│ ├── skills/
|
|
196
|
+
│ │ ├── homework/SKILL.md # /homework skill
|
|
197
|
+
│ │ ├── project/SKILL.md # /project skill
|
|
198
|
+
│ │ ├── review/SKILL.md # /review skill
|
|
199
|
+
│ │ ├── explain/SKILL.md # /explain skill
|
|
200
|
+
│ │ ├── leetcode/SKILL.md # /leetcode skill
|
|
201
|
+
│ │ ├── exam/SKILL.md # /exam skill
|
|
202
|
+
│ │ └── research/SKILL.md # /research skill
|
|
203
|
+
│ ├── extensions/
|
|
204
|
+
│ │ ├── semester-detector.ts # Auto-loads SEMESTER.md
|
|
205
|
+
│ │ ├── folder-detector.ts # Detects CS folder structures
|
|
206
|
+
│ │ ├── integrity-guard.ts # Academic integrity monitoring
|
|
207
|
+
│ │ └── progress-tracker.ts # Weekly stats & burnout nudges
|
|
208
|
+
│ └── templates/
|
|
209
|
+
│ ├── semester-init.md # SEMESTER.md template
|
|
210
|
+
│ ├── project-init.md # CS project bootstrap template
|
|
211
|
+
│ └── research-paper.md # Academic paper structure template
|
|
212
|
+
├── config/
|
|
213
|
+
│ ├── schema.json # Config schema
|
|
214
|
+
│ └── defaults.json # Default values
|
|
215
|
+
└── tests/
|
|
216
|
+
├── index.test.ts # Lifecycle hooks & config tests
|
|
217
|
+
└── extensions/ # Per-extension unit tests
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Roadmap
|
|
223
|
+
|
|
224
|
+
- [x] 7 core skills
|
|
225
|
+
- [x] 4 background extensions
|
|
226
|
+
- [x] Semester context system
|
|
227
|
+
- [x] Academic integrity guard
|
|
228
|
+
- [ ] arXiv live search integration
|
|
229
|
+
- [ ] Model routing presets
|
|
230
|
+
- [ ] Obsidian vault sync
|
|
231
|
+
- [ ] `/debug` interactive debugging skill
|
|
232
|
+
- [ ] VS Code companion extension
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Contributing
|
|
237
|
+
|
|
238
|
+
Issues and PRs welcome. See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
239
|
+
|
|
240
|
+
For bugs, use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.yml).
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## License
|
|
245
|
+
|
|
246
|
+
MIT — see [LICENSE](LICENSE)
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
*Made for CS students, by CS students. 🐠*
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"student": {
|
|
3
|
+
"year_of_study": 2,
|
|
4
|
+
"primary_language": "python"
|
|
5
|
+
},
|
|
6
|
+
"explanations": {
|
|
7
|
+
"default_depth": "intermediate",
|
|
8
|
+
"prefer_visuals": true,
|
|
9
|
+
"use_analogies": true
|
|
10
|
+
},
|
|
11
|
+
"code": {
|
|
12
|
+
"style": "balanced",
|
|
13
|
+
"always_include_complexity": true,
|
|
14
|
+
"always_include_tests": false
|
|
15
|
+
},
|
|
16
|
+
"integrity": {
|
|
17
|
+
"enabled": true,
|
|
18
|
+
"strictness": "balanced"
|
|
19
|
+
},
|
|
20
|
+
"productivity": {
|
|
21
|
+
"burnout_nudges": true,
|
|
22
|
+
"session_warning_minutes": 180,
|
|
23
|
+
"weekly_summary": true
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "pi-cs Configuration",
|
|
4
|
+
"description": "User configuration for the pi-cs (Pisces) package",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"student": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"description": "Student profile settings",
|
|
10
|
+
"properties": {
|
|
11
|
+
"name": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Your first name (used for personalized greetings)"
|
|
14
|
+
},
|
|
15
|
+
"year_of_study": {
|
|
16
|
+
"type": "integer",
|
|
17
|
+
"minimum": 1,
|
|
18
|
+
"maximum": 6,
|
|
19
|
+
"description": "Current year of study (1=freshman, 4=senior, 5-6=graduate)"
|
|
20
|
+
},
|
|
21
|
+
"primary_language": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["python", "typescript", "javascript", "java", "cpp", "c", "rust", "go", "haskell", "other"],
|
|
24
|
+
"description": "Your preferred/primary programming language"
|
|
25
|
+
},
|
|
26
|
+
"timezone": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Your timezone (e.g. America/New_York) for deadline awareness"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"explanations": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"description": "Settings for the /explain skill",
|
|
35
|
+
"properties": {
|
|
36
|
+
"default_depth": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": ["beginner", "intermediate", "advanced"],
|
|
39
|
+
"default": "intermediate",
|
|
40
|
+
"description": "Default explanation depth when not specified"
|
|
41
|
+
},
|
|
42
|
+
"prefer_visuals": {
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"default": true,
|
|
45
|
+
"description": "Prefer Mermaid diagrams when explaining structural concepts"
|
|
46
|
+
},
|
|
47
|
+
"use_analogies": {
|
|
48
|
+
"type": "boolean",
|
|
49
|
+
"default": true,
|
|
50
|
+
"description": "Include real-world analogies in explanations"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"code": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"description": "Code generation preferences",
|
|
57
|
+
"properties": {
|
|
58
|
+
"style": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"enum": ["verbose", "balanced", "concise"],
|
|
61
|
+
"default": "balanced",
|
|
62
|
+
"description": "How much inline commenting to include in generated code"
|
|
63
|
+
},
|
|
64
|
+
"always_include_complexity": {
|
|
65
|
+
"type": "boolean",
|
|
66
|
+
"default": true,
|
|
67
|
+
"description": "Always annotate algorithm time/space complexity"
|
|
68
|
+
},
|
|
69
|
+
"always_include_tests": {
|
|
70
|
+
"type": "boolean",
|
|
71
|
+
"default": false,
|
|
72
|
+
"description": "Always suggest test cases alongside solutions"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"integrity": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"description": "Academic integrity guard settings",
|
|
79
|
+
"properties": {
|
|
80
|
+
"enabled": {
|
|
81
|
+
"type": "boolean",
|
|
82
|
+
"default": true,
|
|
83
|
+
"description": "Enable the academic integrity guard (strongly recommended)"
|
|
84
|
+
},
|
|
85
|
+
"strictness": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": ["strict", "balanced", "relaxed"],
|
|
88
|
+
"default": "balanced",
|
|
89
|
+
"description": "How aggressively to flag potential integrity issues"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"productivity": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"description": "Productivity and wellbeing settings",
|
|
96
|
+
"properties": {
|
|
97
|
+
"burnout_nudges": {
|
|
98
|
+
"type": "boolean",
|
|
99
|
+
"default": true,
|
|
100
|
+
"description": "Enable rest/break reminders during long sessions"
|
|
101
|
+
},
|
|
102
|
+
"session_warning_minutes": {
|
|
103
|
+
"type": "integer",
|
|
104
|
+
"default": 180,
|
|
105
|
+
"minimum": 30,
|
|
106
|
+
"description": "Show a break reminder after this many minutes in a session"
|
|
107
|
+
},
|
|
108
|
+
"weekly_summary": {
|
|
109
|
+
"type": "boolean",
|
|
110
|
+
"default": true,
|
|
111
|
+
"description": "Show a weekly progress summary at session end"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"model": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"description": "Model routing preferences",
|
|
118
|
+
"properties": {
|
|
119
|
+
"default": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"description": "Default model for general questions"
|
|
122
|
+
},
|
|
123
|
+
"code_heavy": {
|
|
124
|
+
"type": "string",
|
|
125
|
+
"description": "Model to use for code generation and review tasks"
|
|
126
|
+
},
|
|
127
|
+
"quick": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"description": "Lightweight model for fast, simple queries"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* folder-detector.ts
|
|
3
|
+
*
|
|
4
|
+
* Extension: Folder Detector
|
|
5
|
+
* Triggers: on_startup, on_directory_change
|
|
6
|
+
*
|
|
7
|
+
* Detects standard CS university folder structures and injects
|
|
8
|
+
* project context into the Pi session accordingly.
|
|
9
|
+
*/
|
|
10
|
+
export type ProjectType = "python" | "typescript" | "java" | "cpp" | "rust" | "go" | "web" | "monorepo" | "unknown";
|
|
11
|
+
export interface ProjectContext {
|
|
12
|
+
type: ProjectType;
|
|
13
|
+
root: string;
|
|
14
|
+
name: string;
|
|
15
|
+
hasTests: boolean;
|
|
16
|
+
hasCi: boolean;
|
|
17
|
+
hasDocker: boolean;
|
|
18
|
+
hasReadme: boolean;
|
|
19
|
+
entrypoint?: string;
|
|
20
|
+
testCommand?: string;
|
|
21
|
+
buildCommand?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface FolderDetectionResult {
|
|
24
|
+
isUniversityWorkspace: boolean;
|
|
25
|
+
semesterFolder?: string;
|
|
26
|
+
courseFolder?: string;
|
|
27
|
+
project?: ProjectContext;
|
|
28
|
+
}
|
|
29
|
+
export declare function detectFolderContext(): FolderDetectionResult;
|
|
30
|
+
export declare function summarizeFolderContext(result: FolderDetectionResult): string;
|
|
31
|
+
export declare function run(): {
|
|
32
|
+
inject: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=folder-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folder-detector.d.ts","sourceRoot":"","sources":["../../src/extensions/folder-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,KAAK,GACL,MAAM,GACN,IAAI,GACJ,KAAK,GACL,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AA+FD,wBAAgB,mBAAmB,IAAI,qBAAqB,CAmC3D;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAmB5E;AAID,wBAAgB,GAAG,IAAI;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CASxC"}
|