@plurnk/plurnk-aliases 1.23.0 → 1.25.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @plurnk/plurnk-aliases
2
2
 
3
- Runtime-free parser for Plurnk model selectors and the optional alias cascade.
3
+ Provider-free parser for Plurnk model selectors and the optional alias cascade.
4
4
  Vendor-agnostic, MIT.
5
5
 
6
6
  Resolves `PLURNK_MODEL_<alias>=<provider>/<model>` env vars (plus per-alias
package/SPEC.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @plurnk/plurnk-aliases — contract
2
2
 
3
- The canonical runtime-free parser for Plurnk model selectors and the optional
4
- model-alias cascade. Zero runtime
5
- dependencies. `@plurnk/plurnk-providers` depends on this package and re-exports
3
+ The canonical provider-free parser for Plurnk model selectors and the optional
4
+ model-alias cascade. Its only runtime import is the shared configuration error.
5
+ `@plurnk/plurnk-providers` depends on this package and re-exports
6
6
  its surface unchanged. Clients transmit selector strings and never resolve the
7
7
  daemon's environment themselves; this package is the daemon/provider runtime's
8
8
  single parsing authority.
@@ -52,14 +52,23 @@ alias-scoped tuning applies only when that real alias is present.
52
52
  - **`resolveActiveRoute(env = process.env): ProviderSpec | null`** — resolves
53
53
  `PLURNK_MODEL`, or returns `null` only when it is unset. An explicit unknown or
54
54
  malformed selector fails instead of silently disabling the provider.
55
+ - **`resolveChildRoute(env = process.env): ProviderSpec | null`** — resolves
56
+ `PLURNK_MODEL_CHILD`, returning `null` only when absent (inherit).
57
+ An explicit empty value is invalid. Exact routes resolve independently of
58
+ alias declarations for both selectors.
55
59
 
56
60
  ## Fail-hard rules
57
61
 
58
- - **Case-folding collision** — two `PLURNK_MODEL_*` keys that downcase to the
59
- same alias throw (`Duplicate provider alias "<alias>"`). No silent pick.
62
+ - §alias-case-collisions **Case-folding collision** — two nonempty `PLURNK_MODEL_*`
63
+ declarations or two nonempty `PLURNK_BASEURL_*` overrides that downcase to the
64
+ same alias throw (`Duplicate provider alias "<alias>"` or
65
+ `Duplicate base-URL override "<alias>"`). Identical values do not excuse
66
+ duplicate spelling; declaration order never selects a winner.
60
67
  - **Dangling override** — a `PLURNK_BASEURL_*` whose alias has no matching
61
68
  `PLURNK_MODEL_*` throws (a typo, not a silent no-op).
62
69
  - **Unresolved active selector** — a non-empty `PLURNK_MODEL` that is neither a
63
70
  declared alias nor a complete exact route throws.
64
71
 
65
- Both are contract violations surfaced loudly, never recovered.
72
+ These throw the shared `ConfigurationError`, naming the offending key.
73
+ Consumers preserve the diagnostic at their composition boundary; they never
74
+ substitute a selector or disguise an unresolved alias catalog as empty.
package/dist/aliases.d.ts CHANGED
@@ -2,4 +2,5 @@ import type { ProviderAlias, ProviderSpec } from "./types.ts";
2
2
  export declare const parseAliasesFromEnv: (env?: NodeJS.ProcessEnv) => ProviderAlias[];
3
3
  export declare const resolveModelSelector: (selector: string, aliases: readonly ProviderAlias[]) => ProviderSpec | null;
4
4
  export declare const resolveActiveRoute: (env?: NodeJS.ProcessEnv) => ProviderSpec | null;
5
+ export declare const resolveChildRoute: (env?: NodeJS.ProcessEnv) => ProviderSpec | null;
5
6
  //# sourceMappingURL=aliases.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB9D,eAAO,MAAM,mBAAmB,SAAS,MAAM,CAAC,UAAU,KAAiB,aAAa,EAwBvF,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACnB,MAAM,WACP,SAAS,aAAa,EAAE,KAClC,YAAY,GAAG,IAOjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAS,MAAM,CAAC,UAAU,KAAiB,YAAY,GAAG,IAWxF,CAAC"}
1
+ {"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAwB9D,eAAO,MAAM,mBAAmB,SAAS,MAAM,CAAC,UAAU,KAAiB,aAAa,EAwBvF,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACnB,MAAM,WACP,SAAS,aAAa,EAAE,KAClC,YAAY,GAAG,IAOjB,CAAC;AAcF,eAAO,MAAM,kBAAkB,SAAS,MAAM,CAAC,UAAU,KAAiB,YAAY,GAAG,IAA4C,CAAC;AAEtI,eAAO,MAAM,iBAAiB,SAAS,MAAM,CAAC,UAAU,KAAiB,YAAY,GAAG,IAAkD,CAAC"}
package/dist/aliases.js CHANGED
@@ -1,4 +1,4 @@
1
- // The plurnk model-alias cascade — pure env parsing, zero runtime deps.
1
+ // The model-alias cascade imports no provider, tokenizer, or discovery machinery.
2
2
  //
3
3
  // PLURNK_MODEL_<alias>=<provider>/<model> declares an alias; PLURNK_MODEL selects
4
4
  // either one declared alias or one exact provider/model route at boot. The provider segment is the first "/"-delimited
@@ -9,6 +9,7 @@
9
9
  //
10
10
  // Extracted from @plurnk/plurnk-providers so a thin consumer can resolve aliases
11
11
  // from its own (always-fresh) env without pulling the provider/tokenizer machinery.
12
+ import ConfigurationError from "@plurnk/plurnk-meta/configuration-error";
12
13
  // PLURNK_BASEURL_<alias>: per-alias endpoint override, case-folded on the alias
13
14
  // to match PLURNK_MODEL_<alias>. Lets two aliases on the same provider name target
14
15
  // different self-hosted boxes (openai/ollama), the one thing a per-name base-URL
@@ -23,7 +24,12 @@ const parseBaseUrls = (env) => {
23
24
  const aliasRaw = key.slice("PLURNK_BASEURL_".length);
24
25
  if (aliasRaw.length === 0)
25
26
  continue;
26
- out.set(aliasRaw.toLowerCase(), value);
27
+ const alias = aliasRaw.toLowerCase();
28
+ const existing = out.get(alias);
29
+ if (existing !== undefined) {
30
+ throw new ConfigurationError(key, `Duplicate base-URL override "${alias}": ${existing.key} and ${key} case-fold to the same alias.`);
31
+ }
32
+ out.set(alias, { key, value });
27
33
  }
28
34
  return out;
29
35
  };
