ucn 5.2.1 → 5.3.0

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/languages/rust.js CHANGED
@@ -820,6 +820,7 @@ function _processClass(node, types, processedRanges, lines, code) {
820
820
  typeName: implInfo.typeName,
821
821
  members: extractImplMembers(node, lines, implInfo.typeName),
822
822
  modifiers: [],
823
+ ...(implInfo.generics && { generics: implInfo.generics }),
823
824
  ...(derefTarget && { derefTarget }),
824
825
  ...(docstring && { docstring })
825
826
  });
package/mcp/server.js CHANGED
@@ -271,7 +271,7 @@ const INPUT_SHAPE = {
271
271
  include_exported: booleanParam('Include exported symbols in deadcode results'),
272
272
  include_decorated: booleanParam('Include decorated/annotated symbols in deadcode results'),
273
273
  calls_only: booleanParam('tests: retain direct calls and test-case matches only.'),
274
- max_lines: integerParam('source: maximum lines for large class-like declarations.', { exclusiveMinimum: 0, maximum: 1000000 }),
274
+ max_lines: integerParam('source: maximum lines per declaration; raw mode discloses any truncation.', { exclusiveMinimum: 0, maximum: 1000000 }),
275
275
  direction: stringParam('trace: callees/callers. deps: imports/importers/both.', { enum: ['callees', 'callers', 'imports', 'importers', 'both'] }),
276
276
  to: stringParam('trace with direction=callers: continue toward entry points.', { enum: ['entrypoints'] }),
277
277
  cycles: booleanParam('deps: report circular imports instead of a file graph.'),
@@ -280,6 +280,8 @@ const INPUT_SHAPE = {
280
280
  functions: booleanParam('repo stats: include per-function line counts sorted by size.'),
281
281
  hot: booleanParam('repo stats: include the top N most-called functions.'),
282
282
  diverse: booleanParam('show example: return representatives from distinct argument shapes.'),
283
+ lines: booleanParam('find/usages/search/show/impact: path:line:text listings without default row caps; explicit top/limit still apply. show accepts callers/callees sections, default callers. Tier tags follow a tab; accounting and notes follow as "# " lines. MCP transport budgets still apply and preserve accounting.'),
284
+ raw: booleanParam('source: code text without a header or line-number gutter, including full large classes. Notes follow as "# " lines; MCP transport budgets still apply.'),
283
285
  git: booleanParam('show summary: attach last-modified, author, and recent-change metadata.'),
284
286
  add_param: stringParam('Parameter name to add (plan command)'),
285
287
  remove_param: stringParam('Parameter name to remove (plan command)'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ucn",
3
- "version": "5.2.1",
3
+ "version": "5.3.0",
4
4
  "mcpName": "io.github.mleoca/ucn",
5
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",
@@ -10,7 +10,7 @@
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-c-family.test.js test/regression-cross.test.js test/regression-mcp.test.js test/mcp-protocol.test.js test/mcp-sdk-compat.test.js test/dependency-security.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/outcome-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",
13
+ "test": "node --test test/shell-output.test.js 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/mcp-protocol.test.js test/mcp-sdk-compat.test.js test/dependency-security.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/outcome-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
14
  "benchmark:agent": "node test/agent-public-surface-benchmark.js",
15
15
  "benchmark:agent:gate": "node test/agent-public-surface-benchmark.js --gate",
16
16
  "benchmark:agent:legacy": "node test/agent-understanding-benchmark.js",
package/assets/demo.svg DELETED
@@ -1,31 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 453" font-family="ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace" font-size="12">
2
- <!-- Terminal window -->
3
- <rect x="0.5" y="0.5" width="999" height="452" rx="10" fill="#0d1117" stroke="#30363d"/>
4
- <!-- Title bar -->
5
- <path d="M0.5 10.5 a10 10 0 0 1 10 -10 h979 a10 10 0 0 1 10 10 v23 h-999 z" fill="#161b22"/>
6
- <line x1="0.5" y1="34" x2="999.5" y2="34" stroke="#30363d"/>
7
- <circle cx="20" cy="17" r="6" fill="#ff5f57"/>
8
- <circle cx="40" cy="17" r="6" fill="#febc2e"/>
9
- <circle cx="60" cy="17" r="6" fill="#28c840"/>
10
- <text x="500" y="21" text-anchor="middle" fill="#8b949e" font-size="11.5">ucn - ripgrep @ 82313cf9 (pinned oracle commit) - output abridged</text>
11
- <!-- Session -->
12
- <g fill="#c9d1d9">
13
- <text x="24" y="62"><tspan fill="#8b949e">$ </tspan><tspan fill="#7ee787">ucn show Searcher.search_reader --sections=summary,callers --compact</tspan></text>
14
- <text x="24" y="100">SUMMARY</text>
15
- <text x="24" y="119">───────</text>
16
- <text x="24" y="138">pub search_reader&lt;M, R, S&gt;(&amp;mut self, matcher: M, read_from: R, write_to: S): Result&lt;(), S::Error&gt;</text>
17
- <text x="39" y="157">crates/searcher/src/searcher/mod.rs:727-765 (39 lines)</text>
18
- <text x="39" y="176">handle: crates/searcher/src/searcher/mod.rs:727:search_reader</text>
19
- <text x="39" y="195">"Execute a search over any implementation of `std::io::Read` and write"</text>
20
- <text x="24" y="233">CALLERS — CONFIRMED (123):</text>
21
- <text x="39" y="252">evidence: 2 exact-binding, 121 receiver-hint</text>
22
- <text x="39" y="271">[1] crates/core/search.rs:426 [search_reader]: searcher.search_reader(&amp;matcher, &amp;mut rdr, &amp;mut sink)?;</text>
23
- <text x="39" y="290">[4] crates/printer/src/json.rs:940 [binary_detection]: .search_reader(&amp;matcher, BINARY, printer.sink(&amp;matcher))</text>
24
- <text x="39" y="309">[11] crates/printer/src/standard.rs:1788 [reports_match]: .search_reader(&amp;matcher, SHERLOCK.as_bytes(), &amp;mut sink)</text>
25
- <text x="69" y="328" fill="#8b949e">… 120 more callers</text>
26
- <text x="24" y="366">ACCOUNT: "search_reader" occurs on 136 lines in 8 files: 123 confirmed, 1 unverified,</text>
27
- <text x="39" y="385">6 non-call, 6 other-target, 0 unaccounted</text>
28
- <text x="24" y="404">CONTRACT: literal-name text partition complete; semantic completeness is not claimed.</text>
29
- <text x="24" y="433"><tspan fill="#8b949e">$ </tspan><tspan fill="#c9d1d9">▍</tspan></text>
30
- </g>
31
- </svg>