ucn 4.2.3 → 5.0.2
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/.claude/skills/ucn/SKILL.md +89 -77
- package/.claude/skills/ucn/references/commands.md +62 -68
- package/.claude/skills/ucn/references/trust-contract.md +31 -6
- package/README.md +438 -305
- package/assets/demo.svg +31 -0
- package/cli/index.js +430 -1385
- package/core/account.js +144 -34
- package/core/analysis.js +182 -72
- package/core/ast-analysis.js +279 -0
- package/core/bridge.js +205 -24
- package/core/brief.js +27 -58
- package/core/build-worker.js +21 -140
- package/core/cache.js +513 -11
- package/core/callers.js +4920 -456
- package/core/check.js +13 -4
- package/core/command-contracts.js +402 -0
- package/core/compilation-database.js +276 -0
- package/core/confidence.js +4 -1
- package/core/deadcode.js +397 -19
- package/core/discovery.js +359 -46
- package/core/entrypoints.js +195 -41
- package/core/execute.js +887 -81
- package/core/graph-build.js +162 -7
- package/core/graph.js +53 -77
- package/core/imports.js +65 -6
- package/core/index-ir.js +138 -0
- package/core/ir.js +195 -0
- package/core/output/analysis.js +212 -22
- package/core/output/brief.js +23 -0
- package/core/output/check.js +4 -0
- package/core/output/doctor.js +37 -6
- package/core/output/endpoints.js +5 -2
- package/core/output/extraction.js +24 -12
- package/core/output/find.js +141 -36
- package/core/output/graph.js +11 -5
- package/core/output/public.js +462 -0
- package/core/output/refactoring.js +42 -10
- package/core/output/reporting.js +97 -20
- package/core/output/search.js +24 -16
- package/core/output/shared.js +22 -1
- package/core/output/tracing.js +30 -15
- package/core/output-budget.js +295 -0
- package/core/output.js +1 -0
- package/core/parallel-build.js +44 -11
- package/core/parser.js +3 -3
- package/core/project.js +384 -187
- package/core/public-command.js +47 -0
- package/core/registry.js +247 -117
- package/core/reporting.js +312 -290
- package/core/search.js +317 -185
- package/core/semantic-provider.js +110 -0
- package/core/stacktrace.js +25 -0
- package/core/tracing.js +101 -51
- package/core/trust-matrix.js +19 -40
- package/core/verify.js +534 -37
- package/languages/adapter.js +218 -0
- package/languages/c-family.js +2791 -0
- package/languages/c.js +3 -0
- package/languages/cpp.js +3 -0
- package/languages/csharp.js +1402 -0
- package/languages/go.js +60 -21
- package/languages/html.js +2 -2
- package/languages/index.js +85 -7
- package/languages/java.js +396 -13
- package/languages/javascript.js +199 -19
- package/languages/python.js +964 -22
- package/languages/rust.js +1317 -152
- package/languages/utils.js +40 -3
- package/mcp/server.js +254 -636
- package/package.json +39 -22
- package/eslint.config.js +0 -43
- package/jsconfig.json +0 -10
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ucn",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"mcpName": "io.github.mleoca/ucn",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Auditable AST code intelligence for AI agents: 18 task-oriented commands through one MCP tool, CLI, or agent skill. Supports JS/TS, Python, Go, Rust, Java, C, C++, C#, and HTML.",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"ucn": "cli/index.js",
|
|
@@ -10,19 +10,27 @@
|
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"version": "node scripts/sync-server-version.js && git add server.json",
|
|
13
|
-
"test": "node --test test/parser-unit.test.js test/integration.test.js test/cache.test.js test/formatter.test.js test/interactive.test.js test/feature.test.js test/regression-js.test.js test/regression-py.test.js test/regression-go.test.js test/regression-java.test.js test/regression-rust.test.js test/regression-cross.test.js test/regression-mcp.test.js test/regression-parser.test.js test/regression-commands.test.js test/regression-fixes.test.js test/regression-bugfixes.test.js test/cross-language.test.js test/accuracy.test.js test/command-coverage.test.js test/perf-optimizations.test.js test/performance-gate-policy.test.js test/oracle-gate-policy.test.js test/systematic-test.js test/mcp-edge-cases.js test/conservation.test.js test/parity-test.js test/trust-matrix.test.js",
|
|
14
|
-
"benchmark:agent": "node test/agent-
|
|
13
|
+
"test": "node --test test/parser-unit.test.js test/integration.test.js test/cache.test.js test/formatter.test.js test/interactive.test.js test/feature.test.js test/regression-js.test.js test/regression-py.test.js test/regression-go.test.js test/regression-java.test.js test/regression-rust.test.js test/regression-c-family.test.js test/regression-cross.test.js test/regression-mcp.test.js test/regression-parser.test.js test/regression-commands.test.js test/regression-fixes.test.js test/regression-bugfixes.test.js test/release-surface-regressions.test.js test/prerelease-audit.test.js test/release-readiness-audit.test.js test/cross-language.test.js test/accuracy.test.js test/command-coverage.test.js test/perf-optimizations.test.js test/performance-gate-policy.test.js test/oracle-gate-policy.test.js test/consistency-eval.test.js test/agent-public-surface-benchmark.test.js test/command-contracts.test.js test/language-adapter.test.js test/systematic-test.js test/mcp-edge-cases.js test/conservation.test.js test/parity-test.js test/trust-matrix.test.js",
|
|
14
|
+
"benchmark:agent": "node test/agent-public-surface-benchmark.js",
|
|
15
|
+
"benchmark:agent:gate": "node test/agent-public-surface-benchmark.js --gate",
|
|
16
|
+
"benchmark:agent:legacy": "node test/agent-understanding-benchmark.js",
|
|
15
17
|
"eval:conservation": "node eval/conservation-real.js",
|
|
16
18
|
"eval:oracle": "node eval/run-oracle-eval.js",
|
|
17
19
|
"eval:deadcode": "node eval/run-deadcode-eval.js",
|
|
18
20
|
"eval:performance": "node --expose-gc eval/run-performance-gate.js",
|
|
19
|
-
"
|
|
21
|
+
"eval:host-calibration": "node eval/lib/host-calibration.js --pin",
|
|
22
|
+
"eval:consistency": "node eval/run-consistency-eval.js --project .",
|
|
23
|
+
"profile:callers": "node eval/profile-callers.js",
|
|
24
|
+
"lint": "eslint core/ cli/ mcp/ languages/ eval/run-*.js eval/*-gate-policy.js eval/profile-callers.js eval/oracles/*.js",
|
|
20
25
|
"verify": "npm run lint && npm test",
|
|
21
26
|
"trust:gate:semantic": "node eval/run-oracle-eval.js --release --min-precision 0.98 --max-unscored-ratio 0.10",
|
|
22
27
|
"trust:gate:deadcode": "node eval/run-deadcode-eval.js --release --sample 100 --arm default",
|
|
23
|
-
"trust:gate:performance": "node --expose-gc eval/run-performance-gate.js --release --queries 40",
|
|
24
|
-
"trust:gate:
|
|
25
|
-
"trust:gate": "
|
|
28
|
+
"trust:gate:performance": "UCN_WORKERS=4 node --expose-gc eval/run-performance-gate.js --release --queries 40",
|
|
29
|
+
"trust:gate:performance:pr": "UCN_WORKERS=4 node --expose-gc eval/run-performance-gate.js --repo cjson,fmt --samples 3 --queries 40 --require-wall-throughput",
|
|
30
|
+
"trust:gate:consistency": "node eval/run-consistency-eval.js --release --sample 40",
|
|
31
|
+
"trust:gate:agent": "node test/agent-public-surface-benchmark.js --gate",
|
|
32
|
+
"trust:gate:fast": "node --expose-gc eval/run-performance-gate.js --repo preact-signals,httpx --queries 20 && node eval/run-oracle-eval.js --repo preact-signals,httpx --min-precision 0.98 && node eval/run-consistency-eval.js --repo preact-signals,httpx --sample 20 --gate",
|
|
33
|
+
"trust:gate": "npm run trust:gate:performance && npm run trust:gate:semantic && npm run trust:gate:deadcode && npm run trust:gate:consistency && npm run trust:gate:agent"
|
|
26
34
|
},
|
|
27
35
|
"keywords": [
|
|
28
36
|
"mcp",
|
|
@@ -58,7 +66,11 @@
|
|
|
58
66
|
"python",
|
|
59
67
|
"go",
|
|
60
68
|
"rust",
|
|
61
|
-
"java"
|
|
69
|
+
"java",
|
|
70
|
+
"c",
|
|
71
|
+
"c++",
|
|
72
|
+
"csharp",
|
|
73
|
+
"html"
|
|
62
74
|
],
|
|
63
75
|
"author": "Constantin-Mihail Leoca (https://github.com/mleoca)",
|
|
64
76
|
"repository": {
|
|
@@ -71,24 +83,29 @@
|
|
|
71
83
|
"node": ">=20"
|
|
72
84
|
},
|
|
73
85
|
"dependencies": {
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"tree-sitter
|
|
77
|
-
"tree-sitter-
|
|
78
|
-
"tree-sitter-
|
|
79
|
-
"tree-sitter-
|
|
80
|
-
"tree-sitter-
|
|
81
|
-
"tree-sitter-
|
|
86
|
+
"re2js": "2.8.6",
|
|
87
|
+
"safe-regex2": "5.1.1",
|
|
88
|
+
"tree-sitter": "0.21.1",
|
|
89
|
+
"tree-sitter-c": "0.23.2",
|
|
90
|
+
"tree-sitter-c-sharp": "0.23.1",
|
|
91
|
+
"tree-sitter-cpp": "0.23.4",
|
|
92
|
+
"tree-sitter-go": "0.23.4",
|
|
93
|
+
"tree-sitter-html": "0.23.2",
|
|
94
|
+
"tree-sitter-java": "0.23.5",
|
|
95
|
+
"tree-sitter-javascript": "0.23.1",
|
|
96
|
+
"tree-sitter-python": "0.23.4",
|
|
97
|
+
"tree-sitter-rust": "0.23.1",
|
|
98
|
+
"tree-sitter-typescript": "0.23.2"
|
|
82
99
|
},
|
|
83
100
|
"optionalDependencies": {
|
|
84
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
85
|
-
"zod": "^
|
|
101
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
102
|
+
"zod": "^4.4.3"
|
|
86
103
|
},
|
|
87
104
|
"devDependencies": {
|
|
88
105
|
"@eslint/js": "^10.0.1",
|
|
89
|
-
"eslint": "^10.
|
|
90
|
-
"pyright": "1.1.
|
|
106
|
+
"eslint": "^10.8.1",
|
|
107
|
+
"pyright": "1.1.411",
|
|
91
108
|
"ts-morph": "^28.0.0",
|
|
92
|
-
"typescript": "^
|
|
109
|
+
"typescript": "^7.0.2"
|
|
93
110
|
}
|
|
94
111
|
}
|
package/eslint.config.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const js = require('@eslint/js');
|
|
4
|
-
|
|
5
|
-
module.exports = [
|
|
6
|
-
js.configs.recommended,
|
|
7
|
-
{
|
|
8
|
-
languageOptions: {
|
|
9
|
-
ecmaVersion: 'latest',
|
|
10
|
-
sourceType: 'commonjs',
|
|
11
|
-
globals: {
|
|
12
|
-
// Node.js globals
|
|
13
|
-
require: 'readonly',
|
|
14
|
-
module: 'readonly',
|
|
15
|
-
exports: 'readonly',
|
|
16
|
-
__dirname: 'readonly',
|
|
17
|
-
__filename: 'readonly',
|
|
18
|
-
process: 'readonly',
|
|
19
|
-
console: 'readonly',
|
|
20
|
-
Buffer: 'readonly',
|
|
21
|
-
setTimeout: 'readonly',
|
|
22
|
-
setInterval: 'readonly',
|
|
23
|
-
clearTimeout: 'readonly',
|
|
24
|
-
clearInterval: 'readonly',
|
|
25
|
-
setImmediate: 'readonly',
|
|
26
|
-
URL: 'readonly',
|
|
27
|
-
URLSearchParams: 'readonly',
|
|
28
|
-
TextEncoder: 'readonly',
|
|
29
|
-
TextDecoder: 'readonly',
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
rules: {
|
|
33
|
-
'no-undef': 'error',
|
|
34
|
-
'no-unused-vars': ['warn', { args: 'none', caughtErrors: 'none', ignoreRestSiblings: true }],
|
|
35
|
-
'no-redeclare': 'error',
|
|
36
|
-
'eqeqeq': ['warn', 'smart'],
|
|
37
|
-
'no-constant-condition': ['error', { checkLoops: false }],
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
ignores: ['node_modules/', 'test/', '.ucn-cache/', 'demo/'],
|
|
42
|
-
},
|
|
43
|
-
];
|