@kernlang/cli 3.5.8 → 3.5.9-canary.213.1.07ba4c76

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.
@@ -15,4 +15,14 @@ export interface ContextOptions {
15
15
  * it reads — returned for direct use and so the CLI wrapper stays a thin shell.
16
16
  */
17
17
  export declare function buildContextJson(paths: string[], opts?: ContextOptions): ProjectContextGraph;
18
+ /**
19
+ * Build the compact, prompt-ready `<kern-map>` spine for a set of entry paths —
20
+ * the whole-project context an LLM/agent drops straight into a prompt. Scopes to
21
+ * every file in the artifact (the whole project) and fits `spineBudget` tokens
22
+ * (default {@link DEFAULT_SPINE_TOKENS}), degrading through tiers when the
23
+ * project is large. Returns '' when there are no exported symbols to surface.
24
+ */
25
+ export declare function buildContextSpine(paths: string[], opts?: ContextOptions & {
26
+ spineBudget?: number;
27
+ }): string;
18
28
  export declare function runContext(args: string[]): void;
@@ -13,10 +13,12 @@
13
13
  * kern context src/ --out map.json
14
14
  * kern context src/ --stdout # print JSON to stdout instead of a file
15
15
  * kern context src/ --max-depth 12
16
+ * kern context src/ --spine --stdout # compact <kern-map> for a prompt
17
+ * kern context src/ --spine --spine-budget 3000 # cap the spine at 3000 tokens
16
18
  */
17
19
  import { existsSync, readdirSync, statSync, writeFileSync } from 'node:fs';
18
20
  import { basename, join, relative, resolve } from 'node:path';
19
- import { buildCallGraph, buildContextArtifact, resolveImportGraph, } from '@kernlang/review';
21
+ import { buildCallGraph, buildContextArtifact, buildSpine, resolveImportGraph, } from '@kernlang/review';
20
22
  import { hasFlag, parseFlagOrNext } from '../shared.js';
21
23
  const SKIP_DIRS = new Set([
22
24
  'node_modules',
@@ -31,7 +33,7 @@ const SKIP_DIRS = new Set([
31
33
  ]);
32
34
  const SOURCE_EXTS = ['.ts', '.tsx', '.mts', '.cts'];
33
35
  /** Flags that consume the following token as their value (so it isn't a path). */
34
- const VALUE_FLAGS = new Set(['--out', '--max-depth', '--base']);
36
+ const VALUE_FLAGS = new Set(['--out', '--max-depth', '--base', '--spine-budget']);
35
37
  /** Recursively collect source files under the given paths (files pass through). */
36
38
  export function collectSourceFiles(paths) {
37
39
  const out = [];
@@ -74,6 +76,20 @@ export function buildContextJson(paths, opts = {}) {
74
76
  const artifact = buildContextArtifact(graph, callGraph);
75
77
  return opts.base ? relativizeArtifact(artifact, opts.base) : artifact;
76
78
  }
79
+ /**
80
+ * Build the compact, prompt-ready `<kern-map>` spine for a set of entry paths —
81
+ * the whole-project context an LLM/agent drops straight into a prompt. Scopes to
82
+ * every file in the artifact (the whole project) and fits `spineBudget` tokens
83
+ * (default {@link DEFAULT_SPINE_TOKENS}), degrading through tiers when the
84
+ * project is large. Returns '' when there are no exported symbols to surface.
85
+ */
86
+ export function buildContextSpine(paths, opts = {}) {
87
+ const artifact = buildContextJson(paths, opts);
88
+ return buildSpine(artifact, {
89
+ batchFiles: artifact.files.map((f) => f.path),
90
+ tokenBudget: opts.spineBudget,
91
+ });
92
+ }
77
93
  /** Rewrite all paths (files, imports, use-sites) relative to `base`. */
78
94
  function relativizeArtifact(a, base) {
79
95
  const rel = (p) => relative(base, p) || '.';
@@ -106,10 +122,24 @@ export function runContext(args) {
106
122
  const maxDepth = Number(parseFlagOrNext(rest, '--max-depth') ?? 8);
107
123
  // Portable (relative) paths by default; --absolute keeps machine paths.
108
124
  const base = hasFlag(rest, '--absolute') ? undefined : (parseFlagOrNext(rest, '--base') ?? process.cwd());
109
- const artifact = buildContextJson(paths, {
110
- maxDepth: Number.isFinite(maxDepth) ? maxDepth : 8,
111
- base,
112
- });
125
+ const ctxOpts = { maxDepth: Number.isFinite(maxDepth) ? maxDepth : 8, base };
126
+ // --spine: emit the compact, prompt-ready <kern-map> spine instead of the JSON
127
+ // artifact — the form an LLM/agent drops straight into a prompt. --spine-budget
128
+ // caps it (tokens); default DEFAULT_SPINE_TOKENS, degrading through tiers.
129
+ if (hasFlag(rest, '--spine')) {
130
+ const budgetArg = parseFlagOrNext(rest, '--spine-budget');
131
+ const spineBudget = budgetArg !== undefined && Number.isFinite(Number(budgetArg)) ? Number(budgetArg) : undefined;
132
+ const spine = buildContextSpine(paths, { ...ctxOpts, spineBudget });
133
+ if (hasFlag(rest, '--stdout')) {
134
+ console.log(spine);
135
+ return;
136
+ }
137
+ const spineOut = parseFlagOrNext(rest, '--out') ?? 'kern-context.spine.txt';
138
+ writeFileSync(spineOut, spine);
139
+ console.log(`kern context: <kern-map> spine (${spine.length} chars) → ${spineOut}`);
140
+ return;
141
+ }
142
+ const artifact = buildContextJson(paths, ctxOpts);
113
143
  const json = JSON.stringify(artifact, null, 2);
114
144
  if (hasFlag(rest, '--stdout')) {
115
145
  console.log(json);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
package/dist/shared.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { IRNode, KernTarget, ParseDiagnostic, ResolvedKernConfig, SchemaViolation, ShadowAnalyzeOptions, ShadowDiagnostic } from '@kernlang/core';
2
- export declare const GENERATED_HEADER = "// @generated by kern v3.5.8 \u2014 DO NOT EDIT. Source: ";
2
+ export declare const GENERATED_HEADER = "// @generated by kern v3.5.9-canary.213.1.07ba4c76 \u2014 DO NOT EDIT. Source: ";
3
3
  export declare function parseCompilerVersion(version: string): [number, number, number] | null;
4
4
  /**
5
5
  * Check the existing output file's @generated stamp against the current compiler version.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernlang/cli",
3
- "version": "3.5.8",
3
+ "version": "3.5.9-canary.213.1.07ba4c76",
4
4
  "description": "KERN CLI — transpile, compile, minify, and analyze .kern files",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,21 +29,21 @@
29
29
  "chokidar": "^5.0.0",
30
30
  "jiti": "^2.7.0",
31
31
  "typescript": "^6.0.3",
32
- "@kernlang/codemod": "3.5.8",
33
- "@kernlang/core": "3.5.8",
34
- "@kernlang/go": "3.5.8",
35
- "@kernlang/python": "3.5.8",
36
- "@kernlang/express": "3.5.8",
37
- "@kernlang/evolve": "3.5.8",
38
- "@kernlang/mcp": "3.5.8",
39
- "@kernlang/metrics": "3.5.8",
40
- "@kernlang/native": "3.5.8",
41
- "@kernlang/review": "3.5.8",
42
- "@kernlang/review-mcp": "3.5.8",
43
- "@kernlang/react": "3.5.8",
44
- "@kernlang/test": "3.5.8",
45
- "@kernlang/vue": "3.5.8",
46
- "@kernlang/terminal": "3.5.8"
32
+ "@kernlang/codemod": "3.5.9-canary.213.1.07ba4c76",
33
+ "@kernlang/core": "3.5.9-canary.213.1.07ba4c76",
34
+ "@kernlang/python": "3.5.9-canary.213.1.07ba4c76",
35
+ "@kernlang/evolve": "3.5.9-canary.213.1.07ba4c76",
36
+ "@kernlang/go": "3.5.9-canary.213.1.07ba4c76",
37
+ "@kernlang/mcp": "3.5.9-canary.213.1.07ba4c76",
38
+ "@kernlang/metrics": "3.5.9-canary.213.1.07ba4c76",
39
+ "@kernlang/native": "3.5.9-canary.213.1.07ba4c76",
40
+ "@kernlang/express": "3.5.9-canary.213.1.07ba4c76",
41
+ "@kernlang/review": "3.5.9-canary.213.1.07ba4c76",
42
+ "@kernlang/react": "3.5.9-canary.213.1.07ba4c76",
43
+ "@kernlang/review-mcp": "3.5.9-canary.213.1.07ba4c76",
44
+ "@kernlang/test": "3.5.9-canary.213.1.07ba4c76",
45
+ "@kernlang/terminal": "3.5.9-canary.213.1.07ba4c76",
46
+ "@kernlang/vue": "3.5.9-canary.213.1.07ba4c76"
47
47
  },
48
48
  "scripts": {
49
49
  "build": "tsc -b",