@polycode-projects/seonix 0.7.1 → 0.7.3
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/README.md +18 -35
- package/package.json +1 -1
- package/src/walk.mjs +0 -0
package/README.md
CHANGED
|
@@ -7,45 +7,25 @@ bounded **edit digest** you inject once at session start. Your agent edits from
|
|
|
7
7
|
turn 1 without fishing through the repo.
|
|
8
8
|
|
|
9
9
|
> **Headline.** Measured as **mean** input tokens per both-solved task (paired
|
|
10
|
-
> arms, identical model pin). Under the shipped score-gap default
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
>
|
|
14
|
-
>
|
|
15
|
-
>
|
|
16
|
-
>
|
|
17
|
-
>
|
|
18
|
-
> task- and model-conditional; full method, numbers and the measurement contract
|
|
19
|
-
> are in `BENCHMARK_017.md`.
|
|
10
|
+
> arms, identical model pin). Under the shipped score-gap default, two cells clear
|
|
11
|
+
> the ≥50% bar, both on exploration-bound complex tasks (a TypeScript middleware
|
|
12
|
+
> task on **Haiku 4.5** and a C# service task on **Sonnet 4.6**), with several more
|
|
13
|
+
> in the 35 to 48% range. The token cut tracks the turn cut: seonix saves tokens by
|
|
14
|
+
> removing exploration turns, so tasks whose edit site is obvious change little.
|
|
15
|
+
> Indexing costs **$0**. The win is task- and model-conditional. Full method,
|
|
16
|
+
> numbers, and the measurement contract are in
|
|
17
|
+
> [`BENCHMARKS.md`](https://gitlab.com/polycode-projects/seonix/-/blob/main/BENCHMARKS.md).
|
|
20
18
|
|
|
21
19
|
- **Website / live demo:** https://seonix.polycode.co.uk
|
|
22
20
|
- **Source + benchmarks:** https://gitlab.com/polycode-projects/seonix
|
|
23
21
|
- **Licence:** AGPL-3.0-only
|
|
24
22
|
|
|
25
|
-
##
|
|
26
|
-
|
|
27
|
-
seonix on the cheaper **Sonnet 4.6**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
| full task name | otb / Opus 4.8 | solved | seonix / Sonnet 4.6 | solved | token change |
|
|
32
|
-
| --- | --- | --- | --- | --- | --- |
|
|
33
|
-
| ts-hono-utils-helper (simple) | 135k | 3/3 | 117k | 3/3 | +13% |
|
|
34
|
-
| ts-hono-response-time-middleware | 345k | 3/3 | 555k | 3/3 | −61% |
|
|
35
|
-
| ts-hono-json-envelope | 1,102k | 3/3 | 864k | 3/3 | +22% |
|
|
36
|
-
| py-django-truncatelines-filter | 610k | 5/5 | 524k | 5/5 | +14% |
|
|
37
|
-
| cs-eshoponweb-order-service-total | 318k | 5/5 | 154k | 3/3 | +51% |
|
|
38
|
-
| cs-eshoponweb-basket-service-total | 353k | 5/5 | 255k | 3/3 | +28% |
|
|
39
|
-
| js-express-request-id | 330k | 5/5 | 267k | 3/3 | +19% |
|
|
40
|
-
| js-express-json-envelope | 174k | 5/5 | 185k | 3/3 | −7% |
|
|
41
|
-
|
|
42
|
-
seonix on Sonnet used fewer input tokens than otb on Opus on six of these eight
|
|
43
|
-
tasks, at equal correctness. This crosses model and arm together, so
|
|
44
|
-
it is an illustration of practical value, not the paired within-model measurement
|
|
45
|
-
the ≥50% decision rule uses. Across all 13 measured seonix cells the drop in input
|
|
46
|
-
tokens is 0.91-correlated (Pearson) with the drop in turns (slope about 0.71):
|
|
47
|
-
seonix saves tokens by letting the agent skip exploration turns, so where it
|
|
48
|
-
removes no turns there is little to save.
|
|
23
|
+
## A cheaper model, matched
|
|
24
|
+
|
|
25
|
+
seonix on the cheaper **Sonnet 4.6** used fewer input tokens than out-of-the-box
|
|
26
|
+
**Opus 4.8** on six of eight tasks, at equal correctness. The full cross-model
|
|
27
|
+
table and the turns correlation (Pearson 0.91) are in
|
|
28
|
+
[`BENCHMARKS.md`](https://gitlab.com/polycode-projects/seonix/-/blob/main/BENCHMARKS.md).
|
|
49
29
|
|
|
50
30
|
## Install
|
|
51
31
|
|
|
@@ -102,7 +82,10 @@ filesystem root). In the merged graph every module id and label is prefixed with
|
|
|
102
82
|
the repo's directory basename (`mod:<repoName>/<relpath>`); when two repos share a
|
|
103
83
|
basename the first in path sort order keeps the bare name and later ones get `-2`,
|
|
104
84
|
`-3`, … appended. Each repo's git history and `.seonixignore` are handled per repo,
|
|
105
|
-
exactly as in single mode
|
|
85
|
+
exactly as in single mode — a `.seonixignore` at the `multi_root` **parent** is NOT read
|
|
86
|
+
(each sub-repo loads only its own). For an **estate-wide exclude**, put it in a `seonix.toml`
|
|
87
|
+
at the directory you index from (`[index].exclude` / `secret_exclude`); that propagates to
|
|
88
|
+
every sub-repo. Cross-repo call edges only arise where a symbol name
|
|
106
89
|
resolves uniquely across the whole merged graph; ambiguous names are dropped, as
|
|
107
90
|
within one repo. Query a merged graph by passing the merge root as `repo_path`
|
|
108
91
|
(e.g. `seonix cli seonix_search '{"repo_path":"/abs/estate","query":"…"}'`).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polycode-projects/seonix",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.",
|
package/src/walk.mjs
CHANGED
|
Binary file
|