@@ -48,15 +54,15 @@ export const parseAliasesFromEnv = (env = process.env) => {
48
54
  // Aliases are case-folded, so PLURNK_MODEL_opus and PLURNK_MODEL_OPUS
49
55
  // collide. Surface the ambiguity rather than silently picking one.
50
56
  if (seen.has(alias))
51
- throw new Error(`Duplicate provider alias "${alias}": multiple PLURNK_MODEL_* keys case-fold to the same alias. Rename one.`);
57
+ throw new ConfigurationError(key, `Duplicate provider alias "${alias}": multiple PLURNK_MODEL_* keys case-fold to the same alias. Rename one.`);
52
58
  seen.add(alias);
53
- const baseUrl = baseUrls.get(alias);
59
+ const baseUrl = baseUrls.get(alias)?.value;
54
60
  out.push({ alias, provider: value.slice(0, slash), model: value.slice(slash + 1), ...(baseUrl !== undefined ? { baseUrl } : {}) });
55
61
  }
56
62
  // A base-URL override with no matching alias is a typo, not a silent no-op.
57
63
  const unmatched = [...baseUrls.keys()].filter((a) => !seen.has(a));
58
64
  if (unmatched.length > 0)
59
- throw new Error(`PLURNK_BASEURL_* override(s) with no matching PLURNK_MODEL_* alias: ${unmatched.join(", ")}. Declare the alias or remove the override.`);
65
+ throw new ConfigurationError(baseUrls.get(unmatched[0]).key, `PLURNK_BASEURL_* override(s) with no matching PLURNK_MODEL_* alias: ${unmatched.join(", ")}. Declare the alias or remove the override.`);
60
66
  return out;
61
67
  };
62
68
  export const resolveModelSelector = (selector, aliases) => {
@@ -68,15 +74,16 @@ export const resolveModelSelector = (selector, aliases) => {
68
74
  return null;
69
75
  return aliases.find((alias) => alias.alias === selector.toLowerCase()) ?? null;
70
76
  };
71
- export const resolveActiveRoute = (env = process.env) => {
72
- const selected = env.PLURNK_MODEL;
73
- if (selected === undefined || selected.length === 0)
77
+ const configuredRoute = (env, key) => {
78
+ const selected = env[key];
79
+ if (selected === undefined || (key === "PLURNK_MODEL" && selected.length === 0))
74
80
  return null;
75
- const aliases = parseAliasesFromEnv(env);
76
- const route = resolveModelSelector(selected, aliases);
81
+ const route = resolveModelSelector(selected, selected.includes("/") ? [] : parseAliasesFromEnv(env));
77
82
  if (route === null) {
78
- throw new Error(`PLURNK_MODEL '${selected}' is neither a declared alias nor a provider/model route.`);
83
+ throw new ConfigurationError(key, `${key} '${selected}' is neither a declared alias nor a provider/model route.`);
79
84
  }
80
85
  return route;
81
86
  };
87
+ export const resolveActiveRoute = (env = process.env) => configuredRoute(env, "PLURNK_MODEL");
88
+ export const resolveChildRoute = (env = process.env) => configuredRoute(env, "PLURNK_MODEL_CHILD");
82
89
  //# sourceMappingURL=aliases.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aliases.js","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aliases.js","sourceRoot":"","sources":["../src/aliases.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export type { ModelRoute, ProviderAlias, ProviderSpec } from "./types.ts";
2
- export { parseAliasesFromEnv, resolveActiveRoute, resolveModelSelector } from "./aliases.ts";
2
+ export { parseAliasesFromEnv, resolveActiveRoute, resolveChildRoute, resolveModelSelector } from "./aliases.ts";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { parseAliasesFromEnv, resolveActiveRoute, resolveModelSelector } from "./aliases.js";
1
+ export { parseAliasesFromEnv, resolveActiveRoute, resolveChildRoute, resolveModelSelector } from "./aliases.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurnk/plurnk-aliases",
3
- "version": "1.23.0",
3
+ "version": "1.25.0",
4
4
  "description": "Runtime-free parser for PLURNK model selectors and the model-alias cascade.",
5
5
  "keywords": [
6
6
  "plurnk",
@@ -49,6 +49,7 @@
49
49
  "prepack": "npm run build"
50
50
  },
51
51
  "dependencies": {
52
- "@plurnk/plurnk-contracts": "1.23.0"
52
+ "@plurnk/plurnk-contracts": "1.25.0",
53
+ "@plurnk/plurnk-meta": "1.25.0"
53
54
  }
54
55
  }