npm.io
2.17.0 • Published 2 weeks ago

@x12i/graphenix-case-format

Licence
MIT
Version
2.17.0
Deps
1
Size
38 kB
Vulns
0
Weekly
0

@x12i/graphenix-case-format

Deterministic case condition DSL for executable graphs: validate conditions, evaluate them against pre-run context, and select graph/node model cases.

Case evaluation is pure, deterministic, bounded, and non-AI. Forbidden selectors (ai.*, node.output.*, semanticMatch, etc.) are rejected at validation time.

Canonical vocabulary: GLOSSARY.md §4 — phase model profiles (preActionModel, skillModel, postActionModel).
Design brief: GRAPH-FORMAT-FINALIZATION.md · Compile brief: COMPILE-FORMAT-FINALIZATION.md.

Cases are selected at compile time only — the engine uses frozen modelSlots on the plan.


Who should use this

Role Use this package?
Graph designer / Studio (case editor) Yes
Compiler service Usually via @x12i/graphenix-plan-compiler
Engine at runtime No — cases are resolved at compile time

Content pipeline example (graph-level cases)

From createContentPipelineReferenceGraph() / contentPipelineModelConfig():

"cases": [
  {
    "id": "default",
    "modelConfig": {
      "preActionModel": { "kind": "profileChoice", "key": "cheap/default" },
      "skillModel": { "kind": "profileChoice", "key": "vol/default" },
      "postActionModel": { "kind": "profileChoice", "key": "cheap/default" }
    }
  },
  {
    "id": "rush",
    "when": { "path": "runtime.input.priority", "op": "eq", "value": "rush" },
    "modelConfig": {
      "preActionModel": { "kind": "profileChoice", "key": "vol/default" },
      "skillModel": { "kind": "profileChoice", "key": "deep/openai_deep" },
      "postActionModel": { "kind": "profileChoice", "key": "vol/default" }
    }
  }
]

When runtime.input.priority === "rush" at compile time, the rush case is selected and frozen on the plan.


Node-level override example

Partial override of MAIN-phase model profile only:

"taskConfiguration": {
  "modelConfig": {
    "inherit": true,
    "cases": [{
      "id": "high-risk",
      "when": { "path": "runtime.input.riskLevel", "op": "eq", "value": "high" },
      "modelConfig": {
        "skillModel": { "kind": "profileChoice", "key": "deep/openai_deep" }
      }
    }]
  }
}

Install

npm install @x12i/graphenix-case-format

Example (API)

import {
  validateCaseCondition,
  evaluateCaseCondition,
  selectGraphModelCase,
  selectNodeModelCase
} from "@x12i/graphenix-case-format";
import type { DeterministicCaseContext } from "@x12i/graphenix-executable-contracts";

const context: DeterministicCaseContext = {
  runtime: { mode: "live", input: { priority: "rush" } },
  graph: { id: "graph:content-pipeline" }
};

validateCaseCondition({
  path: "runtime.input.priority",
  op: "eq",
  value: "rush"
});

const matched = evaluateCaseCondition(
  { path: "runtime.input.priority", op: "eq", value: "rush" },
  context
);

const graphCase = selectGraphModelCase(
  {
    version: "graph-model-config/v1",
    cases: [
      { id: "default", modelConfig: { skillModel: { kind: "profileChoice", key: "vol/default" } } },
      {
        id: "rush",
        when: { path: "runtime.input.priority", op: "eq", value: "rush" },
        modelConfig: { skillModel: { kind: "profileChoice", key: "deep/openai_deep" } }
      }
    ]
  },
  context
);
// → "rush" when priority is rush, else "default"

Key exports

API Purpose
validateCaseCondition Structural + security validation of a condition
evaluateCaseCondition Evaluate a condition against deterministic context
explainMatchedCondition Human-readable match explanation
selectGraphModelCase Pick graph-level model case
selectNodeModelCase Pick node-level model case
isAllowedCasePath / isForbiddenCasePath Path guardrails

Allowed path roots

runtime.mode, runtime.environment, runtime.job.*, runtime.input.*,
runtime.variables.*, runtime.flags.*, runtime.context.*,
graph.id, graph.revision

Forbidden: ai.*, node.output.*, semanticMatch, LLM-based selectors.


Critical rule

Cases may choose stronger or weaker AI profiles.
AI may not choose the case.

Dependencies

  • @x12i/graphenix-executable-contracts ^1.0.0

Package Role
@x12i/graphenix-authoring-format Validates cases inside authoring graphs
@x12i/graphenix-plan-compiler Selects cases when compiling plans
@x12i/graphenix-executable-profile-format Phase model profile slots on extension

Keywords