@x12i/ai-profiles 1.2.3 → 1.2.5

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
@@ -48,7 +48,18 @@ Unknown strings fail validation before `resolveAIProfile` / execute.
48
48
  - **Studio dropdowns** should use `profile` keys from `await listAIProfiles()` (e.g. `balanced`, `cheap`).
49
49
  - **Shortcut dropdowns** (optional) use `listAIShortcuts()` → `{ key, profile, choice?, description? }`.
50
50
  - **Profile aliases** (e.g. `"standard"` on `balanced`) are metadata on each summary’s `aliases` field. They are **not** primary keys and are **not** accepted by `isKnownProfileOrShortcut` unless the same string is also a shortcut key in `profiles-shortcuts.json`.
51
- - **Reserved keys** (`default`) are invalid as profile keys, shortcut keys, and profile aliases. Store primary keys only (e.g. `balanced`, not `default`).
51
+ - **Reserved keys** (`default`) are invalid as profile keys and shortcut keys. Profile aliases must not use legacy graph-engine tokens (`default`, `strong`, `weak`). Store primary keys only (e.g. `balanced`, not `default`).
52
+ - **Legacy graph-engine migration** — one-time mapping for old graph JSON (not runtime shortcuts):
53
+
54
+ ```ts
55
+ import { legacyGraphEngineAliasMap } from "@x12i/ai-profiles";
56
+
57
+ // { default: "balanced", strong: "deep", weak: "cheap" }
58
+ const primary = legacyGraphEngineAliasMap[legacyToken] ?? legacyToken;
59
+ ```
60
+
61
+ FuncX runtime shortcuts in `profiles-shortcuts.json` differ (e.g. `resolveAIProfile("strong")` → `pro`, `"weak"` → `local`). Use the map only when rewriting stored graph profile fields to primary keys.
62
+
52
63
  - **Legacy FuncX mode shortcuts** (`weak`, `normal`, `strong`, `ultra`) and **local shortcuts** (`cpu`, `offline`, `on-device`) resolve via `profiles-shortcuts.json`. Do not conflate `cpu` (on-device) with `cheapest` / `economy` (remote, low cost).
53
64
 
54
65
  ## Resolve a shortcut
