chucky 1.0.0__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.
- chucky-1.0.0/.chuckignore +20 -0
- chucky-1.0.0/.claude/settings.local.json +29 -0
- chucky-1.0.0/.github/ISSUE_TEMPLATE/bug_report.md +19 -0
- chucky-1.0.0/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- chucky-1.0.0/.github/workflows/ci.yml +33 -0
- chucky-1.0.0/.github/workflows/publish.yml +28 -0
- chucky-1.0.0/.gitignore +32 -0
- chucky-1.0.0/.st8/MISSION.md +42 -0
- chucky-1.0.0/.st8/REPORT.md +45 -0
- chucky-1.0.0/.st8/config.json +24 -0
- chucky-1.0.0/.st8/deploy.json +180 -0
- chucky-1.0.0/.st8/dev/hashes.json +60 -0
- chucky-1.0.0/.st8/history.json +20 -0
- chucky-1.0.0/.st8/prod/.chuckignore +20 -0
- chucky-1.0.0/.st8/prod/.claude/settings.local.json +29 -0
- chucky-1.0.0/.st8/prod/.github/ISSUE_TEMPLATE/bug_report.md +19 -0
- chucky-1.0.0/.st8/prod/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- chucky-1.0.0/.st8/prod/.github/workflows/ci.yml +33 -0
- chucky-1.0.0/.st8/prod/.github/workflows/publish.yml +28 -0
- chucky-1.0.0/.st8/prod/.gitignore +32 -0
- chucky-1.0.0/.st8/prod/CHANGELOG.md +20 -0
- chucky-1.0.0/.st8/prod/CONTRIBUTING.md +29 -0
- chucky-1.0.0/.st8/prod/LICENSE +21 -0
- chucky-1.0.0/.st8/prod/MANIFEST.in +3 -0
- chucky-1.0.0/.st8/prod/README.md +510 -0
- chucky-1.0.0/.st8/prod/chuck_aider.py +165 -0
- chucky-1.0.0/.st8/prod/chuck_aider_init.py +137 -0
- chucky-1.0.0/.st8/prod/examples/basic_usage.py +78 -0
- chucky-1.0.0/.st8/prod/examples/ci_pipeline.py +121 -0
- chucky-1.0.0/.st8/prod/examples/claude_code.py +74 -0
- chucky-1.0.0/.st8/prod/examples/multi_context.py +79 -0
- chucky-1.0.0/.st8/prod/pyproject.toml +64 -0
- chucky-1.0.0/.st8/prod/src/chuck/__init__.py +49 -0
- chucky-1.0.0/.st8/prod/src/chuck/chunker.py +206 -0
- chucky-1.0.0/.st8/prod/src/chuck/cli.py +301 -0
- chucky-1.0.0/.st8/prod/src/chuck/context.py +79 -0
- chucky-1.0.0/.st8/prod/src/chuck/core.py +424 -0
- chucky-1.0.0/.st8/prod/src/chuck/digest.py +316 -0
- chucky-1.0.0/.st8/prod/src/chuck/hasher.py +23 -0
- chucky-1.0.0/.st8/prod/src/chuck/ignore.py +125 -0
- chucky-1.0.0/.st8/prod/src/chuck/py.typed +0 -0
- chucky-1.0.0/.st8/prod/src/chuck/snapshot.py +235 -0
- chucky-1.0.0/.st8/prod/src/chuck/tokens.py +47 -0
- chucky-1.0.0/.st8/prod/tests/__init__.py +0 -0
- chucky-1.0.0/.st8/prod/tests/fixtures/sample_project/README.md +8 -0
- chucky-1.0.0/.st8/prod/tests/fixtures/sample_project/src/main.py +13 -0
- chucky-1.0.0/.st8/prod/tests/fixtures/sample_project/src/utils.py +9 -0
- chucky-1.0.0/.st8/prod/tests/test_chunker.py +75 -0
- chucky-1.0.0/.st8/prod/tests/test_context.py +79 -0
- chucky-1.0.0/.st8/prod/tests/test_context_selection.py +184 -0
- chucky-1.0.0/.st8/prod/tests/test_core.py +402 -0
- chucky-1.0.0/.st8/prod/tests/test_digest.py +104 -0
- chucky-1.0.0/.st8/prod/tests/test_ignore.py +80 -0
- chucky-1.0.0/.st8/prod/tests/test_launcher_flags.py +184 -0
- chucky-1.0.0/.st8/prod/tests/test_snapshot.py +148 -0
- chucky-1.0.0/.st8/prod/tests/test_tokens.py +60 -0
- chucky-1.0.0/.st8/stage/.chuckignore +20 -0
- chucky-1.0.0/.st8/stage/.claude/settings.local.json +29 -0
- chucky-1.0.0/.st8/stage/.github/ISSUE_TEMPLATE/bug_report.md +19 -0
- chucky-1.0.0/.st8/stage/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- chucky-1.0.0/.st8/stage/.github/workflows/ci.yml +33 -0
- chucky-1.0.0/.st8/stage/.github/workflows/publish.yml +28 -0
- chucky-1.0.0/.st8/stage/.gitignore +32 -0
- chucky-1.0.0/.st8/stage/CHANGELOG.md +20 -0
- chucky-1.0.0/.st8/stage/CONTRIBUTING.md +29 -0
- chucky-1.0.0/.st8/stage/LICENSE +21 -0
- chucky-1.0.0/.st8/stage/MANIFEST.in +3 -0
- chucky-1.0.0/.st8/stage/README.md +510 -0
- chucky-1.0.0/.st8/stage/chuck_aider.py +165 -0
- chucky-1.0.0/.st8/stage/chuck_aider_init.py +137 -0
- chucky-1.0.0/.st8/stage/examples/basic_usage.py +78 -0
- chucky-1.0.0/.st8/stage/examples/ci_pipeline.py +121 -0
- chucky-1.0.0/.st8/stage/examples/claude_code.py +74 -0
- chucky-1.0.0/.st8/stage/examples/multi_context.py +79 -0
- chucky-1.0.0/.st8/stage/pyproject.toml +64 -0
- chucky-1.0.0/.st8/stage/src/chuck/__init__.py +49 -0
- chucky-1.0.0/.st8/stage/src/chuck/chunker.py +206 -0
- chucky-1.0.0/.st8/stage/src/chuck/cli.py +301 -0
- chucky-1.0.0/.st8/stage/src/chuck/context.py +79 -0
- chucky-1.0.0/.st8/stage/src/chuck/core.py +424 -0
- chucky-1.0.0/.st8/stage/src/chuck/digest.py +316 -0
- chucky-1.0.0/.st8/stage/src/chuck/hasher.py +23 -0
- chucky-1.0.0/.st8/stage/src/chuck/ignore.py +125 -0
- chucky-1.0.0/.st8/stage/src/chuck/py.typed +0 -0
- chucky-1.0.0/.st8/stage/src/chuck/snapshot.py +235 -0
- chucky-1.0.0/.st8/stage/src/chuck/tokens.py +47 -0
- chucky-1.0.0/.st8/stage/tests/__init__.py +0 -0
- chucky-1.0.0/.st8/stage/tests/fixtures/sample_project/README.md +8 -0
- chucky-1.0.0/.st8/stage/tests/fixtures/sample_project/src/main.py +13 -0
- chucky-1.0.0/.st8/stage/tests/fixtures/sample_project/src/utils.py +9 -0
- chucky-1.0.0/.st8/stage/tests/test_chunker.py +75 -0
- chucky-1.0.0/.st8/stage/tests/test_context.py +79 -0
- chucky-1.0.0/.st8/stage/tests/test_context_selection.py +184 -0
- chucky-1.0.0/.st8/stage/tests/test_core.py +402 -0
- chucky-1.0.0/.st8/stage/tests/test_digest.py +104 -0
- chucky-1.0.0/.st8/stage/tests/test_ignore.py +80 -0
- chucky-1.0.0/.st8/stage/tests/test_launcher_flags.py +184 -0
- chucky-1.0.0/.st8/stage/tests/test_snapshot.py +148 -0
- chucky-1.0.0/.st8/stage/tests/test_tokens.py +60 -0
- chucky-1.0.0/.st8/state.json +7 -0
- chucky-1.0.0/CHANGELOG.md +20 -0
- chucky-1.0.0/CONTRIBUTING.md +29 -0
- chucky-1.0.0/LICENSE +21 -0
- chucky-1.0.0/MANIFEST.in +3 -0
- chucky-1.0.0/PKG-INFO +545 -0
- chucky-1.0.0/README.md +510 -0
- chucky-1.0.0/chuck_aider.py +165 -0
- chucky-1.0.0/chuck_aider_init.py +137 -0
- chucky-1.0.0/examples/basic_usage.py +78 -0
- chucky-1.0.0/examples/ci_pipeline.py +121 -0
- chucky-1.0.0/examples/claude_code.py +74 -0
- chucky-1.0.0/examples/multi_context.py +79 -0
- chucky-1.0.0/pyproject.toml +64 -0
- chucky-1.0.0/src/chuck/__init__.py +49 -0
- chucky-1.0.0/src/chuck/chunker.py +206 -0
- chucky-1.0.0/src/chuck/cli.py +301 -0
- chucky-1.0.0/src/chuck/context.py +79 -0
- chucky-1.0.0/src/chuck/core.py +424 -0
- chucky-1.0.0/src/chuck/digest.py +316 -0
- chucky-1.0.0/src/chuck/hasher.py +23 -0
- chucky-1.0.0/src/chuck/ignore.py +125 -0
- chucky-1.0.0/src/chuck/py.typed +0 -0
- chucky-1.0.0/src/chuck/snapshot.py +235 -0
- chucky-1.0.0/src/chuck/tokens.py +47 -0
- chucky-1.0.0/tests/__init__.py +0 -0
- chucky-1.0.0/tests/fixtures/sample_project/README.md +8 -0
- chucky-1.0.0/tests/fixtures/sample_project/src/main.py +13 -0
- chucky-1.0.0/tests/fixtures/sample_project/src/utils.py +9 -0
- chucky-1.0.0/tests/test_chunker.py +75 -0
- chucky-1.0.0/tests/test_context.py +79 -0
- chucky-1.0.0/tests/test_context_selection.py +184 -0
- chucky-1.0.0/tests/test_core.py +402 -0
- chucky-1.0.0/tests/test_digest.py +104 -0
- chucky-1.0.0/tests/test_ignore.py +80 -0
- chucky-1.0.0/tests/test_launcher_flags.py +184 -0
- chucky-1.0.0/tests/test_snapshot.py +148 -0
- chucky-1.0.0/tests/test_tokens.py +60 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(python:*)",
|
|
5
|
+
"Bash(pip:*)",
|
|
6
|
+
"Bash(st8:*)",
|
|
7
|
+
"Bash(tree:*)",
|
|
8
|
+
"Bash(echo:*)",
|
|
9
|
+
"Bash(pytest:*)",
|
|
10
|
+
"Bash(npm:*)",
|
|
11
|
+
"Bash(node:*)",
|
|
12
|
+
"Bash(git:*)",
|
|
13
|
+
"Bash(ls:*)",
|
|
14
|
+
"Bash(mkdir:*)",
|
|
15
|
+
"Bash(cp:*)",
|
|
16
|
+
"Bash(mv:*)",
|
|
17
|
+
"Bash(rm:*)",
|
|
18
|
+
"Bash(cat:*)",
|
|
19
|
+
"Bash(wc:*)",
|
|
20
|
+
"Read",
|
|
21
|
+
"Edit",
|
|
22
|
+
"Write",
|
|
23
|
+
"Glob",
|
|
24
|
+
"Grep",
|
|
25
|
+
"mcp__ide__getDiagnostics",
|
|
26
|
+
"Bash(chuck:*)"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Something isn't working correctly
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Describe the bug**
|
|
8
|
+
A clear description of what the bug is.
|
|
9
|
+
|
|
10
|
+
**To reproduce**
|
|
11
|
+
Steps to reproduce the behavior.
|
|
12
|
+
|
|
13
|
+
**Expected behavior**
|
|
14
|
+
What you expected to happen.
|
|
15
|
+
|
|
16
|
+
**Environment**
|
|
17
|
+
- OS:
|
|
18
|
+
- Python version:
|
|
19
|
+
- Chuck version:
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest an idea for Chuck
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Problem**
|
|
8
|
+
What problem does this solve?
|
|
9
|
+
|
|
10
|
+
**Proposed solution**
|
|
11
|
+
Describe what you'd like to happen.
|
|
12
|
+
|
|
13
|
+
**Alternatives considered**
|
|
14
|
+
Any alternative solutions you've thought about.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: ${{ matrix.python-version }}
|
|
21
|
+
- run: pip install -e ".[dev]"
|
|
22
|
+
- run: pytest --cov=chuck --cov-report=term-missing
|
|
23
|
+
- run: ruff check .
|
|
24
|
+
|
|
25
|
+
lint:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
- uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.12"
|
|
32
|
+
- run: pip install ruff
|
|
33
|
+
- run: ruff check .
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
id-token: write
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
publish:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
environment: pypi
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- uses: actions/setup-python@v5
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.12"
|
|
20
|
+
|
|
21
|
+
- name: Install build tools
|
|
22
|
+
run: pip install build
|
|
23
|
+
|
|
24
|
+
- name: Build package
|
|
25
|
+
run: python -m build
|
|
26
|
+
|
|
27
|
+
- name: Publish to PyPI
|
|
28
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
chucky-1.0.0/.gitignore
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.pyc
|
|
4
|
+
*.pyo
|
|
5
|
+
*.egg-info/
|
|
6
|
+
dist/
|
|
7
|
+
build/
|
|
8
|
+
*.egg
|
|
9
|
+
.eggs/
|
|
10
|
+
|
|
11
|
+
# Virtual environments
|
|
12
|
+
.venv/
|
|
13
|
+
venv/
|
|
14
|
+
env/
|
|
15
|
+
|
|
16
|
+
# Testing
|
|
17
|
+
.pytest_cache/
|
|
18
|
+
.coverage
|
|
19
|
+
htmlcov/
|
|
20
|
+
|
|
21
|
+
# IDE
|
|
22
|
+
.vscode/
|
|
23
|
+
.idea/
|
|
24
|
+
*.swp
|
|
25
|
+
*.swo
|
|
26
|
+
|
|
27
|
+
# OS
|
|
28
|
+
.DS_Store
|
|
29
|
+
Thumbs.db
|
|
30
|
+
|
|
31
|
+
# Chuck's own state (don't ship in the package)
|
|
32
|
+
.chuck/
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Mission
|
|
2
|
+
|
|
3
|
+
## Objective
|
|
4
|
+
<!-- What do you want to accomplish? Be specific and measurable. -->
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
<!-- What's the current state? What problem are you solving? -->
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## Requirements
|
|
12
|
+
<!-- List specific deliverables with checkboxes. -->
|
|
13
|
+
- [ ]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
## Constraints
|
|
17
|
+
<!-- Technical limits, dependencies, what must NOT change. -->
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## Success Criteria
|
|
21
|
+
<!-- How will you verify this is done correctly? -->
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## Files to Focus On
|
|
25
|
+
<!-- Which files should the agent read or modify? -->
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## Out of Scope
|
|
29
|
+
<!-- What should NOT be changed or added? -->
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## Additional Context
|
|
33
|
+
<!-- Links, examples, related issues. Delete if not needed. -->
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Mission Completion
|
|
39
|
+
<!--
|
|
40
|
+
When running via `st8 mission`, archiving is AUTOMATIC.
|
|
41
|
+
Your only task is to update .st8/REPORT.md with your findings.
|
|
42
|
+
-->
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Mission Report
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
<!-- SUCCESS | PARTIAL | BLOCKED | FAILED -->
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
<!-- 1-2 sentence overview of what was accomplished -->
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## Changes Made
|
|
12
|
+
<!-- List of files modified and what was changed -->
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Challenges Encountered
|
|
16
|
+
<!-- What was difficult? What slowed progress? -->
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Decisions Made
|
|
20
|
+
<!-- Key decisions and rationale -->
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Testing Done
|
|
24
|
+
<!-- How was the work validated? -->
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## Known Issues
|
|
28
|
+
<!-- Any remaining problems or edge cases -->
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Improvement Opportunities
|
|
32
|
+
<!-- Suggestions for future enhancements -->
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
## Ideas for Future
|
|
36
|
+
<!-- Related features or refactors worth considering -->
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Mission Feedback
|
|
40
|
+
<!-- How could the MISSION.md have been clearer or more helpful? -->
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
*Session Hash: <!-- Will be populated on archive -->*
|
|
45
|
+
*Completed: YYYY-MM-DD HH:MM*
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "chuck",
|
|
3
|
+
"current_version": "1.0.0",
|
|
4
|
+
"thresholds": {
|
|
5
|
+
"patch": 0.05,
|
|
6
|
+
"minor": 0.25
|
|
7
|
+
},
|
|
8
|
+
"weighted_paths": {
|
|
9
|
+
"src/": 1.0,
|
|
10
|
+
"lib/": 1.0,
|
|
11
|
+
"tests/": 0.3,
|
|
12
|
+
"docs/": 0.1,
|
|
13
|
+
"config/": 0.5
|
|
14
|
+
},
|
|
15
|
+
"exclude": [
|
|
16
|
+
"node_modules/",
|
|
17
|
+
".st8/",
|
|
18
|
+
"build/",
|
|
19
|
+
"dist/",
|
|
20
|
+
".git/",
|
|
21
|
+
"__pycache__/",
|
|
22
|
+
"*.pyc"
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
{
|
|
2
|
+
"environments": {
|
|
3
|
+
"dev": {
|
|
4
|
+
"enabled": false,
|
|
5
|
+
"auto_deploy": false,
|
|
6
|
+
"protocol": "ssh",
|
|
7
|
+
"host": "",
|
|
8
|
+
"port": 22,
|
|
9
|
+
"username": "",
|
|
10
|
+
"password": "",
|
|
11
|
+
"remote_path": "",
|
|
12
|
+
"ignore": [
|
|
13
|
+
".DS_Store",
|
|
14
|
+
".st8",
|
|
15
|
+
".git",
|
|
16
|
+
".gitignore",
|
|
17
|
+
".vscode",
|
|
18
|
+
".idea",
|
|
19
|
+
".claude",
|
|
20
|
+
".tracy",
|
|
21
|
+
"LICENSE",
|
|
22
|
+
"README.md",
|
|
23
|
+
"CLAUDE.md",
|
|
24
|
+
"MISSION.md",
|
|
25
|
+
"REPORT.md",
|
|
26
|
+
"*.jpg",
|
|
27
|
+
"*.jpeg",
|
|
28
|
+
"*.png",
|
|
29
|
+
"*.gif",
|
|
30
|
+
"*.svg",
|
|
31
|
+
"*.webp",
|
|
32
|
+
"*.ico",
|
|
33
|
+
"*.mp4",
|
|
34
|
+
"*.mov",
|
|
35
|
+
"*.avi",
|
|
36
|
+
"*.wmv",
|
|
37
|
+
"*.flv",
|
|
38
|
+
"*.mkv",
|
|
39
|
+
"*.mp3",
|
|
40
|
+
"*.wav",
|
|
41
|
+
"*.ogg",
|
|
42
|
+
"*.pdf",
|
|
43
|
+
"*.zip",
|
|
44
|
+
"*.tar",
|
|
45
|
+
"*.gz",
|
|
46
|
+
"*.rar",
|
|
47
|
+
"*.7z"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"stg": {
|
|
51
|
+
"enabled": false,
|
|
52
|
+
"auto_deploy": false,
|
|
53
|
+
"protocol": "ssh",
|
|
54
|
+
"host": "",
|
|
55
|
+
"port": 22,
|
|
56
|
+
"username": "",
|
|
57
|
+
"password": "",
|
|
58
|
+
"remote_path": "",
|
|
59
|
+
"ignore": [
|
|
60
|
+
".DS_Store",
|
|
61
|
+
".st8",
|
|
62
|
+
".git",
|
|
63
|
+
".gitignore",
|
|
64
|
+
".vscode",
|
|
65
|
+
".idea",
|
|
66
|
+
".claude",
|
|
67
|
+
".tracy",
|
|
68
|
+
"LICENSE",
|
|
69
|
+
"README.md",
|
|
70
|
+
"CLAUDE.md",
|
|
71
|
+
"MISSION.md",
|
|
72
|
+
"REPORT.md",
|
|
73
|
+
"*.jpg",
|
|
74
|
+
"*.jpeg",
|
|
75
|
+
"*.png",
|
|
76
|
+
"*.gif",
|
|
77
|
+
"*.svg",
|
|
78
|
+
"*.webp",
|
|
79
|
+
"*.ico",
|
|
80
|
+
"*.mp4",
|
|
81
|
+
"*.mov",
|
|
82
|
+
"*.avi",
|
|
83
|
+
"*.wmv",
|
|
84
|
+
"*.flv",
|
|
85
|
+
"*.mkv",
|
|
86
|
+
"*.mp3",
|
|
87
|
+
"*.wav",
|
|
88
|
+
"*.ogg",
|
|
89
|
+
"*.pdf",
|
|
90
|
+
"*.zip",
|
|
91
|
+
"*.tar",
|
|
92
|
+
"*.gz",
|
|
93
|
+
"*.rar",
|
|
94
|
+
"*.7z"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"prod": {
|
|
98
|
+
"enabled": false,
|
|
99
|
+
"auto_deploy": false,
|
|
100
|
+
"protocol": "ssh",
|
|
101
|
+
"host": "",
|
|
102
|
+
"port": 22,
|
|
103
|
+
"username": "",
|
|
104
|
+
"password": "",
|
|
105
|
+
"remote_path": "",
|
|
106
|
+
"ignore": [
|
|
107
|
+
".DS_Store",
|
|
108
|
+
".st8",
|
|
109
|
+
".git",
|
|
110
|
+
".gitignore",
|
|
111
|
+
".vscode",
|
|
112
|
+
".idea",
|
|
113
|
+
".claude",
|
|
114
|
+
".tracy",
|
|
115
|
+
"LICENSE",
|
|
116
|
+
"README.md",
|
|
117
|
+
"CLAUDE.md",
|
|
118
|
+
"MISSION.md",
|
|
119
|
+
"REPORT.md",
|
|
120
|
+
"*.jpg",
|
|
121
|
+
"*.jpeg",
|
|
122
|
+
"*.png",
|
|
123
|
+
"*.gif",
|
|
124
|
+
"*.svg",
|
|
125
|
+
"*.webp",
|
|
126
|
+
"*.ico",
|
|
127
|
+
"*.mp4",
|
|
128
|
+
"*.mov",
|
|
129
|
+
"*.avi",
|
|
130
|
+
"*.wmv",
|
|
131
|
+
"*.flv",
|
|
132
|
+
"*.mkv",
|
|
133
|
+
"*.mp3",
|
|
134
|
+
"*.wav",
|
|
135
|
+
"*.ogg",
|
|
136
|
+
"*.pdf",
|
|
137
|
+
"*.zip",
|
|
138
|
+
"*.tar",
|
|
139
|
+
"*.gz",
|
|
140
|
+
"*.rar",
|
|
141
|
+
"*.7z"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"auth": {
|
|
146
|
+
"method": "key",
|
|
147
|
+
"key_path": "~/.ssh/id_rsa"
|
|
148
|
+
},
|
|
149
|
+
"options": {
|
|
150
|
+
"backup_before_deploy": true,
|
|
151
|
+
"post_deploy_command": ""
|
|
152
|
+
},
|
|
153
|
+
"git": {
|
|
154
|
+
"enabled": true,
|
|
155
|
+
"stage_branch": "stage",
|
|
156
|
+
"prod_branch": "main",
|
|
157
|
+
"auto_push": true
|
|
158
|
+
},
|
|
159
|
+
"ai": {
|
|
160
|
+
"simple": {
|
|
161
|
+
"provider": "ollama",
|
|
162
|
+
"model": "llama3.2",
|
|
163
|
+
"endpoint": "http://localhost:11434"
|
|
164
|
+
},
|
|
165
|
+
"agent": {
|
|
166
|
+
"provider": "claude-code",
|
|
167
|
+
"command": "claude",
|
|
168
|
+
"fallback_model": "claude-sonnet-4-5-20250929",
|
|
169
|
+
"endpoint": "http://localhost:11434"
|
|
170
|
+
},
|
|
171
|
+
"author": {
|
|
172
|
+
"provider": "anthropic",
|
|
173
|
+
"model": "claude-sonnet-4-5-20250929",
|
|
174
|
+
"max_tokens": 4096
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"mission": {
|
|
178
|
+
"auto_promote": false
|
|
179
|
+
}
|
|
180
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
".DS_Store": "481fac4a39535d8066e19b3aa4a6134f1decb19060ae0b15ff386f0c4f72011a",
|
|
3
|
+
"LICENSE": "02909ac37eaf3f7789aeecc3b22c2141e843a16ef44bef31ed69005ddf126561",
|
|
4
|
+
"CHANGELOG.md": "fc128c2f56d4ef9351d97ec684afb8abd2df4586627e6652f27cc200697657dc",
|
|
5
|
+
"pyproject.toml": "869207e3497a330f4f95f80ab7fc52b74609c53c8fb3a898f9fd67601f04da1f",
|
|
6
|
+
"MANIFEST.in": "e8639fe98578d680ddc31a93c05a87eb9f81fb79ff5cda9f92fd6f136d4e034a",
|
|
7
|
+
".chuckignore": "9e3a2911c67f3be6ca9ce4b42aad70e275a6e6198e7f80fc25860edd43b5292f",
|
|
8
|
+
"README.md": "00572e90c656acc5e678ebf25d5bfe1e62b3b72c444f04c754f8c02094ab6269",
|
|
9
|
+
".gitignore": "4a491cc4114b618459f634d0614a5f726b2091d254399f5192edddaef8809645",
|
|
10
|
+
"CONTRIBUTING.md": "e88db1a133e58901c727ca02d9158384ca3bd9a9bb1f3f20cbbb68a01ba6e924",
|
|
11
|
+
"chuck_aider.py": "0f2ca141d6dcf24702803a92443647553825134d953fabbff04ad328facb5661",
|
|
12
|
+
"chuck_aider_init.py": "53dd3d6306a2419a76ee7fdd3b72b3e6a2588e5616e5c0308af4b8f8a8e61636",
|
|
13
|
+
".pytest_cache/CACHEDIR.TAG": "37dc88ef9a0abeddbe81053a6dd8fdfb13afb613045ea1eb4a5c815a74a3bde4",
|
|
14
|
+
".pytest_cache/README.md": "73fd6fccdd802c419a6b2d983d6c3173b7da97558ac4b589edec2dfe443db9ad",
|
|
15
|
+
".pytest_cache/.gitignore": "3ed731b65d06150c138e2dadb0be0697550888a6b47eb8c45ecc9adba8b8e9bd",
|
|
16
|
+
".pytest_cache/v/cache/nodeids": "3a630b2dc51a59eed61078434e28bff8e235c5c22965926574fcfacaa85234b5",
|
|
17
|
+
".pytest_cache/v/cache/lastfailed": "b495f8a4853760325f8ac97caff4fe809f7e11e1f7314b7bada2678fb22f4b81",
|
|
18
|
+
".pytest_cache/v/cache/stepwise": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
19
|
+
"tests/test_context_selection.py": "7ae9ac96257e511d697e420e81337ab3764c7321fb3ff1c75cdd1e7e6f042252",
|
|
20
|
+
"tests/test_ignore.py": "eefed1465485bd10a91a11df4b42276a55aaa904532c4e3b822cd7af56bc9f29",
|
|
21
|
+
"tests/test_chunker.py": "b0f74ae893f7f081d464b1a32e9c7434db17da71786d7e20b603a5de4ce8e112",
|
|
22
|
+
"tests/.DS_Store": "f18d05cdf6ea18701bbe998b5f40fde5ab739244aa4b2fc471b1c901e043a96b",
|
|
23
|
+
"tests/test_launcher_flags.py": "9c07dc8fb9febcd23a73ea115ffca39d8ec8999ac989c77b6f230c0aced3474f",
|
|
24
|
+
"tests/test_core.py": "3e6d203ccb98a10796da52211a76639fe8c1d9e4a417d6ce299d02b96bca54fa",
|
|
25
|
+
"tests/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
26
|
+
"tests/test_digest.py": "eaf481e331ff8e4116b739f0f491278591da45f9b48542a9549201f53d863c33",
|
|
27
|
+
"tests/test_snapshot.py": "2b6d1fbfce1ac27953db534d37cdbe5e6d488383ee0025b2f37f86545a900a01",
|
|
28
|
+
"tests/test_context.py": "68ea839eab7f5d7606e24d595bd9505618f2f760a798e214d693f876d9d6c5e7",
|
|
29
|
+
"tests/test_tokens.py": "e9c214142bb977bc8fa02ed183a3e2216b2c82d10f3629818f661e289fe1d799",
|
|
30
|
+
"tests/fixtures/sample_project/README.md": "864b315d33397418844bbe905100a65da85e309ef95df3df85d8d80e6564fcd1",
|
|
31
|
+
"tests/fixtures/sample_project/src/utils.py": "d2e832f714c101435d63654ea1bcb9675236e441118ef47285470bcebbe0603c",
|
|
32
|
+
"tests/fixtures/sample_project/src/main.py": "06da35793173494fd8b4b3dd2649435c0a00844245e75cbd51b5254f5b80e4a2",
|
|
33
|
+
".claude/settings.local.json": "94917ef87f308fe85d3a6b66dacc1785f98b6b1b957e77c25a9afb1822e4be06",
|
|
34
|
+
"examples/basic_usage.py": "f4b893368cbe23f880b27e3e1015815d8cc5262b148891349d7f775116e24d9a",
|
|
35
|
+
"examples/ci_pipeline.py": "fb7b75be896d905c16bef86843a9b7e2594def2509b1d61c4fde5060aa090f01",
|
|
36
|
+
"examples/multi_context.py": "c3e6c04f36ed8f77b0dfdc8429fb4b74ea56551cfb0c23944dd61f8b74f04568",
|
|
37
|
+
"examples/claude_code.py": "09ed84e26598228824317774d58b72cd950741eca24f8c2b121887627d532b6c",
|
|
38
|
+
".github/workflows/publish.yml": "f248eb319aab54a07d770e2c8d1d8bcf5a00f88eccc32d840a722021d75c54db",
|
|
39
|
+
".github/workflows/ci.yml": "49e7212b6e41cf3b4a10f5620268b8244fa198967ec53ea8046d9974e1e53aab",
|
|
40
|
+
".github/ISSUE_TEMPLATE/feature_request.md": "0debd18c536a362db4318ea53a0a45bfa6fb868126c1e7114b9bb3335b9273cb",
|
|
41
|
+
".github/ISSUE_TEMPLATE/bug_report.md": "a2da7a2c1291279824090f4cd9cc01a1f411fa5aa4f85df1a79f5d6e8a675d0e",
|
|
42
|
+
"src/.DS_Store": "7a6a6687b2941a4d72ceedad53e351c12512931d92bc05d222b00ab46cf983d8",
|
|
43
|
+
"src/chuck/digest.py": "442ed06dc5dd76b4b7c0f51069cfbd8eb56854cf23733e780457047053b56389",
|
|
44
|
+
"src/chuck/chunker.py": "b0730a8f80fb6e3357b3a4b71a8f30153fe77c4f3e22e7396db9bdd8b8f6d105",
|
|
45
|
+
"src/chuck/__init__.py": "6f089a4d443f2477f82eca30fef8d455dfb6bcc210f8602432f71015acdd472f",
|
|
46
|
+
"src/chuck/core.py": "ff17347589b473ed71b3812829e07f124358d85d839d41ca6063be12641c0808",
|
|
47
|
+
"src/chuck/tokens.py": "dc4e84335c51e3693dc5ddc06fd6e1f82d8976969e1208214c381cc1567f9dc2",
|
|
48
|
+
"src/chuck/ignore.py": "25739d3fedc5c2a4513b5e3e907a3ecb49d496c8e64e7a012de349decdbbda96",
|
|
49
|
+
"src/chuck/context.py": "5ce9fcec80b0f9b7a95a5aac98c489abe73d7cd8321777573d654861d5139953",
|
|
50
|
+
"src/chuck/cli.py": "0ff64c21f7cd24eb2c6d262acea653747b25d7ec1de9dff57c1e576e98a2a79f",
|
|
51
|
+
"src/chuck/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
52
|
+
"src/chuck/hasher.py": "0bb3a9e02c2132852c3c89b6f8a5761fdc7d04f05e35666072c6602d347da5e6",
|
|
53
|
+
"src/chuck/snapshot.py": "5870baab417e95fa4591d4c555180bd05ad247d01e925930a62c2be5a9d1cd7e",
|
|
54
|
+
"src/chuck.egg-info/PKG-INFO": "50955eb0294d12dda2eba6fe96dd7432f00f074f4e64fe67670fb1ecaadc1264",
|
|
55
|
+
"src/chuck.egg-info/SOURCES.txt": "9f14ba3870b081d17be4079b855484303615b47ec242b47d862e47022797187e",
|
|
56
|
+
"src/chuck.egg-info/entry_points.txt": "d7d78d698a7bd99a778346c77413a05a68bea568680ff33a638cf2988bd2cf90",
|
|
57
|
+
"src/chuck.egg-info/requires.txt": "ca245aca038f9a3d2bbb2dc0c1bcecc2aa819652166b4e34121c641248dcfd2a",
|
|
58
|
+
"src/chuck.egg-info/top_level.txt": "0e020043b94165dcb241e206d23637fbc9cd4513fdfd4059b4b832e81222ba1a",
|
|
59
|
+
"src/chuck.egg-info/dependency_links.txt": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b"
|
|
60
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"timestamp": "2026-03-07T22:36:41.075453+00:00",
|
|
5
|
+
"message": "Initial commit",
|
|
6
|
+
"tags": [],
|
|
7
|
+
"percent_changed": 100.0,
|
|
8
|
+
"files_changed": 58,
|
|
9
|
+
"type": "checkpoint"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"version": "1.0.0",
|
|
13
|
+
"timestamp": "2026-03-07T22:41:29.227531+00:00",
|
|
14
|
+
"message": "",
|
|
15
|
+
"tags": [],
|
|
16
|
+
"percent_changed": 100.0,
|
|
17
|
+
"files_changed": 58,
|
|
18
|
+
"type": "release"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(python:*)",
|
|
5
|
+
"Bash(pip:*)",
|
|
6
|
+
"Bash(st8:*)",
|
|
7
|
+
"Bash(tree:*)",
|
|
8
|
+
"Bash(echo:*)",
|
|
9
|
+
"Bash(pytest:*)",
|
|
10
|
+
"Bash(npm:*)",
|
|
11
|
+
"Bash(node:*)",
|
|
12
|
+
"Bash(git:*)",
|
|
13
|
+
"Bash(ls:*)",
|
|
14
|
+
"Bash(mkdir:*)",
|
|
15
|
+
"Bash(cp:*)",
|
|
16
|
+
"Bash(mv:*)",
|
|
17
|
+
"Bash(rm:*)",
|
|
18
|
+
"Bash(cat:*)",
|
|
19
|
+
"Bash(wc:*)",
|
|
20
|
+
"Read",
|
|
21
|
+
"Edit",
|
|
22
|
+
"Write",
|
|
23
|
+
"Glob",
|
|
24
|
+
"Grep",
|
|
25
|
+
"mcp__ide__getDiagnostics",
|
|
26
|
+
"Bash(chuck:*)"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Something isn't working correctly
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Describe the bug**
|
|
8
|
+
A clear description of what the bug is.
|
|
9
|
+
|
|
10
|
+
**To reproduce**
|
|
11
|
+
Steps to reproduce the behavior.
|
|
12
|
+
|
|
13
|
+
**Expected behavior**
|
|
14
|
+
What you expected to happen.
|
|
15
|
+
|
|
16
|
+
**Environment**
|
|
17
|
+
- OS:
|
|
18
|
+
- Python version:
|
|
19
|
+
- Chuck version:
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest an idea for Chuck
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Problem**
|
|
8
|
+
What problem does this solve?
|
|
9
|
+
|
|
10
|
+
**Proposed solution**
|
|
11
|
+
Describe what you'd like to happen.
|
|
12
|
+
|
|
13
|
+
**Alternatives considered**
|
|
14
|
+
Any alternative solutions you've thought about.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: ${{ matrix.python-version }}
|
|
21
|
+
- run: pip install -e ".[dev]"
|
|
22
|
+
- run: pytest --cov=chuck --cov-report=term-missing
|
|
23
|
+
- run: ruff check .
|
|
24
|
+
|
|
25
|
+
lint:
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
- uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: "3.12"
|
|
32
|
+
- run: pip install ruff
|
|
33
|
+
- run: ruff check .
|