cluxion-agentplugin-supercoder 0.1.0__tar.gz → 0.2.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.
- cluxion_agentplugin_supercoder-0.2.0/.github/workflows/ci.yml +34 -0
- cluxion_agentplugin_supercoder-0.2.0/.github/workflows/publish.yml +109 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/README.md +3 -3
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/agent-surfaces.md +1 -1
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/architecture.md +1 -1
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/capabilities.md +4 -2
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/design.md +11 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/rust-architecture.md +1 -1
- cluxion_agentplugin_supercoder-0.2.0/Docs/tools.md +74 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/PKG-INFO +13 -7
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/README.md +9 -6
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/pyproject.toml +3 -4
- cluxion_agentplugin_supercoder-0.2.0/rust/supercoder_index/Cargo.lock +576 -0
- cluxion_agentplugin_supercoder-0.2.0/rust/supercoder_index/Cargo.toml +33 -0
- cluxion_agentplugin_supercoder-0.2.0/rust/supercoder_index/pyproject.toml +15 -0
- cluxion_agentplugin_supercoder-0.2.0/rust/supercoder_index/src/lib.rs +193 -0
- cluxion_agentplugin_supercoder-0.2.0/rust/supercoder_index/src/main.rs +37 -0
- cluxion_agentplugin_supercoder-0.2.0/rust/supercoder_index/src/outline.rs +257 -0
- cluxion_agentplugin_supercoder-0.2.0/rust/supercoder_index/src/syntax.rs +207 -0
- cluxion_agentplugin_supercoder-0.2.0/scripts/repack_native_wheel.py +111 -0
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/__init__.py +5 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/src/cluxion_agentplugin_supercoder/cli.py +8 -3
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/src/cluxion_agentplugin_supercoder/core/cursor.py +9 -20
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/src/cluxion_agentplugin_supercoder/core/hash_patch.py +14 -4
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/src/cluxion_agentplugin_supercoder/core/line_budget.py +3 -3
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/core/lint_gate.py +111 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/src/cluxion_agentplugin_supercoder/core/queue.py +3 -3
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/core/repo_map.py +220 -0
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/core/retry_loop.py +104 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/src/cluxion_agentplugin_supercoder/core/safety.py +6 -4
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/core/syntax_gate.py +112 -0
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/core/test_gate.py +207 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/src/cluxion_agentplugin_supercoder/plugin.py +31 -3
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/runner.py +190 -0
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/rust_bridge.py +158 -0
- cluxion_agentplugin_supercoder-0.2.0/src/cluxion_agentplugin_supercoder/schemas.py +154 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/tests/test_cursor.py +1 -1
- cluxion_agentplugin_supercoder-0.2.0/tests/test_hash_patch.py +82 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_line_budget.py +34 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_lint_gate.py +97 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/tests/test_plugin.py +7 -2
- cluxion_agentplugin_supercoder-0.2.0/tests/test_queue.py +48 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_repo_map.py +211 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_retry_loop.py +98 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_rust_bridge.py +93 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_safety.py +52 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_syntax_gate.py +150 -0
- cluxion_agentplugin_supercoder-0.2.0/tests/test_test_gate.py +145 -0
- cluxion_agentplugin_supercoder-0.2.0/uv.lock +724 -0
- cluxion_agentplugin_supercoder-0.1.0/Docs/tools.md +0 -54
- cluxion_agentplugin_supercoder-0.1.0/rust/supercoder_index/Cargo.lock +0 -235
- cluxion_agentplugin_supercoder-0.1.0/rust/supercoder_index/Cargo.toml +0 -14
- cluxion_agentplugin_supercoder-0.1.0/rust/supercoder_index/src/main.rs +0 -91
- cluxion_agentplugin_supercoder-0.1.0/src/cluxion_agentplugin_supercoder/__init__.py +0 -5
- cluxion_agentplugin_supercoder-0.1.0/src/cluxion_agentplugin_supercoder/core/test_gate.py +0 -71
- cluxion_agentplugin_supercoder-0.1.0/src/cluxion_agentplugin_supercoder/runner.py +0 -111
- cluxion_agentplugin_supercoder-0.1.0/src/cluxion_agentplugin_supercoder/rust_bridge.py +0 -45
- cluxion_agentplugin_supercoder-0.1.0/src/cluxion_agentplugin_supercoder/schemas.py +0 -78
- cluxion_agentplugin_supercoder-0.1.0/tests/test_hash_patch.py +0 -22
- cluxion_agentplugin_supercoder-0.1.0/tests/test_test_gate.py +0 -23
- cluxion_agentplugin_supercoder-0.1.0/uv.lock +0 -221
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/.gitignore +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/ARCHITECTURE.md +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/installation.md +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/__init__.py +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/adapters/claude/.claude-plugin/plugin.json +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/adapters/claude/skills/supercoder/SKILL.md +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/adapters/codex/config-snippet.toml +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/adapters/hermes/README.md +0 -0
- {cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/plugin.yaml +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["main"]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
env:
|
|
9
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
test:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
strategy:
|
|
15
|
+
fail-fast: false
|
|
16
|
+
matrix:
|
|
17
|
+
python-version: ["3.11", "3.12"]
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v6.0.3
|
|
20
|
+
- uses: astral-sh/setup-uv@v8.2.0
|
|
21
|
+
- name: Set up Python
|
|
22
|
+
run: uv python install ${{ matrix.python-version }}
|
|
23
|
+
- name: Install
|
|
24
|
+
run: uv sync --extra dev --python ${{ matrix.python-version }}
|
|
25
|
+
- name: Lint
|
|
26
|
+
run: uv run ruff check .
|
|
27
|
+
- name: Test
|
|
28
|
+
run: uv run pytest
|
|
29
|
+
- name: Cargo test
|
|
30
|
+
run: cargo test --manifest-path rust/supercoder_index/Cargo.toml
|
|
31
|
+
- name: Build
|
|
32
|
+
run: uv run python -m build
|
|
33
|
+
- name: Check package
|
|
34
|
+
run: uv run twine check dist/*
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: ["published"]
|
|
6
|
+
|
|
7
|
+
env:
|
|
8
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
checks:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v6.0.3
|
|
15
|
+
- uses: astral-sh/setup-uv@v8.2.0
|
|
16
|
+
- name: Set up Python
|
|
17
|
+
run: uv python install 3.12
|
|
18
|
+
- name: Install
|
|
19
|
+
run: uv sync --extra dev --python 3.12
|
|
20
|
+
- name: Lint
|
|
21
|
+
run: uv run ruff check .
|
|
22
|
+
- name: Test
|
|
23
|
+
run: uv run pytest
|
|
24
|
+
- name: Cargo test
|
|
25
|
+
run: cargo test --manifest-path rust/supercoder_index/Cargo.toml
|
|
26
|
+
|
|
27
|
+
# sdist + pure py3-none-any wheel: the fallback pip selects on platforms
|
|
28
|
+
# without a matching native wheel.
|
|
29
|
+
build-pure:
|
|
30
|
+
needs: checks
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v6.0.3
|
|
34
|
+
- uses: astral-sh/setup-uv@v8.2.0
|
|
35
|
+
- name: Set up Python
|
|
36
|
+
run: uv python install 3.12
|
|
37
|
+
- name: Install build tooling
|
|
38
|
+
run: uv sync --extra dev --python 3.12
|
|
39
|
+
- name: Build sdist and pure wheel
|
|
40
|
+
run: uv run python -m build
|
|
41
|
+
- name: Check package
|
|
42
|
+
run: uv run twine check dist/*
|
|
43
|
+
- uses: actions/upload-artifact@v4
|
|
44
|
+
with:
|
|
45
|
+
name: dist-pure
|
|
46
|
+
path: dist/
|
|
47
|
+
|
|
48
|
+
# Platform wheels of the SAME project: the abi3 native module is merged
|
|
49
|
+
# into the pure wheel and the wheel is retagged. One PyPI project total.
|
|
50
|
+
build-native:
|
|
51
|
+
needs: build-pure
|
|
52
|
+
strategy:
|
|
53
|
+
fail-fast: false
|
|
54
|
+
matrix:
|
|
55
|
+
include:
|
|
56
|
+
- os: ubuntu-latest
|
|
57
|
+
target: x86_64
|
|
58
|
+
- os: ubuntu-latest
|
|
59
|
+
target: aarch64
|
|
60
|
+
- os: macos-14
|
|
61
|
+
target: universal2-apple-darwin
|
|
62
|
+
- os: windows-latest
|
|
63
|
+
target: x64
|
|
64
|
+
runs-on: ${{ matrix.os }}
|
|
65
|
+
steps:
|
|
66
|
+
- uses: actions/checkout@v6.0.3
|
|
67
|
+
- uses: PyO3/maturin-action@v1
|
|
68
|
+
with:
|
|
69
|
+
working-directory: rust/supercoder_index
|
|
70
|
+
target: ${{ matrix.target }}
|
|
71
|
+
args: --release --strip --out dist
|
|
72
|
+
manylinux: auto
|
|
73
|
+
- uses: actions/download-artifact@v4
|
|
74
|
+
with:
|
|
75
|
+
name: dist-pure
|
|
76
|
+
path: dist-pure/
|
|
77
|
+
- uses: astral-sh/setup-uv@v8.2.0
|
|
78
|
+
- name: Merge native module into project wheel
|
|
79
|
+
shell: bash
|
|
80
|
+
run: |
|
|
81
|
+
uv run --no-project --python 3.12 --with wheel \
|
|
82
|
+
python scripts/repack_native_wheel.py \
|
|
83
|
+
--pure-wheel dist-pure/*-py3-none-any.whl \
|
|
84
|
+
--native-wheel rust/supercoder_index/dist/*.whl \
|
|
85
|
+
--out dist-merged/
|
|
86
|
+
- uses: actions/upload-artifact@v4
|
|
87
|
+
with:
|
|
88
|
+
name: dist-merged-${{ matrix.os }}-${{ matrix.target }}
|
|
89
|
+
path: dist-merged/
|
|
90
|
+
|
|
91
|
+
publish:
|
|
92
|
+
name: Publish cluxion-agentplugin-supercoder
|
|
93
|
+
needs: [build-pure, build-native]
|
|
94
|
+
runs-on: ubuntu-latest
|
|
95
|
+
environment: pypi
|
|
96
|
+
permissions:
|
|
97
|
+
id-token: write
|
|
98
|
+
contents: read
|
|
99
|
+
steps:
|
|
100
|
+
- uses: actions/download-artifact@v4
|
|
101
|
+
with:
|
|
102
|
+
name: dist-pure
|
|
103
|
+
path: dist/
|
|
104
|
+
- uses: actions/download-artifact@v4
|
|
105
|
+
with:
|
|
106
|
+
pattern: dist-merged-*
|
|
107
|
+
merge-multiple: true
|
|
108
|
+
path: dist/
|
|
109
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
{cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/README.md
RENAMED
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
|
|
16
16
|
### 연결된 AI 사용 흐름
|
|
17
17
|
|
|
18
|
-
1. 코딩 요청 → `supercoder_plan` (비코딩이면 `bypass`)
|
|
19
|
-
2. `supercoder_cursor_map` / `supercoder_read_window` — bounded context
|
|
20
|
-
3. `supercoder_patch` — expected hash
|
|
18
|
+
1. 코딩 요청 → `supercoder_plan` (비코딩이면 `bypass`; coding plan에 repo map 포함, `repo_map:false`로 opt-out)
|
|
19
|
+
2. `supercoder_repo_map` / `supercoder_cursor_map` / `supercoder_read_window` — bounded context
|
|
20
|
+
3. `supercoder_patch` — expected hash 필수; `supercoder_syntax_gate` / `supercoder_lint_gate`로 검증
|
|
21
21
|
4. `supercoder_test_gate` — host terminal에서 테스트 실행
|
|
22
22
|
5. `supercoder_brief` — evidence와 함께 완료 보고
|
|
23
23
|
|
{cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/agent-surfaces.md
RENAMED
|
@@ -9,7 +9,7 @@ Supercoder는 Hermes plugin + `supercoder` toolset으로 연결됩니다.
|
|
|
9
9
|
hermes plugins enable cluxion-agentplugin-supercoder
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
Tools: `supercoder_plan`, `supercoder_read_window`, `supercoder_patch`, `supercoder_cursor_map`, `supercoder_test_gate`, `supercoder_brief`
|
|
12
|
+
Tools (9): `supercoder_plan`, `supercoder_repo_map`, `supercoder_read_window`, `supercoder_patch`, `supercoder_cursor_map`, `supercoder_syntax_gate`, `supercoder_lint_gate`, `supercoder_test_gate`, `supercoder_brief`
|
|
13
13
|
|
|
14
14
|
## Claude / Codex / Grok
|
|
15
15
|
|
{cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/architecture.md
RENAMED
|
@@ -19,7 +19,7 @@ flowchart TD
|
|
|
19
19
|
```
|
|
20
20
|
src/cluxion_agentplugin_supercoder/
|
|
21
21
|
plugin.py, runner.py
|
|
22
|
-
core/ — cursor, hash_patch, line_budget, safety, queue
|
|
22
|
+
core/ — cursor, hash_patch, repo_map, syntax_gate, lint_gate, line_budget, safety, queue
|
|
23
23
|
rust_bridge.py
|
|
24
24
|
rust/supercoder_index/
|
|
25
25
|
```
|
{cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/capabilities.md
RENAMED
|
@@ -5,14 +5,16 @@ Supercoder가 **현재 제공하는** 기능입니다.
|
|
|
5
5
|
## Hermes 연동
|
|
6
6
|
|
|
7
7
|
- Plugin entry + `supercoder` toolset
|
|
8
|
-
- Tools: `supercoder_plan`, `supercoder_read_window`, `supercoder_patch`, `supercoder_cursor_map`, `supercoder_test_gate`, `supercoder_brief`
|
|
8
|
+
- Tools (9): `supercoder_plan`, `supercoder_repo_map`, `supercoder_read_window`, `supercoder_patch`, `supercoder_cursor_map`, `supercoder_syntax_gate`, `supercoder_lint_gate`, `supercoder_test_gate`, `supercoder_brief`
|
|
9
9
|
|
|
10
10
|
## Core (Python)
|
|
11
11
|
|
|
12
12
|
- `hash_patch` — exact/fuzzy match, stale detection
|
|
13
13
|
- `cursor` — read_window, cursor_map
|
|
14
|
+
- `repo_map` — budgeted files + top-level symbols (`files_omitted` honesty)
|
|
15
|
+
- `syntax_gate`, `lint_gate` — parse-check and advisory ruff
|
|
14
16
|
- `line_budget`, `safety` gates
|
|
15
|
-
- `TaskQueue` / `plan_coding_task` — WorkUnit 분해
|
|
17
|
+
- `TaskQueue` / `plan_coding_task` — WorkUnit 분해 (plan embeds 2000-char repo map by default)
|
|
16
18
|
|
|
17
19
|
## Rust sidecar
|
|
18
20
|
|
{cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/Docs/design.md
RENAMED
|
@@ -58,6 +58,17 @@ hash/fuzzy match 로직:
|
|
|
58
58
|
- 테스트: `tests_run` 또는 `tests_not_run_reason`
|
|
59
59
|
- 불확실: `unknown_after_check` 허용, fake certainty 금지
|
|
60
60
|
|
|
61
|
+
## Repo map
|
|
62
|
+
|
|
63
|
+
`supercoder_repo_map`은 budgeted text map (files + top-level symbols with line numbers)을 반환합니다.
|
|
64
|
+
budget을 넘는 파일은 `files_omitted`에 집계됩니다. `supercoder_plan`은 coding plan에 기본 2000-char repo map을 embed하며 `repo_map:false`로 opt-out 가능합니다.
|
|
65
|
+
|
|
66
|
+
## Syntax and lint gates
|
|
67
|
+
|
|
68
|
+
- `supercoder_syntax_gate` — tree-sitter parse-check (python/rust/js/ts/tsx/json; toml stdlib); unsupported languages fail-open
|
|
69
|
+
- `supercoder_lint_gate` — advisory ruff (suggest-only, never blocks)
|
|
70
|
+
- `supercoder_patch` — 기본 `syntax_gate=true` (parse 실패 시 revert), `lint_gate=true` (advisory findings)
|
|
71
|
+
|
|
61
72
|
## Lazy activation
|
|
62
73
|
|
|
63
74
|
`is_coding_task()`가 false이면 `supercoder_plan`은 `mode=bypass`.
|
|
@@ -28,7 +28,7 @@ export CLUXION_SUPERCODER_INDEX_BIN=/path/to/supercoder-index
|
|
|
28
28
|
|
|
29
29
|
## Python 역할
|
|
30
30
|
|
|
31
|
-
- `hash_patch`, `cursor`, `line_budget`, `safety` — 에이전트 tool handler
|
|
31
|
+
- `hash_patch`, `cursor`, `repo_map`, `syntax_gate`, `lint_gate`, `line_budget`, `safety` — 에이전트 tool handler
|
|
32
32
|
- `TaskQueue` / WorkUnit 분해
|
|
33
33
|
- Hermes `register()` — `supercoder` toolset 등록
|
|
34
34
|
- 연결된 AI가 skill·도구 지시에 따라 `supercoder_*` 호출
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Tools
|
|
2
|
+
|
|
3
|
+
연결된 AI가 호출하는 `supercoder` toolset입니다.
|
|
4
|
+
|
|
5
|
+
## `supercoder_plan`
|
|
6
|
+
|
|
7
|
+
코딩 task를 WorkUnit 큐로 분해합니다. Coding plan에는 compact repo map (files + top-level symbols)이 포함됩니다.
|
|
8
|
+
|
|
9
|
+
- 비코딩 prompt → `{ "mode": "bypass" }`
|
|
10
|
+
- 코딩 prompt → `map` → `edit` → `verify` → `brief`
|
|
11
|
+
|
|
12
|
+
입력: `prompt`, `task_id`, `cwd`, `repo_map` (기본 `true`), `repo_map_budget_chars` (기본 2000)
|
|
13
|
+
|
|
14
|
+
## `supercoder_repo_map`
|
|
15
|
+
|
|
16
|
+
budgeted repo map: line count가 있는 파일 목록 + top-level symbols (class/function/method/rust item/ts interface)와 line number.
|
|
17
|
+
task 시작 시 orientation용. budget 초과 파일은 `files_omitted`에 집계 (silent drop 없음).
|
|
18
|
+
|
|
19
|
+
입력: `cwd`, `max_files` (기본 128), `max_symbols_per_file` (기본 24), `budget_chars` (기본 8000)
|
|
20
|
+
|
|
21
|
+
## `supercoder_read_window`
|
|
22
|
+
|
|
23
|
+
bounded file read.
|
|
24
|
+
|
|
25
|
+
입력: `path`, `start_line`, `max_lines` (기본 120), `cwd`
|
|
26
|
+
출력: `content`, `content_hash`, `file_hash`
|
|
27
|
+
|
|
28
|
+
## `supercoder_patch`
|
|
29
|
+
|
|
30
|
+
hash 검증 patch. `expected_file_hash` 없으면 stale로 거부.
|
|
31
|
+
기본 `syntax_gate=true`: parse 실패 시 patch 자동 revert. `lint_gate=true`: 성공 후 advisory ruff findings 첨부 (never blocks).
|
|
32
|
+
|
|
33
|
+
## `supercoder_syntax_gate`
|
|
34
|
+
|
|
35
|
+
파일 또는 snippet parse-check (tree-sitter: python/rust/js/ts/tsx/json; stdlib: toml). 미지원 언어는 fail-open.
|
|
36
|
+
|
|
37
|
+
입력: `path`, `content`, `language`, `cwd`
|
|
38
|
+
|
|
39
|
+
## `supercoder_lint_gate`
|
|
40
|
+
|
|
41
|
+
advisory ruff lint for one file (suggest-only; 프로젝트 ruff config 존중).
|
|
42
|
+
|
|
43
|
+
입력: `path`, `cwd`
|
|
44
|
+
|
|
45
|
+
## `supercoder_cursor_map`
|
|
46
|
+
|
|
47
|
+
repo 내 소스 파일 index (확장자·깊이 제한).
|
|
48
|
+
|
|
49
|
+
## `supercoder_test_gate`
|
|
50
|
+
|
|
51
|
+
변경 파일 기반으로 테스트 명령을 **제안**합니다.
|
|
52
|
+
|
|
53
|
+
- Python: `src/pkg/store.py` → matching test file anywhere in repo (`src/`, flat, tests-beside-code)
|
|
54
|
+
- `.rs`/`.go`/`.js`/`.ts`: cargo/go/npm runner when project marker exists
|
|
55
|
+
- `command`로 명시 override 가능
|
|
56
|
+
- **연결된 AI**가 host terminal에서 실행하고, stdout/stderr를 `supercoder_brief.tests_run`에 기록
|
|
57
|
+
|
|
58
|
+
## `supercoder_brief`
|
|
59
|
+
|
|
60
|
+
`files_changed`, `tests_run`, `verification_status`, `remaining_risks` 요약.
|
|
61
|
+
|
|
62
|
+
## WorkUnit 필드
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
id, goal, priority
|
|
66
|
+
allowed_paths, line_budget
|
|
67
|
+
dependencies, expected_evidence
|
|
68
|
+
status: pending | running | complete | failed | blocked
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Queue (내부)
|
|
72
|
+
|
|
73
|
+
`TaskQueue.next_unit()` / `record()` — `supercoder_plan` 흐름에서 사용.
|
|
74
|
+
연결된 AI는 WorkUnit 순서에 맞게 위 도구를 호출합니다.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cluxion-agentplugin-supercoder
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: Universal agent coding harness plugin: cursor logic, safe patch, line budget, Rust index, test gates.
|
|
5
5
|
Project-URL: Homepage, https://github.com/cluxion/cluxion-Agentplugin-supercoder
|
|
6
6
|
Project-URL: Repository, https://github.com/cluxion/cluxion-Agentplugin-supercoder
|
|
@@ -11,10 +11,13 @@ Keywords: claude-code,cluxion,codex,coding,hermes-agent,plugin
|
|
|
11
11
|
Requires-Python: >=3.11
|
|
12
12
|
Requires-Dist: psutil>=5.9
|
|
13
13
|
Requires-Dist: pyyaml>=6.0
|
|
14
|
+
Requires-Dist: ruff>=0.8
|
|
14
15
|
Provides-Extra: dev
|
|
15
16
|
Requires-Dist: build>=1.2; extra == 'dev'
|
|
16
17
|
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
17
18
|
Requires-Dist: ruff>=0.8; extra == 'dev'
|
|
19
|
+
Requires-Dist: twine>=6.0; extra == 'dev'
|
|
20
|
+
Requires-Dist: wheel>=0.45; extra == 'dev'
|
|
18
21
|
Description-Content-Type: text/markdown
|
|
19
22
|
|
|
20
23
|
# cluxion-Agentplugin-supercoder
|
|
@@ -50,9 +53,9 @@ patch 검증·인덱싱은 Rust, orchestration은 Python 래퍼입니다.
|
|
|
50
53
|
## 연결된 AI가 하는 일
|
|
51
54
|
|
|
52
55
|
```
|
|
53
|
-
코딩 요청 → supercoder_plan
|
|
54
|
-
→ cursor_map / read_window
|
|
55
|
-
→ supercoder_patch (hash
|
|
56
|
+
코딩 요청 → supercoder_plan (기본 repo map 포함; repo_map:false로 opt-out)
|
|
57
|
+
→ supercoder_repo_map / cursor_map / read_window
|
|
58
|
+
→ supercoder_patch (hash 필수; syntax/lint gate)
|
|
56
59
|
→ test_gate (host terminal 실행)
|
|
57
60
|
→ supercoder_brief (evidence 필수)
|
|
58
61
|
```
|
|
@@ -67,14 +70,17 @@ cluxion-supercoder check
|
|
|
67
70
|
hermes plugins enable cluxion-agentplugin-supercoder
|
|
68
71
|
```
|
|
69
72
|
|
|
70
|
-
## 도구 (`supercoder` toolset)
|
|
73
|
+
## 도구 (`supercoder` toolset, 9 tools)
|
|
71
74
|
|
|
72
75
|
| Tool | 설명 |
|
|
73
76
|
|------|------|
|
|
74
|
-
| `supercoder_plan` | WorkUnit 큐 |
|
|
77
|
+
| `supercoder_plan` | WorkUnit 큐 (coding plan에 2000-char repo map 포함; `repo_map:false`로 opt-out) |
|
|
78
|
+
| `supercoder_repo_map` | budgeted repo map (files + top-level symbols; `files_omitted`로 잘림 표시) |
|
|
75
79
|
| `supercoder_read_window` | line-bounded read |
|
|
76
|
-
| `supercoder_patch` | hash 검증 patch |
|
|
80
|
+
| `supercoder_patch` | hash 검증 patch + L1 syntax gate (lint advisory) |
|
|
77
81
|
| `supercoder_cursor_map` | repo index |
|
|
82
|
+
| `supercoder_syntax_gate` | tree-sitter parse-check (python/rust/js/ts/tsx/json; toml stdlib) |
|
|
83
|
+
| `supercoder_lint_gate` | advisory ruff lint (suggest-only) |
|
|
78
84
|
| `supercoder_test_gate` | 테스트 제안 |
|
|
79
85
|
| `supercoder_brief` | evidence 요약 |
|
|
80
86
|
|
|
@@ -31,9 +31,9 @@ patch 검증·인덱싱은 Rust, orchestration은 Python 래퍼입니다.
|
|
|
31
31
|
## 연결된 AI가 하는 일
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
코딩 요청 → supercoder_plan
|
|
35
|
-
→ cursor_map / read_window
|
|
36
|
-
→ supercoder_patch (hash
|
|
34
|
+
코딩 요청 → supercoder_plan (기본 repo map 포함; repo_map:false로 opt-out)
|
|
35
|
+
→ supercoder_repo_map / cursor_map / read_window
|
|
36
|
+
→ supercoder_patch (hash 필수; syntax/lint gate)
|
|
37
37
|
→ test_gate (host terminal 실행)
|
|
38
38
|
→ supercoder_brief (evidence 필수)
|
|
39
39
|
```
|
|
@@ -48,14 +48,17 @@ cluxion-supercoder check
|
|
|
48
48
|
hermes plugins enable cluxion-agentplugin-supercoder
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
## 도구 (`supercoder` toolset)
|
|
51
|
+
## 도구 (`supercoder` toolset, 9 tools)
|
|
52
52
|
|
|
53
53
|
| Tool | 설명 |
|
|
54
54
|
|------|------|
|
|
55
|
-
| `supercoder_plan` | WorkUnit 큐 |
|
|
55
|
+
| `supercoder_plan` | WorkUnit 큐 (coding plan에 2000-char repo map 포함; `repo_map:false`로 opt-out) |
|
|
56
|
+
| `supercoder_repo_map` | budgeted repo map (files + top-level symbols; `files_omitted`로 잘림 표시) |
|
|
56
57
|
| `supercoder_read_window` | line-bounded read |
|
|
57
|
-
| `supercoder_patch` | hash 검증 patch |
|
|
58
|
+
| `supercoder_patch` | hash 검증 patch + L1 syntax gate (lint advisory) |
|
|
58
59
|
| `supercoder_cursor_map` | repo index |
|
|
60
|
+
| `supercoder_syntax_gate` | tree-sitter parse-check (python/rust/js/ts/tsx/json; toml stdlib) |
|
|
61
|
+
| `supercoder_lint_gate` | advisory ruff lint (suggest-only) |
|
|
59
62
|
| `supercoder_test_gate` | 테스트 제안 |
|
|
60
63
|
| `supercoder_brief` | evidence 요약 |
|
|
61
64
|
|
{cluxion_agentplugin_supercoder-0.1.0 → cluxion_agentplugin_supercoder-0.2.0}/pyproject.toml
RENAMED
|
@@ -4,24 +4,23 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cluxion-agentplugin-supercoder"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.2.0"
|
|
8
8
|
description = "Universal agent coding harness plugin: cursor logic, safe patch, line budget, Rust index, test gates."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
license = "Apache-2.0"
|
|
12
12
|
authors = [{ name = "cluxion", email = "algocean1204@users.noreply.github.com" }]
|
|
13
13
|
keywords = ["cluxion", "hermes-agent", "claude-code", "codex", "coding", "plugin"]
|
|
14
|
-
dependencies = ["psutil>=5.9", "PyYAML>=6.0"]
|
|
14
|
+
dependencies = ["psutil>=5.9", "PyYAML>=6.0", "ruff>=0.8"]
|
|
15
15
|
|
|
16
16
|
[project.optional-dependencies]
|
|
17
|
-
dev = ["pytest>=8.0", "ruff>=0.8", "build>=1.2"]
|
|
17
|
+
dev = ["pytest>=8.0", "ruff>=0.8", "build>=1.2", "twine>=6.0", "wheel>=0.45"]
|
|
18
18
|
|
|
19
19
|
[project.scripts]
|
|
20
20
|
cluxion-supercoder = "cluxion_agentplugin_supercoder.cli:main"
|
|
21
21
|
|
|
22
22
|
[project.entry-points."hermes_agent.plugins"]
|
|
23
23
|
cluxion-agentplugin-supercoder = "cluxion_agentplugin_supercoder.plugin"
|
|
24
|
-
hermes-supercoder = "cluxion_agentplugin_supercoder.plugin"
|
|
25
24
|
|
|
26
25
|
[project.urls]
|
|
27
26
|
Homepage = "https://github.com/cluxion/cluxion-Agentplugin-supercoder"
|