@kernlang/core 3.4.3-canary.9.1.62aecb74 → 3.4.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.
@@ -26,7 +26,7 @@
26
26
  * - 2a: Text upper/lower/length/trim
27
27
  * - 2b: Text+ (includes, startsWith, endsWith, split, replace);
28
28
  * List (length, isEmpty, includes, first, last, indexOf, join);
29
- * Map (has, get, size); Number (round, floor, ceil, abs).
29
+ * Map (has, get, size); Number (round, floor, ceil, abs, isFinite, isNaN).
30
30
  * Future slices may extend further (List.map / List.filter need closures,
31
31
  * so they're deferred until closure support — currently never).
32
32
  *
@@ -26,7 +26,7 @@
26
26
  * - 2a: Text upper/lower/length/trim
27
27
  * - 2b: Text+ (includes, startsWith, endsWith, split, replace);
28
28
  * List (length, isEmpty, includes, first, last, indexOf, join);
29
- * Map (has, get, size); Number (round, floor, ceil, abs).
29
+ * Map (has, get, size); Number (round, floor, ceil, abs, isFinite, isNaN).
30
30
  * Future slices may extend further (List.map / List.filter need closures,
31
31
  * so they're deferred until closure support — currently never).
32
32
  *
@@ -90,6 +90,17 @@ export const KERN_STDLIB = {
90
90
  floor: { arity: 1, ts: 'Math.floor($0)', py: '__k_math.floor($0)', requires: { py: 'math' } },
91
91
  ceil: { arity: 1, ts: 'Math.ceil($0)', py: '__k_math.ceil($0)', requires: { py: 'math' } },
92
92
  abs: { arity: 1, ts: 'Math.abs($0)', py: 'abs($0)' },
93
+ // `Number.isFinite($0)` returns false for NaN, +∞, -∞ on both targets.
94
+ // The TS lowering uses `Number.isFinite` (NOT the global `isFinite`) so
95
+ // non-number arguments deterministically return false rather than being
96
+ // coerced. Python's `math.isfinite` matches that semantic on float inputs;
97
+ // KERN's type system rejects non-number arguments at AST validation, so
98
+ // Python's `TypeError` on non-numerics is unreachable from typed bodies.
99
+ isFinite: { arity: 1, ts: 'Number.isFinite($0)', py: '__k_math.isfinite($0)', requires: { py: 'math' } },
100
+ // `Number.isNaN($0)` returns true ONLY for the NaN value itself (no
101
+ // coercion). Python's `math.isnan` matches that strict shape. Use `Number`
102
+ // (not the global `isNaN`) so the TS output is the strict, type-safe form.
103
+ isNaN: { arity: 1, ts: 'Number.isNaN($0)', py: '__k_math.isnan($0)', requires: { py: 'math' } },
93
104
  },
94
105
  };
95
106
  export const KERN_STDLIB_MODULES = new Set(Object.keys(KERN_STDLIB));
@@ -1 +1 @@
1
- {"version":3,"file":"kern-stdlib.js","sourceRoot":"","sources":["../../src/codegen/kern-stdlib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kern-stdlib.js","sourceRoot":"","sources":["../../src/codegen/kern-stdlib.ts"],"names":[],"mappings":"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"}
@@ -169,6 +169,26 @@ export interface EffectPayload {
169
169
  * the server-side `bodyFieldsResolved` are true.
170
170
  */
171
171
  sentFieldsResolved?: boolean;
172
+ /**
173
+ * For `network` subtype only — coarse type tag per `sentFields` entry.
174
+ * Same key set as `sentFields`. Each tag is one of:
175
+ * - `'string' | 'number' | 'boolean' | 'null'` — primitive literals
176
+ * - `'object' | 'array'` — nested structured values
177
+ * - `'unknown'` — value position present but type couldn't be inferred
178
+ * (fallback so the key isn't silently dropped from the type map)
179
+ *
180
+ * The tag is intentionally coarse — no string-literal narrowing
181
+ * (`'admin' | 'user'`), no nested object shape, no generics. Powers
182
+ * cross-stack rules that want "names + types match" precision (e.g.
183
+ * `body-shape-drift` upgrading from "name overlap" to "name + type
184
+ * overlap"). Without this every `userId: string` (client) would silently
185
+ * "match" a `userId: number` (server) just because the names overlap.
186
+ *
187
+ * Populated only when `sentFieldsResolved === true`. Field-set is a
188
+ * subset of `sentFields` (we never emit a tag for a field name that
189
+ * isn't already in the names list).
190
+ */
191
+ sentFieldTypes?: Readonly<Record<string, 'string' | 'number' | 'boolean' | 'null' | 'object' | 'array' | 'unknown'>>;
172
192
  /**
173
193
  * For `network` subtype only. `true` when the call-site has a local error
174
194
  * path (try/catch, `.catch`, `response.ok`/status check, or known error UI);
@@ -1 +1 @@
1
- {"version":3,"file":"concepts.js","sourceRoot":"","sources":["../src/concepts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuVH,4EAA4E;AAE5E,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAY,EAAE,MAAc;IACtE,OAAO,GAAG,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,OAAgB,EAChB,MAAe;IAEf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"concepts.js","sourceRoot":"","sources":["../src/concepts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2WH,4EAA4E;AAE5E,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAY,EAAE,MAAc;IACtE,OAAO,GAAG,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,OAAgB,EAChB,MAAe;IAEf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC;AAClG,CAAC"}
@@ -1,20 +1,20 @@
1
1
  /** Native KERN handler body eligibility classifier — slice 5a foundation
2
- * (slice α-3 update: now delegates to the AST walker in
3
- * `native-eligibility-ast.ts`).
2
+ * (slice α-3 update: delegates to the AST walker in
3
+ * `native-eligibility-ast.ts`; slice α-4: diagnostic surfaces at `warning`).
4
4
  *
5
5
  * Given a raw `<<<...>>>` handler body, determines whether it could compile
6
6
  * under `lang="kern"` opt-in WITHOUT manual rewrite. Used by:
7
7
  *
8
8
  * 1. The compiler diagnostic layer (`parser-validate-native-eligible.ts`)
9
- * to surface `info`-level `NATIVE_KERN_ELIGIBLE` hints suggesting opt-in.
9
+ * to surface `warning`-level `NATIVE_KERN_ELIGIBLE` hints suggesting opt-in.
10
10
  * 2. The `kern migrate native-handlers` CLI (slice 5b) to bulk-convert.
11
11
  * 3. Empirical scans of real-world repos (e.g. Agon-AI) to measure the
12
12
  * practical adoption ceiling for native bodies.
13
13
  *
14
14
  * Slice α-3: replaced the regex pre-screen with a TS-AST walk that mirrors
15
15
  * the migrator's `mapStatement` rules. Eligibility now equals migrate-success
16
- * by construction, which is the prerequisite for graduating the
17
- * `NATIVE_KERN_ELIGIBLE` diagnostic from `info` to `warn` without producing
16
+ * by construction the prerequisite for slice α-4's promotion of
17
+ * `NATIVE_KERN_ELIGIBLE` from `info` to `warning` without producing
18
18
  * fix-or-suppress noise on bodies the migrator silently bails on.
19
19
  *
20
20
  * The legacy regex disqualifier set lives at `LEGACY_NEG_PATTERNS` for
@@ -1,20 +1,20 @@
1
1
  /** Native KERN handler body eligibility classifier — slice 5a foundation
2
- * (slice α-3 update: now delegates to the AST walker in
3
- * `native-eligibility-ast.ts`).
2
+ * (slice α-3 update: delegates to the AST walker in
3
+ * `native-eligibility-ast.ts`; slice α-4: diagnostic surfaces at `warning`).
4
4
  *
5
5
  * Given a raw `<<<...>>>` handler body, determines whether it could compile
6
6
  * under `lang="kern"` opt-in WITHOUT manual rewrite. Used by:
7
7
  *
8
8
  * 1. The compiler diagnostic layer (`parser-validate-native-eligible.ts`)
9
- * to surface `info`-level `NATIVE_KERN_ELIGIBLE` hints suggesting opt-in.
9
+ * to surface `warning`-level `NATIVE_KERN_ELIGIBLE` hints suggesting opt-in.
10
10
  * 2. The `kern migrate native-handlers` CLI (slice 5b) to bulk-convert.
11
11
  * 3. Empirical scans of real-world repos (e.g. Agon-AI) to measure the
12
12
  * practical adoption ceiling for native bodies.
13
13
  *
14
14
  * Slice α-3: replaced the regex pre-screen with a TS-AST walk that mirrors
15
15
  * the migrator's `mapStatement` rules. Eligibility now equals migrate-success
16
- * by construction, which is the prerequisite for graduating the
17
- * `NATIVE_KERN_ELIGIBLE` diagnostic from `info` to `warn` without producing
16
+ * by construction the prerequisite for slice α-4's promotion of
17
+ * `NATIVE_KERN_ELIGIBLE` from `info` to `warning` without producing
18
18
  * fix-or-suppress noise on bodies the migrator silently bails on.
19
19
  *
20
20
  * The legacy regex disqualifier set lives at `LEGACY_NEG_PATTERNS` for
@@ -1,15 +1,20 @@
1
- /** @internal Native KERN body eligibility hint — slice 5a.
1
+ /** @internal Native KERN body eligibility hint — slice 5a (slice α-4: warn).
2
2
  *
3
- * Walks the parsed tree and emits an `info`-severity `NATIVE_KERN_ELIGIBLE`
3
+ * Walks the parsed tree and emits a `warning`-severity `NATIVE_KERN_ELIGIBLE`
4
4
  * diagnostic on every `handler` node that:
5
5
  * - has a raw `<<<…>>>` body (`props.code` is a string), AND
6
6
  * - is NOT already opted in via `lang="kern"`, AND
7
7
  * - the raw body passes the `classifyHandlerBody` heuristic.
8
8
  *
9
- * Severity is `info` to keep the diagnostic non-blocking — existing tooling
10
- * (CI, IDE error counters) does not need to be tuned. The message points
11
- * users toward the manual rewrite today; once slice 5b's `kern migrate
12
- * native-handlers` lands, the suggestion will mention the bulk command.
9
+ * Slice α-4: severity promoted from `info` `warning`. After slice α-3 made
10
+ * classifier eligibility migrator success by construction, every emitted
11
+ * hint is actionable running `kern migrate native-handlers --write` will
12
+ * rewrite the body to `lang="kern"` and the diagnostic disappears. The warn
13
+ * level is the durable gate for review: handlers that could be native KERN
14
+ * IR but aren't are visible noise until migrated, which is the desired
15
+ * pressure for "full KERN" adoption. Consumers that want the old quiet
16
+ * behaviour (`kern review`, `kern import`, the CLI build summary) still
17
+ * filter the code out at the consumer site.
13
18
  */
14
19
  import { type ParseState } from './parser-diagnostics.js';
15
20
  import type { IRNode, ParseDiagnostic } from './types.js';
@@ -1,15 +1,20 @@
1
- /** @internal Native KERN body eligibility hint — slice 5a.
1
+ /** @internal Native KERN body eligibility hint — slice 5a (slice α-4: warn).
2
2
  *
3
- * Walks the parsed tree and emits an `info`-severity `NATIVE_KERN_ELIGIBLE`
3
+ * Walks the parsed tree and emits a `warning`-severity `NATIVE_KERN_ELIGIBLE`
4
4
  * diagnostic on every `handler` node that:
5
5
  * - has a raw `<<<…>>>` body (`props.code` is a string), AND
6
6
  * - is NOT already opted in via `lang="kern"`, AND
7
7
  * - the raw body passes the `classifyHandlerBody` heuristic.
8
8
  *
9
- * Severity is `info` to keep the diagnostic non-blocking — existing tooling
10
- * (CI, IDE error counters) does not need to be tuned. The message points
11
- * users toward the manual rewrite today; once slice 5b's `kern migrate
12
- * native-handlers` lands, the suggestion will mention the bulk command.
9
+ * Slice α-4: severity promoted from `info` `warning`. After slice α-3 made
10
+ * classifier eligibility migrator success by construction, every emitted
11
+ * hint is actionable running `kern migrate native-handlers --write` will
12
+ * rewrite the body to `lang="kern"` and the diagnostic disappears. The warn
13
+ * level is the durable gate for review: handlers that could be native KERN
14
+ * IR but aren't are visible noise until migrated, which is the desired
15
+ * pressure for "full KERN" adoption. Consumers that want the old quiet
16
+ * behaviour (`kern review`, `kern import`, the CLI build summary) still
17
+ * filter the code out at the consumer site.
13
18
  */
14
19
  import { classifyHandlerBody } from './native-eligibility.js';
15
20
  import { createParseState, emitDiagnostic } from './parser-diagnostics.js';
@@ -34,7 +39,7 @@ function walk(state, node) {
34
39
  const result = classifyHandlerBody(code);
35
40
  if (result.eligible) {
36
41
  const loc = node.loc ?? { line: 1, col: 1, endCol: 2 };
37
- emitDiagnostic(state, 'NATIVE_KERN_ELIGIBLE', 'info', 'This handler body uses only patterns supported by `lang="kern"` — opt in for native cross-target validation.', loc.line, loc.col, { endCol: loc.endCol ?? loc.col + 1 });
42
+ emitDiagnostic(state, 'NATIVE_KERN_ELIGIBLE', 'warning', 'This handler body uses only patterns supported by `lang="kern"` — opt in for native cross-target validation. Run `kern migrate native-handlers --write` to bulk-rewrite eligible bodies.', loc.line, loc.col, { endCol: loc.endCol ?? loc.col + 1 });
38
43
  }
39
44
  }
40
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parser-validate-native-eligible.js","sourceRoot":"","sources":["../src/parser-validate-native-eligible.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAmB,MAAM,yBAAyB,CAAC;AAG5F,MAAM,UAAU,sBAAsB,CAAC,KAAiB,EAAE,IAAY;IACpE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC;AAED;;;gEAGgE;AAChE,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B,CAAC;AAED,SAAS,IAAI,CAAC,KAAiB,EAAE,IAAY;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBACvD,cAAc,CACZ,KAAK,EACL,sBAAsB,EACtB,MAAM,EACN,8GAA8G,EAC9G,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,GAAG,EACP,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CACtC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"parser-validate-native-eligible.js","sourceRoot":"","sources":["../src/parser-validate-native-eligible.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAmB,MAAM,yBAAyB,CAAC;AAG5F,MAAM,UAAU,sBAAsB,CAAC,KAAiB,EAAE,IAAY;IACpE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpB,CAAC;AAED;;;gEAGgE;AAChE,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B,CAAC;AAED,SAAS,IAAI,CAAC,KAAiB,EAAE,IAAY;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBACvD,cAAc,CACZ,KAAK,EACL,sBAAsB,EACtB,SAAS,EACT,0LAA0L,EAC1L,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,GAAG,EACP,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CACtC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC"}
package/dist/spec.d.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * Meta: theme nodes ($ref), pseudo-selectors (:press, :hover)
10
10
  * Targets: Next.js, React+Tailwind, React Native, Express
11
11
  */
12
- export declare const KERN_VERSION = "3.4.3-canary.9.1.62aecb74";
12
+ export declare const KERN_VERSION = "3.4.3";
13
13
  export declare const IR_GRAMMAR = "\ndocument = node+\nnode = indent type (SP prop)* (SP style)? (SP themeref)* NL child*\nchild = node\nindent = \" \"*\ntype = ident\nprop = ident \"=\" value\nvalue = quoted | bare\nquoted = '\"' [^\"]* '\"'\nbare = [^\\s{$]+\nstyle = \"{\" spair (\",\" spair)* \"}\"\nspair = sident \":\" svalue | \":\" pseudo \":\" sident \":\" svalue\npseudo = \"press\" | \"hover\" | \"active\" | \"focus\"\nsident = shorthand | ident\nsvalue = [^,}]+\nthemeref = \"$\" ident\nident = [A-Za-z_][A-Za-z0-9_-]*\nSP = \" \"+\nNL = \"\\n\" | EOF\n";
14
14
  export declare const NODE_TYPES: readonly ["screen", "page", "row", "col", "card", "grid", "scroll", "text", "image", "progress", "divider", "codeblock", "section", "form", "button", "input", "textarea", "slider", "toggle", "modal", "list", "item", "tabs", "tab", "header", "link", "theme", "doc", "server", "route", "middleware", "handler", "schema", "stream", "spawn", "timer", "on", "env", "websocket", "params", "auth", "validate", "respond", "trigger", "cli", "command", "arg", "flag", "import", "separator", "table", "thead", "tbody", "tr", "th", "td", "scoreboard", "metric", "spinner", "box", "gradient", "state", "animation", "repl", "guard", "parallel", "dispatch", "then", "each", "let", "local", "return", "throw", "if", "layout", "loading", "metadata", "generateMetadata", "notFound", "redirect", "fetch", "type", "interface", "field", "fn", "const", "destructure", "binding", "element", "mapLit", "mapEntry", "setLit", "setItem", "enum", "member", "union", "variant", "indexer", "overload", "service", "class", "method", "getter", "setter", "singleton", "constructor", "signal", "cleanup", "machine", "transition", "error", "module", "export", "use", "from", "config", "store", "test", "describe", "it", "event", "hook", "provider", "effect", "logic", "memo", "callback", "ref", "context", "prop", "returns", "render", "input-area", "output-area", "text-input", "select-input", "multi-select", "confirm-input", "password-input", "status-message", "alert", "ordered-list", "unordered-list", "focus", "app-exit", "static-log", "newline", "layout-row", "layout-col", "layout-stack", "spacer", "screen-embed", "alternate-screen", "scroll-box", "model", "column", "relation", "repository", "dependency", "inject", "cache", "entry", "invalidate", "conditional", "else", "elseif", "component", "select", "option", "group", "icon", "svg", "template", "slot", "body", "derive", "fmt", "set", "async", "try", "step", "catch", "filter", "find", "some", "every", "findIndex", "reduce", "map", "flatMap", "flat", "slice", "at", "sort", "reverse", "join", "includes", "indexOf", "lastIndexOf", "concat", "forEach", "compact", "pluck", "unique", "uniqueBy", "groupBy", "partition", "indexBy", "countBy", "chunk", "zip", "range", "take", "drop", "min", "max", "minBy", "maxBy", "sum", "sumBy", "avg", "intersect", "findLast", "findLastIndex", "transform", "action", "actionRegistry", "assume", "invariant", "branch", "path", "resolve", "candidate", "discriminator", "collect", "pattern", "apply", "expect", "recover", "strategy", "reason", "evidence", "needs", "rule", "message", "mcp", "tool", "resource", "prompt", "param", "description", "sampling", "elicitation"];
15
15
  export type IRNodeType = (typeof NODE_TYPES)[number];
package/dist/spec.js CHANGED
@@ -9,7 +9,7 @@
9
9
  * Meta: theme nodes ($ref), pseudo-selectors (:press, :hover)
10
10
  * Targets: Next.js, React+Tailwind, React Native, Express
11
11
  */
12
- export const KERN_VERSION = '3.4.3-canary.9.1.62aecb74';
12
+ export const KERN_VERSION = '3.4.3';
13
13
  // ── Grammar ─────────────────────────────────────────────────────────────
14
14
  export const IR_GRAMMAR = `
15
15
  document = node+
package/dist/spec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernlang/core",
3
- "version": "3.4.3-canary.9.1.62aecb74",
3
+ "version": "3.4.3",
4
4
  "description": "Kern core — parser, types, spec, config, style engines, codegen",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",