@@ -146,6 +157,27 @@ Local CPU choices expose FuncX env keys in `resolved.metadata` (e.g. `LLAMA_CPP_
146
157
 
147
158
  Remote profile choices use vendor-native `modelId` values (e.g. `gpt-5.4`, `gemini-2.5-flash-lite`). Anthropic version segments follow OpenRouter slugs (`claude-sonnet-4.6`, not `claude-sonnet-4-6`). `@x12i/ai-tools` resolves these to full OpenRouter slugs (`openai/gpt-5.4`) and remaps deprecated ids when the bundled catalog is stale.
148
159
 
160
+ ### Keeping models aligned over time
161
+
162
+ When OpenRouter deprecates or renames a model slug:
163
+
164
+ 1. Update `src/data/models-profiles.json` to a current vendor-native id (preferred).
165
+ 2. Refresh the OpenRouter catalog in `@x12i/ai-tools` (`openrouter-models-catalog.json`).
166
+ 3. Run alignment checks before publishing:
167
+
168
+ ```bash
169
+ npm run verify:openrouter # bundled profiles vs ai-tools catalog (sibling or dev install)
170
+ npm run verify:openrouter:live # same vs live open-assets catalog (pre-release)
171
+ ```
172
+
173
+ Unit tests in `test/openrouterAlignment.test.ts` guard resolution rules offline. Use `verify:openrouter` when updating profile model ids; use `verify:openrouter:live` after refreshing [open-assets](https://open-assets.x12i.com/openrouter-models-catalog.json).
174
+
175
+ Vendor-direct-only choices (not routed via OpenRouter) can opt out:
176
+
177
+ ```json
178
+ "metadata": { "openRouter": "vendor-direct" }
179
+ ```
180
+
149
181
  ## Tests
150
182
 
151
183
  ```bash
@@ -7,6 +7,13 @@ export declare const MODELS_PROFILES_SCHEMA: "x12i.ai-profiles.models-profiles";
7
7
  export declare const PROFILES_SHORTCUTS_SCHEMA: "x12i.ai-profiles.shortcuts";
8
8
  /** Reserved keys — not valid profile or shortcut identifiers. */
9
9
  export declare const RESERVED_PROFILE_KEYS: readonly ["default"];
10
+ /**
11
+ * Legacy graph-engine profile tokens. Forbidden on `profile.aliases` and as
12
+ * primary keys; use `legacyGraphEngineAliasMap` for one-time graph JSON migration.
13
+ */
14
+ export declare const LEGACY_GRAPH_ENGINE_ALIAS_KEYS: readonly ["default", "strong", "weak"];
15
+ /** Must not appear on any profile `aliases` array. */
16
+ export declare const FORBIDDEN_PROFILE_ALIASES: readonly ["default", "strong", "weak"];
10
17
  export declare const INSTRUCTION_TIERS: readonly ["default", "cpu", "reasoning"];
11
18
  export declare const AI_PROFILE_BACKENDS: readonly ["openrouter", "llama-cpp", "transformersjs", "custom"];
12
19
  export declare const DEFAULT_RUNTIME_DEFAULTS: Required<AIRuntimeDefaults>;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,oBAAoB,QAAsB,CAAC;AACxD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,eAAO,MAAM,0BAA0B,sDACc,CAAC;AAEtD,eAAO,MAAM,6BAA6B,yDACc,CAAC;AAEzD,eAAO,MAAM,sBAAsB,EAAG,kCAA2C,CAAC;AAClF,eAAO,MAAM,yBAAyB,EAAG,4BAAqC,CAAC;AAE/E,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,sBAAuB,CAAC;AAE1D,eAAO,MAAM,iBAAiB,0CAA2C,CAAC;AAE1E,eAAO,MAAM,mBAAmB,kEAKtB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,iBAAiB,CAahE,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,oBAAoB,QAAsB,CAAC;AACxD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,eAAO,MAAM,0BAA0B,sDACc,CAAC;AAEtD,eAAO,MAAM,6BAA6B,yDACc,CAAC;AAEzD,eAAO,MAAM,sBAAsB,EAAG,kCAA2C,CAAC;AAClF,eAAO,MAAM,yBAAyB,EAAG,4BAAqC,CAAC;AAE/E,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,sBAAuB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,8BAA8B,wCAIjC,CAAC;AAEX,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,wCAAiC,CAAC;AAExE,eAAO,MAAM,iBAAiB,0CAA2C,CAAC;AAE1E,eAAO,MAAM,mBAAmB,kEAKtB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,iBAAiB,CAahE,CAAC"}
package/dist/constants.js CHANGED
@@ -6,6 +6,17 @@ export const MODELS_PROFILES_SCHEMA = "x12i.ai-profiles.models-profiles";
6
6
  export const PROFILES_SHORTCUTS_SCHEMA = "x12i.ai-profiles.shortcuts";
7
7
  /** Reserved keys — not valid profile or shortcut identifiers. */
8
8
  export const RESERVED_PROFILE_KEYS = ["default"];
9
+ /**
10
+ * Legacy graph-engine profile tokens. Forbidden on `profile.aliases` and as
11
+ * primary keys; use `legacyGraphEngineAliasMap` for one-time graph JSON migration.
12
+ */
13
+ export const LEGACY_GRAPH_ENGINE_ALIAS_KEYS = [
14
+ "default",
15
+ "strong",
16
+ "weak",
17
+ ];
18
+ /** Must not appear on any profile `aliases` array. */
19
+ export const FORBIDDEN_PROFILE_ALIASES = LEGACY_GRAPH_ENGINE_ALIAS_KEYS;
9
20
  export const INSTRUCTION_TIERS = ["default", "cpu", "reasoning"];
10
21
  export const AI_PROFILE_BACKENDS = [
11
22
  "openrouter",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,0BAA0B,GACrC,mDAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,6BAA6B,GACxC,sDAAsD,CAAC;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,kCAA2C,CAAC;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAAqC,CAAC;AAE/E,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAS,CAAU,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,QAAQ;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAgC;IACnE,eAAe,EAAE,QAAQ;IACzB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,MAAM;IACrB,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,SAAS;IAC1B,OAAO,EAAE,YAAY;CACtB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,0BAA0B,GACrC,mDAAmD,CAAC;AAEtD,MAAM,CAAC,MAAM,6BAA6B,GACxC,sDAAsD,CAAC;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,kCAA2C,CAAC;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAAqC,CAAC;AAE/E,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAS,CAAU,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,SAAS;IACT,QAAQ;IACR,MAAM;CACE,CAAC;AAEX,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAU,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,QAAQ;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAgC;IACnE,eAAe,EAAE,QAAQ;IACzB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,MAAM;IACrB,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,SAAS;IAC1B,OAAO,EAAE,YAAY;CACtB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,8 @@ export { listAIProfiles } from "./listAIProfiles.js";
2
2
  export { listAIShortcuts } from "./listAIShortcuts.js";
3
3
  export { resolveAIProfile } from "./resolveAIProfile.js";
4
4
  export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
5
+ export { legacyGraphEngineAliasMap, LEGACY_GRAPH_ENGINE_ALIAS_KEYS, } from "./legacyGraphEngineAliasMap.js";
6
+ export type { LegacyGraphEngineAliasKey } from "./legacyGraphEngineAliasMap.js";
5
7
  export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, AIShortcutSummary, ResolvedAIProfile, ListAIProfilesOptions, ResolveAIProfileOptions, AIProvider, AIModelPricing, AIRuntimeDefaults, AIProfileBackend, AIProfileWarning, InstructionTier, RegistrySourceMode, } from "./types.js";
6
8
  export { AIProfilesError } from "./errors.js";
7
9
  export type { AIProfilesErrorCode } from "./errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -2,5 +2,6 @@ export { listAIProfiles } from "./listAIProfiles.js";
2
2
  export { listAIShortcuts } from "./listAIShortcuts.js";
3
3
  export { resolveAIProfile } from "./resolveAIProfile.js";
4
4
  export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
5
+ export { legacyGraphEngineAliasMap, LEGACY_GRAPH_ENGINE_ALIAS_KEYS, } from "./legacyGraphEngineAliasMap.js";
5
6
  export { AIProfilesError } from "./errors.js";
6
7
  //# 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":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAqBzE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,gCAAgC,CAAC;AAsBxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -1,11 +1,13 @@
1
+ import { LEGACY_GRAPH_ENGINE_ALIAS_KEYS } from "./constants.js";
2
+ export { LEGACY_GRAPH_ENGINE_ALIAS_KEYS };
3
+ export type LegacyGraphEngineAliasKey = (typeof LEGACY_GRAPH_ENGINE_ALIAS_KEYS)[number];
1
4
  /**
2
- * One-time migration map from legacy graph-engine profile aliases to
3
- * recommended `@x12i/ai-profiles` primary keys. Product-owned; not used at runtime.
5
+ * Maps legacy graph-engine profile tokens to recommended primary profile keys.
6
+ * For one-time migration scripts only — graph JSON should store primary keys
7
+ * (`balanced`, `cheap`, …) after breaking migration.
8
+ *
9
+ * Distinct from FuncX runtime shortcuts in `profiles-shortcuts.json`
10
+ * (e.g. `strong` → `pro`, `weak` → `local` via `resolveAIProfile`).
4
11
  */
5
- export declare const legacyGraphEngineAliasMap: {
6
- readonly default: "balanced";
7
- readonly strong: "deep";
8
- readonly weak: "cheap";
9
- };
10
- export type LegacyGraphEngineAlias = keyof typeof legacyGraphEngineAliasMap;
12
+ export declare const legacyGraphEngineAliasMap: Readonly<Record<LegacyGraphEngineAliasKey, string>>;
11
13
  //# sourceMappingURL=legacyGraphEngineAliasMap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacyGraphEngineAliasMap.d.ts","sourceRoot":"","sources":["../src/legacyGraphEngineAliasMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;CAI5B,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,yBAAyB,CAAC"}
1
+ {"version":3,"file":"legacyGraphEngineAliasMap.d.ts","sourceRoot":"","sources":["../src/legacyGraphEngineAliasMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAE1C,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAC9C,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAKjC,CAAC"}
@@ -1,6 +1,12 @@
1
+ import { LEGACY_GRAPH_ENGINE_ALIAS_KEYS } from "./constants.js";
2
+ export { LEGACY_GRAPH_ENGINE_ALIAS_KEYS };
1
3
  /**
2
- * One-time migration map from legacy graph-engine profile aliases to
3
- * recommended `@x12i/ai-profiles` primary keys. Product-owned; not used at runtime.
4
+ * Maps legacy graph-engine profile tokens to recommended primary profile keys.
5
+ * For one-time migration scripts only — graph JSON should store primary keys
6
+ * (`balanced`, `cheap`, …) after breaking migration.
7
+ *
8
+ * Distinct from FuncX runtime shortcuts in `profiles-shortcuts.json`
9
+ * (e.g. `strong` → `pro`, `weak` → `local` via `resolveAIProfile`).
4
10
  */
5
11
  export const legacyGraphEngineAliasMap = {
6
12
  default: "balanced",
@@ -1 +1 @@
1
- {"version":3,"file":"legacyGraphEngineAliasMap.js","sourceRoot":"","sources":["../src/legacyGraphEngineAliasMap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,OAAO;CACL,CAAC"}
1
+ {"version":3,"file":"legacyGraphEngineAliasMap.js","sourceRoot":"","sources":["../src/legacyGraphEngineAliasMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAK1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAElC;IACF,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,OAAO;CACL,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { AIProfileChoice, ModelsProfilesJson } from "../types.js";
2
+ export declare const OPENROUTER_MODELS_CATALOG_URL = "https://open-assets.x12i.com/openrouter-models-catalog.json";
3
+ export type OpenRouterCatalogFile = {
4
+ models?: Array<{
5
+ modelId?: string;
6
+ canonicalSlug?: string;
7
+ }>;
8
+ };
9
+ export type OpenRouterAlignmentIssue = {
10
+ profile: string;
11
+ choice: string;
12
+ provider: string;
13
+ modelId: string;
14
+ };
15
+ export type OpenRouterAlignmentReport = {
16
+ ok: boolean;
17
+ checked: number;
18
+ skipped: number;
19
+ issues: OpenRouterAlignmentIssue[];
20
+ catalogModelCount: number;
21
+ };
22
+ /** Anthropic OpenRouter slugs use dotted minor versions (`4.6`), not dashed (`4-6`). */
23
+ export declare function normalizeAnthropicVersionSlug(slug: string): string;
24
+ export declare function buildOpenRouterCatalogIndex(catalog: OpenRouterCatalogFile): Set<string>;
25
+ export declare function openRouterResolutionCandidates(provider: string, modelId: string): string[];
26
+ export declare function isOpenRouterModelAvailable(provider: string, modelId: string, catalogIndex: Set<string>): boolean;
27
+ /** Skip local / vendor-direct choices that are not expected on OpenRouter. */
28
+ export declare function shouldCheckOpenRouterAlignment(choice: AIProfileChoice): boolean;
29
+ export declare function verifyOpenRouterAlignment(registry: ModelsProfilesJson, catalog: OpenRouterCatalogFile): OpenRouterAlignmentReport;
30
+ export declare function formatOpenRouterAlignmentReport(report: OpenRouterAlignmentReport): string;
31
+ //# sourceMappingURL=openRouterAlignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openRouterAlignment.d.ts","sourceRoot":"","sources":["../../src/validation/openRouterAlignment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAO,MAAM,6BAA6B,gEACqB,CAAC;AAEhE,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,wBAAwB,EAAE,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAMF,wFAAwF;AACxF,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,qBAAqB,GAC7B,GAAG,CAAC,MAAM,CAAC,CAYb;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAmBV;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,OAAO,CAIT;AAED,8EAA8E;AAC9E,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAa/E;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,qBAAqB,GAC7B,yBAAyB,CAsC3B;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,yBAAyB,GAChC,MAAM,CAgBR"}
@@ -0,0 +1,100 @@
1
+ export const OPENROUTER_MODELS_CATALOG_URL = "https://open-assets.x12i.com/openrouter-models-catalog.json";
2
+ function normalizeKey(value) {
3
+ return value.trim().toLowerCase();
4
+ }
5
+ /** Anthropic OpenRouter slugs use dotted minor versions (`4.6`), not dashed (`4-6`). */
6
+ export function normalizeAnthropicVersionSlug(slug) {
7
+ return slug.replace(/-(\d+)-(\d+)(?=$|[-/])/g, "-$1.$2");
8
+ }
9
+ export function buildOpenRouterCatalogIndex(catalog) {
10
+ const index = new Set();
11
+ for (const entry of catalog.models ?? []) {
12
+ for (const id of [entry.modelId, entry.canonicalSlug]) {
13
+ if (typeof id === "string" && id.trim() !== "") {
14
+ index.add(normalizeKey(id));
15
+ }
16
+ }
17
+ }
18
+ return index;
19
+ }
20
+ export function openRouterResolutionCandidates(provider, modelId) {
21
+ const normalizedProvider = normalizeKey(provider);
22
+ const normalizedModel = normalizeKey(modelId);
23
+ const versionNormalized = normalizeAnthropicVersionSlug(normalizedModel);
24
+ const candidates = new Set([
25
+ normalizedModel,
26
+ versionNormalized,
27
+ `${normalizedProvider}/${normalizedModel}`,
28
+ `${normalizedProvider}/${versionNormalized}`,
29
+ ]);
30
+ if (!normalizedModel.includes("/")) {
31
+ for (const prefix of ["openai", "anthropic", "google"]) {
32
+ candidates.add(`${prefix}/${normalizedModel}`);
33
+ candidates.add(`${prefix}/${versionNormalized}`);
34
+ }
35
+ }
36
+ return [...candidates];
37
+ }
38
+ export function isOpenRouterModelAvailable(provider, modelId, catalogIndex) {
39
+ return openRouterResolutionCandidates(provider, modelId).some((candidate) => catalogIndex.has(candidate));
40
+ }
41
+ /** Skip local / vendor-direct choices that are not expected on OpenRouter. */
42
+ export function shouldCheckOpenRouterAlignment(choice) {
43
+ if (choice.provider === "local")
44
+ return false;
45
+ if (choice.modelId.startsWith("funcx:") || choice.modelId.startsWith("Xenova/")) {
46
+ return false;
47
+ }
48
+ const backend = choice.runtime?.backend;
49
+ if (backend && backend !== "openrouter")
50
+ return false;
51
+ if (choice.metadata?.openRouter === "vendor-direct")
52
+ return false;
53
+ if (choice.metadata?.skipOpenRouterAlignment === true)
54
+ return false;
55
+ return true;
56
+ }
57
+ export function verifyOpenRouterAlignment(registry, catalog) {
58
+ const catalogIndex = buildOpenRouterCatalogIndex(catalog);
59
+ const issues = [];
60
+ let checked = 0;
61
+ let skipped = 0;
62
+ for (const [profileKey, profile] of Object.entries(registry.profiles)) {
63
+ for (const [choiceKey, choice] of Object.entries(profile.choices)) {
64
+ if (!shouldCheckOpenRouterAlignment(choice)) {
65
+ skipped += 1;
66
+ continue;
67
+ }
68
+ checked += 1;
69
+ const available = isOpenRouterModelAvailable(choice.provider, choice.modelId, catalogIndex);
70
+ if (!available) {
71
+ issues.push({
72
+ profile: profileKey,
73
+ choice: choiceKey,
74
+ provider: choice.provider,
75
+ modelId: choice.modelId,
76
+ });
77
+ }
78
+ }
79
+ }
80
+ return {
81
+ ok: issues.length === 0,
82
+ checked,
83
+ skipped,
84
+ issues,
85
+ catalogModelCount: catalogIndex.size,
86
+ };
87
+ }
88
+ export function formatOpenRouterAlignmentReport(report) {
89
+ if (report.ok) {
90
+ return `OpenRouter alignment OK (${report.checked} remote choices checked, ${report.skipped} skipped, ${report.catalogModelCount} catalog ids).`;
91
+ }
92
+ const lines = report.issues.map((issue) => ` - ${issue.profile}/${issue.choice}: ${issue.provider}/${issue.modelId}`);
93
+ return [
94
+ `OpenRouter alignment failed (${report.issues.length} missing):`,
95
+ ...lines,
96
+ "",
97
+ "Update models-profiles.json, refresh @x12i/ai-tools openrouter-models-catalog.json, or mark vendor-direct choices with metadata.openRouter = \"vendor-direct\".",
98
+ ].join("\n");
99
+ }
100
+ //# sourceMappingURL=openRouterAlignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openRouterAlignment.js","sourceRoot":"","sources":["../../src/validation/openRouterAlignment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateModelsProfilesJson.d.ts","sourceRoot":"","sources":["../../src/validation/validateModelsProfilesJson.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA2OrB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAgD7E;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,qBAAqB,CAiFvB"}
1
+ {"version":3,"file":"validateModelsProfilesJson.d.ts","sourceRoot":"","sources":["../../src/validation/validateModelsProfilesJson.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA2OrB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAgD7E;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,qBAAqB,CAiFvB"}
@@ -1,5 +1,5 @@
1
1
  import { AIProfilesError } from "../errors.js";
2
- import { AI_PROFILE_BACKENDS, INSTRUCTION_TIERS, MODELS_PROFILES_SCHEMA, PROFILES_SHORTCUTS_SCHEMA, RESERVED_PROFILE_KEYS, } from "../constants.js";
2
+ import { AI_PROFILE_BACKENDS, FORBIDDEN_PROFILE_ALIASES, INSTRUCTION_TIERS, MODELS_PROFILES_SCHEMA, PROFILES_SHORTCUTS_SCHEMA, RESERVED_PROFILE_KEYS, } from "../constants.js";
3
3
  function isRecord(value) {
4
4
  return typeof value === "object" && value !== null && !Array.isArray(value);
5
5
  }
@@ -84,8 +84,8 @@ function validateProfile(profileKey, profile) {
84
84
  if (typeof alias !== "string" || alias.trim() === "") {
85
85
  throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", `Invalid alias on profile '${profileKey}'`, { profile: profileKey, alias });
86
86
  }
87
- if (RESERVED_PROFILE_KEYS.includes(alias)) {
88
- throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", `Profile '${profileKey}' alias '${alias}' is reserved`, { profile: profileKey, alias });
87
+ if (FORBIDDEN_PROFILE_ALIASES.includes(alias)) {
88
+ throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", `Profile '${profileKey}' alias '${alias}' is reserved (legacy graph-engine token)`, { profile: profileKey, alias });
89
89
  }
90
90
  }
91
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateModelsProfilesJson.js","sourceRoot":"","sources":["../../src/validation/validateModelsProfilesJson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateModelsProfilesJson.js","sourceRoot":"","sources":["../../src/validation/validateModelsProfilesJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAOzB,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CACpB,KAAc,EACd,KAAa,EACb,OAAe;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,sBAAsB,KAAK,OAAO,OAAO,EAAE,EAC3C,EAAE,KAAK,EAAE,OAAO,EAAE,CACnB,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAgC,EAChC,UAAkB,EAClB,SAAiB;IAEjB,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC1C,IACE,CAAC,iBAAiB,CAAC,QAAQ,CACzB,OAAO,CAAC,eAAqD,CAC9D,EACD,CAAC;YACD,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,4BAA4B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,UAAU,aAAa,SAAS,GAAG,EAC/G,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CACrF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,IACE,CAAC,mBAAmB,CAAC,QAAQ,CAC3B,OAAO,CAAC,OAA+C,CACxD,EACD,CAAC;YACD,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,oBAAoB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,UAAU,aAAa,SAAS,GAAG,EAC/F,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAiC,EACjC,UAAkB,EAClB,SAAiB;IAEjB,MAAM,YAAY,GAAG,aAAa,CAChC,QAAQ,CAAC,YAAY,EACrB,uBAAuB,EACvB,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IAEF,IACE,CAAC,mBAAmB,CAAC,QAAQ,CAC3B,YAAoD,CACrD;QACD,YAAY,KAAK,YAAY;QAC7B,YAAY,KAAK,QAAQ,EACzB,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,iBAAiB,SAAS,iBAAiB,UAAU,yDAAyD,EAC9G,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,aAAa,CACX,QAAQ,CAAC,WAAW,EACpB,sBAAsB,EACtB,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IAEF,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACjC,aAAa,CACX,QAAQ,CAAC,YAAY,EACrB,uBAAuB,EACvB,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;QACF,aAAa,CACX,QAAQ,CAAC,gBAAgB,EACzB,2BAA2B,EAC3B,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;QACtC,aAAa,CACX,QAAQ,CAAC,UAAU,EACnB,qBAAqB,EACrB,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;QACF,aAAa,CACX,QAAQ,CAAC,cAAc,EACvB,yBAAyB,EACzB,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CACrB,SAAiB,EACjB,MAAe,EACf,UAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,mBAAmB,SAAS,kBAAkB,UAAU,GAAG,EAC3D,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAC3C,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,UAAU,aAAa,SAAS,GAAG,CAAC,CAAC;IACxF,aAAa,CACX,MAAM,CAAC,WAAW,EAClB,aAAa,EACb,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IACF,aAAa,CACX,MAAM,CAAC,WAAW,EAClB,aAAa,EACb,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IACF,aAAa,CACX,MAAM,CAAC,QAAQ,EACf,UAAU,EACV,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IACF,aAAa,CACX,MAAM,CAAC,OAAO,EACd,SAAS,EACT,YAAY,UAAU,aAAa,SAAS,GAAG,CAChD,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,iBAAiB,SAAS,iBAAiB,UAAU,qBAAqB,EAC1E,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAC3C,CAAC;QACJ,CAAC;QAED,2BAA2B,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,OAAgB;IAC3D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,oBAAoB,UAAU,GAAG,EACjC,EAAE,OAAO,EAAE,UAAU,EAAE,CACxB,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,YAAY,UAAU,GAAG,CAAC,CAAC;IACrE,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,UAAU,GAAG,CAAC,CAAC;IAC7E,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,UAAU,GAAG,CAAC,CAAC;IAC7E,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,UAAU,GAAG,CAAC,CAAC;IACvE,aAAa,CACX,OAAO,CAAC,aAAa,EACrB,eAAe,EACf,YAAY,UAAU,GAAG,CAC1B,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,gCAAgC,UAAU,GAAG,EAC7C,EAAE,OAAO,EAAE,UAAU,EAAE,CACxB,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAuB,CAAC;IACtD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,YAAY,UAAU,oBAAoB,aAAa,kBAAkB,EACzE,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CACvC,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACrD,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,6BAA6B,UAAU,GAAG,EAC1C,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAC/B,CAAC;YACJ,CAAC;YAED,IACE,yBAAyB,CAAC,QAAQ,CAChC,KAAmD,CACpD,EACD,CAAC;gBACD,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,YAAY,UAAU,YAAY,KAAK,2CAA2C,EAClF,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAC/B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,wCAAwC,CACzC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;QAC5C,MAAM,IAAI,eAAe,CACvB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,4BAA4B,EAC3E,kDAAkD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EACxE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,2CAA2C,EAC3C,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAC7B,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QACtC,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,oDAAoD,EACpD,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,iDAAiD,CAClD,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,KAAsC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAc,EACd,QAA6C;IAE7C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,yBAAyB,EAAE,CAAC;QAC/C,MAAM,IAAI,eAAe,CACvB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,4BAA4B,EAC3E,qDAAqD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAC3E,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,qDAAqD,CACtD,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,IACE,qBAAqB,CAAC,QAAQ,CAC5B,WAAqD,CACtD,EACD,CAAC;YACD,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,iBAAiB,WAAW,eAAe,EAC3C,EAAE,QAAQ,EAAE,WAAW,EAAE,CAC1B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,qBAAqB,WAAW,GAAG,EACnC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAC1B,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,aAAa,CAC9B,QAAQ,CAAC,OAAO,EAChB,SAAS,EACT,aAAa,WAAW,GAAG,CAC5B,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,aAAa,WAAW,iCAAiC,UAAU,GAAG,EACtE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,CAC/C,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,aAAa,CAC7B,QAAQ,CAAC,MAAM,EACf,QAAQ,EACR,aAAa,WAAW,GAAG,CAC5B,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,eAAe,CACvB,4BAA4B,EAC5B,aAAa,WAAW,gCAAgC,SAAS,kBAAkB,UAAU,GAAG,EAChG,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAyC,CAAC;AACnD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x12i/ai-profiles",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "Resolve AI profile names into concrete model choices with bundled defaults and remote JSON refresh",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,6 +24,8 @@
24
24
  "test:unit": "vitest run --exclude 'test/{integration,exports}.test.ts'",
25
25
  "test:integration": "npm run build && vitest run test/integration.test.ts test/exports.test.ts",
26
26
  "test:watch": "vitest",
27
+ "verify:openrouter": "node scripts/verify-openrouter-alignment.mjs --source bundled",
28
+ "verify:openrouter:live": "node scripts/verify-openrouter-alignment.mjs --source live",
27
29
  "prepack": "npm run build",
28
30
  "prepublishOnly": "npm test",
29
31
  "pack:check": "npm pack --dry-run",