@ngockhoale/ukit 3.1.8 → 3.1.9

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/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to UKit are documented here.
4
4
 
5
+ ## 3.1.9 - 2026-09-26
6
+
7
+ - **Checkpoint locked to `unic-decision` for all classes.** Owner decision: the single `unic-decision` model answers every decision (English, multilingual, unknown) — the provider swaps the backend (Lava/JEV) behind that name, so UKit no longer routes per-language. `checkpoints.{default,english,unknownLanguage}` all resolve to `unic-decision` in code + shipped config; `unic-decision-multilingual` removed from defaults (remains configurable via `decisionPlane.checkpoints` if ever needed). Endpoint config unchanged: `ukit decision` / `gatewayDecision.json` / `UKIT_DECISION_*` env.
8
+
5
9
  ## 3.1.8 - 2026-09-26
6
10
 
7
11
  - **Agent VM IR v2**: `PARALLEL` (bounded fan-out, `join:'all'`) and `TIMEOUT` (deadline wrapper, `onTimeout: fail|escalate`, 30-minute ceiling) opcodes added to `planCompiler` + `vmEngine`; fault-injection coverage for crash-between-fan-out-and-join, non-idempotent child recovery, duplicate delivery. v2 plans hash under a `v2:`-prefixed serialization; v1 hashes unchanged.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngockhoale/ukit",
3
- "version": "3.1.8",
3
+ "version": "3.1.9",
4
4
  "description": "Install/update an index-first AI workspace for Claude Code, OpenAI Codex and omp (Oh My Pi).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -295,16 +295,16 @@ export function buildDefaultRuntimeConfig(overrides = {}) {
295
295
  },
296
296
  // C52 M07: `unic-decision` is the owner's local non-LLM Lava/JEV model in
297
297
  // UNIC Provider. Its OpenAI-compatible API is transport only, not proof of
298
- // remote hosting or generative-LLM billing. Prefer bounded typed decisions
299
- // when staged on; all stages currently ship 'off' (no decision request),
300
- // deterministic safety/completion policy stays authoritative.
301
- // `enabled:false` is the global emergency disable.
298
+ // remote hosting or generative-LLM billing. Preferred for every bounded
299
+ // decision since 3.1.9 — stage ships 'default'; `enabled:false` is the
300
+ // global emergency disable and deterministic policy still fills any gap
301
+ // (unavailable/timeout/invalid outcomes).
302
302
  decisionPlane: {
303
303
  enabled: true,
304
- stage: 'off',
304
+ stage: 'default',
305
305
  logicalModel: 'unic-decision',
306
306
  checkpoints: {
307
- default: 'unic-decision-multilingual',
307
+ default: 'unic-decision',
308
308
  english: 'unic-decision',
309
309
  unknownLanguage: 'unic-decision',
310
310
  },
@@ -42,14 +42,13 @@ import {
42
42
  } from './statePacket.js';
43
43
 
44
44
  const DEFAULT_CHECKPOINTS = {
45
- // 'unic-decision-multilingual' is credential-bound (verified live
46
- // 2026-09-26) and is the shipped default; english/unknown classes keep the
47
- // bare 'unic-decision' alias until laya/auto variants are bound.
48
- default: 'unic-decision-multilingual',
45
+ // Locked 2026-09-26: every language class routes to the single
46
+ // credential-safe 'unic-decision' model — the provider swaps the backend
47
+ // (Lava/JEV) behind that name, so UKit never needs per-class variants.
48
+ default: 'unic-decision',
49
49
  english: 'unic-decision',
50
50
  unknownLanguage: 'unic-decision',
51
51
  };
52
-
53
52
  // Credential-safe alias: every UNIC decision credential binds the bare name
54
53
  // first — variants (unic-decision-multilingual, …) may lag. On model_not_found
55
54
  // the client falls back here once per batch.
@@ -476,10 +476,10 @@ function readMergedConfig(rootDir, homeDir) {
476
476
  // ---------------------------------------------------------------------------
477
477
  // Client core — mirror of src/decision/client.js semantics minus the circuit
478
478
  const DEFAULT_CHECKPOINTS = {
479
- // 'unic-decision-multilingual' is credential-bound (verified live
480
- // 2026-09-26) and is the shipped default; english/unknown classes keep the
481
- // bare 'unic-decision' alias until laya/auto variants are bound.
482
- default: 'unic-decision-multilingual',
479
+ // Locked 2026-09-26: every language class routes to the single
480
+ // credential-safe 'unic-decision' model — the provider swaps the backend
481
+ // (Lava/JEV) behind that name, so UKit never needs per-class variants.
482
+ default: 'unic-decision',
483
483
  english: 'unic-decision',
484
484
  unknownLanguage: 'unic-decision',
485
485
  };
@@ -99,10 +99,10 @@
99
99
  },
100
100
  "decisionPlane": {
101
101
  "enabled": true,
102
- "stage": "off",
102
+ "stage": "default",
103
103
  "logicalModel": "unic-decision",
104
104
  "checkpoints": {
105
- "default": "unic-decision-multilingual",
105
+ "default": "unic-decision",
106
106
  "english": "unic-decision",
107
107
  "unknownLanguage": "unic-decision"
108
108
  },