@polycode-projects/seonix 0.8.0 → 0.9.1
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 +1 -1
- package/bin/cli.mjs +6 -1
- package/package.json +55 -7
- package/src/ask-browser.bundle.js +644 -35
- package/src/browser.mjs +1 -0
- package/src/codegraph.mjs +30 -17
- package/src/extract.mjs +33 -10
- package/src/interfaces.mjs +171 -0
- package/src/jsts_tsc.mjs +17 -1
- package/src/paths.mjs +31 -0
- package/src/prose.mjs +3 -3
- package/src/schema-docs.mjs +1 -1
- package/src/server.mjs +56 -2
- package/src/sessions.mjs +3 -3
- package/src/source.mjs +16 -3
- package/src/summary.mjs +7 -3
- package/src/toml-config.mjs +13 -0
- package/src/uuid.mjs +1 -1
- package/src/viz.mjs +16 -76
package/README.md
CHANGED
|
@@ -325,7 +325,7 @@ set `SEONIX_GRAPH_FORMAT=1` to opt back out to the legacy v1 form.
|
|
|
325
325
|
An optional `seonix.toml` at a repo (or estate) root steers indexing and
|
|
326
326
|
scoring. Absent file = shipped defaults, byte-for-byte today's behaviour.
|
|
327
327
|
`seonix init` (or `seonix init --dotnet` for an estate) seeds a commented
|
|
328
|
-
template — see `
|
|
328
|
+
template — see `templates/seonix.toml` and
|
|
329
329
|
`templates/seonix-dotnet.toml` for the full annotated reference.
|
|
330
330
|
|
|
331
331
|
- **`repositories`** — the repo set for an estate config: an inline array of
|
package/bin/cli.mjs
CHANGED
|
@@ -353,6 +353,10 @@ async function main() {
|
|
|
353
353
|
extraIgnores = compileGlobs([...(toml.index.exclude || []), ...(toml.index.secretExclude || [])]);
|
|
354
354
|
tomlLanguages = toml.index.languages;
|
|
355
355
|
}
|
|
356
|
+
// [interfaces] → gated route↔handler `serves` edges (PLAN_UNTYPED_INTERFACES.md). Only read
|
|
357
|
+
// from a repo's seonix.toml, so config:false (the bench-immunity flag) keeps it null; a bench
|
|
358
|
+
// arm opts in via the SEONIX_INTERFACES env instead (resolved in extract.mjs assembleAndWrite).
|
|
359
|
+
const tomlInterfaces = toml && toml.interfaces ? toml.interfaces : null;
|
|
356
360
|
// A7: `"sync":true` on a multi_root routes through the SAME incremental-sync code
|
|
357
361
|
// path as `cli sync` — fingerprint the estate, re-extract only changed members.
|
|
358
362
|
if (args.multi_root && args.sync === true) {
|
|
@@ -373,7 +377,7 @@ async function main() {
|
|
|
373
377
|
};
|
|
374
378
|
|
|
375
379
|
if (args.repo_path) {
|
|
376
|
-
const { graphFile, counts, summary } = await indexRepository(args.repo_path, { ignores: args.ignores !== false, historyDepth, extraIgnores, languages: tomlLanguages });
|
|
380
|
+
const { graphFile, counts, summary } = await indexRepository(args.repo_path, { ignores: args.ignores !== false, historyDepth, extraIgnores, languages: tomlLanguages, interfaces: tomlInterfaces });
|
|
377
381
|
emitSummary(graphFile, counts, "");
|
|
378
382
|
// A1: the human summary MD goes to STDOUT (bench ignores index stdout — safe;
|
|
379
383
|
// the machine-readable counts stay on stderr above).
|
|
@@ -408,6 +412,7 @@ async function main() {
|
|
|
408
412
|
historyDepth,
|
|
409
413
|
extraIgnores,
|
|
410
414
|
languages: tomlLanguages,
|
|
415
|
+
interfaces: tomlInterfaces,
|
|
411
416
|
skipped: skippedRows,
|
|
412
417
|
log: (line) => process.stderr.write(`seonix: ${line}\n`),
|
|
413
418
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polycode-projects/seonix",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
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.",
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
"homepage": "https://seonix.polycode.co.uk",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://gitlab.com/polycode-projects/seonix.git"
|
|
13
|
-
"directory": "packages/seonix"
|
|
12
|
+
"url": "git+https://gitlab.com/polycode-projects/seonix.git"
|
|
14
13
|
},
|
|
15
14
|
"bugs": {
|
|
16
15
|
"url": "https://gitlab.com/polycode-projects/seonix/-/issues"
|
|
@@ -42,9 +41,58 @@
|
|
|
42
41
|
"publishConfig": {
|
|
43
42
|
"access": "public"
|
|
44
43
|
},
|
|
44
|
+
"workspaces": [
|
|
45
|
+
"infra"
|
|
46
|
+
],
|
|
47
|
+
"scripts": {
|
|
48
|
+
"setup": "node scripts/setup.mjs",
|
|
49
|
+
"bench": "node bench/run.mjs",
|
|
50
|
+
"bench:quick": "node bench/run.mjs --instances 1 --runs 1",
|
|
51
|
+
"join:telemetry": "node scripts/join-telemetry.mjs",
|
|
52
|
+
"bench:lite": "node bench/run.mjs --suite lite",
|
|
53
|
+
"bench:seonix": "node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5",
|
|
54
|
+
"bench:b010": "node bench/run.mjs --suite django-lh --arms otb,seonix,seonix-min,seonix-b010 --models claude-opus-4-8,claude-sonnet-4-6 --runs 5 --concurrency 10",
|
|
55
|
+
"bench:b011": "node bench/run.mjs --suite django-lh --arms seonix,seonix-min --models claude-opus-4-8,claude-sonnet-4-6,claude-haiku-4-5 --runs 5 --concurrency 15",
|
|
56
|
+
"bench:b011-haiku-refs": "node bench/run.mjs --suite django-lh --arms otb,seonix-b010 --models claude-haiku-4-5 --runs 5 --concurrency 10",
|
|
57
|
+
"bench:b015": "node scripts/bench-b015.mjs",
|
|
58
|
+
"bench:b016p1": "node scripts/bench-b016-p1.mjs",
|
|
59
|
+
"bench:b016h": "node scripts/bench-b016-h.mjs",
|
|
60
|
+
"bench:b016p2": "node scripts/bench-b016-p2.mjs",
|
|
61
|
+
"bench:baseline": "node scripts/use-baseline.mjs",
|
|
62
|
+
"proof": "node scripts/proof-demo.mjs",
|
|
63
|
+
"smoke": "node bench/smoke.mjs --suite django-lh",
|
|
64
|
+
"report": "node bench/report.mjs",
|
|
65
|
+
"all": "npm run setup && npm run bench && npm run report",
|
|
66
|
+
"clean": "node scripts/clean.mjs",
|
|
67
|
+
"verify:counts": "node scripts/verify-counts.mjs",
|
|
68
|
+
"verify:sanity": "node scripts/verify-sanity.mjs",
|
|
69
|
+
"verify:index": "node scripts/verify-index.mjs",
|
|
70
|
+
"verify:query": "node scripts/verify-query.mjs",
|
|
71
|
+
"verify:review": "node scripts/verify-review.mjs",
|
|
72
|
+
"verify:loop": "node scripts/verify-loop.mjs",
|
|
73
|
+
"refs": "node scripts/fetch-references.mjs",
|
|
74
|
+
"refs:embeddings": "node scripts/fetch-embeddings.mjs",
|
|
75
|
+
"audit": "npm audit --audit-level=high",
|
|
76
|
+
"audit:fix": "npm audit fix",
|
|
77
|
+
"test:root": "node --test \"test/**/*.test.mjs\"",
|
|
78
|
+
"test": "npm run test:root && npm run chrono:test",
|
|
79
|
+
"chrono:build": "node chronograph/build.mjs",
|
|
80
|
+
"chrono:serve": "node chronograph/serve.mjs",
|
|
81
|
+
"chrono:test": "node --test \"chronograph/test/**/*.test.mjs\"",
|
|
82
|
+
"test:all": "npm run test",
|
|
83
|
+
"seonix": "node bin/cli.mjs",
|
|
84
|
+
"seonix:viz": "node bin/cli.mjs viz --",
|
|
85
|
+
"e2e:install": "npx playwright install chromium --with-deps",
|
|
86
|
+
"e2e": "playwright test",
|
|
87
|
+
"e2e:site": "playwright test site.behaviour.test.js",
|
|
88
|
+
"e2e:prod": "SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js",
|
|
89
|
+
"site:prompts": "node scripts/site-prompts.mjs",
|
|
90
|
+
"build:ask-bundle": "node scripts/build-ask-bundle.mjs",
|
|
91
|
+
"site:gen": "npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts"
|
|
92
|
+
},
|
|
45
93
|
"dependencies": {
|
|
46
94
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
47
|
-
"@polycode-projects/the-mechanical-code-talker": "^0.
|
|
95
|
+
"@polycode-projects/the-mechanical-code-talker": "^0.8.1",
|
|
48
96
|
"cytoscape": "^3.30.0",
|
|
49
97
|
"smol-toml": "^1.7.0",
|
|
50
98
|
"tree-sitter": "^0.21.1",
|
|
@@ -52,8 +100,8 @@
|
|
|
52
100
|
"tree-sitter-java": "^0.21.0",
|
|
53
101
|
"typescript": "~5.6.2"
|
|
54
102
|
},
|
|
55
|
-
"
|
|
56
|
-
"test": "
|
|
57
|
-
"
|
|
103
|
+
"devDependencies": {
|
|
104
|
+
"@playwright/test": "^1.56.0",
|
|
105
|
+
"esbuild": "^0.28.1"
|
|
58
106
|
}
|
|
59
107
|
}
|