@x12i/ai-profiles 1.0.0 → 1.1.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.
Files changed (42) hide show
  1. package/README.md +44 -10
  2. package/dist/buildResolvedProfile.d.ts.map +1 -1
  3. package/dist/buildResolvedProfile.js +3 -1
  4. package/dist/buildResolvedProfile.js.map +1 -1
  5. package/dist/bundledRegistry.d.ts +4 -0
  6. package/dist/bundledRegistry.d.ts.map +1 -0
  7. package/dist/bundledRegistry.js +10 -0
  8. package/dist/bundledRegistry.js.map +1 -0
  9. package/dist/constants.d.ts +2 -0
  10. package/dist/constants.d.ts.map +1 -1
  11. package/dist/constants.js +2 -0
  12. package/dist/constants.js.map +1 -1
  13. package/dist/data/models-profiles.json +1 -2
  14. package/dist/data/profiles-shortcuts.json +1 -4
  15. package/dist/index.d.ts +3 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/isKnownProfileOrShortcut.d.ts +9 -0
  20. package/dist/isKnownProfileOrShortcut.d.ts.map +1 -0
  21. package/dist/isKnownProfileOrShortcut.js +22 -0
  22. package/dist/isKnownProfileOrShortcut.js.map +1 -0
  23. package/dist/legacyGraphEngineAliasMap.d.ts +11 -0
  24. package/dist/legacyGraphEngineAliasMap.d.ts.map +1 -0
  25. package/dist/legacyGraphEngineAliasMap.js +10 -0
  26. package/dist/legacyGraphEngineAliasMap.js.map +1 -0
  27. package/dist/listAIProfiles.d.ts.map +1 -1
  28. package/dist/listAIProfiles.js +3 -1
  29. package/dist/listAIProfiles.js.map +1 -1
  30. package/dist/listAIShortcuts.d.ts +4 -0
  31. package/dist/listAIShortcuts.d.ts.map +1 -0
  32. package/dist/listAIShortcuts.js +12 -0
  33. package/dist/listAIShortcuts.js.map +1 -0
  34. package/dist/loader/loadAIProfilesRegistry.d.ts.map +1 -1
  35. package/dist/loader/loadAIProfilesRegistry.js +2 -1
  36. package/dist/loader/loadAIProfilesRegistry.js.map +1 -1
  37. package/dist/types.d.ts +17 -5
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/validation/validateModelsProfilesJson.d.ts.map +1 -1
  40. package/dist/validation/validateModelsProfilesJson.js +20 -3
  41. package/dist/validation/validateModelsProfilesJson.js.map +1 -1
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @x12i/ai-profiles
2
2
 
3
- Resolve AI profile names into concrete model choices. The package ships with bundled JSON defaults and refreshes from public remote assets when available.
3
+ Resolve AI profile names into concrete model choices. The package ships JSON in `src/data/` as the offline fallback. By default, registry data is fetched from public assets, validated, and cached in memory.
4
4
 
5
5
  ## Install
6
6
 
@@ -11,7 +11,12 @@ npm install @x12i/ai-profiles
11
11
  ## Basic usage
12
12
 
13
13
  ```ts
14
- import { listAIProfiles, resolveAIProfile } from "@x12i/ai-profiles";
14
+ import {
15
+ isKnownProfileOrShortcut,
16
+ listAIProfiles,
17
+ listAIShortcuts,
18
+ resolveAIProfile,
19
+ } from "@x12i/ai-profiles";
15
20
 
16
21
  const profiles = await listAIProfiles();
17
22
  const model = await resolveAIProfile("cheap");
@@ -21,6 +26,28 @@ console.log(model.modelId);
21
26
  console.log(model.pricing);
22
27
  ```
23
28
 
29
+ ## Sync validation (bundled registry)
30
+
31
+ `listAIProfiles()` is async and returns profile summaries only. Shortcuts (e.g. `cheapest`) resolve via `resolveAIProfile` but are not included in that list unless you call `listAIShortcuts()`.
32
+
33
+ Use **`isKnownProfileOrShortcut(input)`** for form validation and Run-button gating on first paint — it reads the **bundled** registry only (no network, no cache race):
34
+
35
+ ```ts
36
+ const canRun =
37
+ isKnownProfileOrShortcut(aiProfile) &&
38
+ isKnownProfileOrShortcut(choiceProfile) &&
39
+ isKnownProfileOrShortcut(fallbackProfile);
40
+ ```
41
+
42
+ Unknown strings fail validation before `resolveAIProfile` / execute.
43
+
44
+ ### Primary keys vs aliases
45
+
46
+ - **Studio dropdowns** should use `profile` keys from `await listAIProfiles()` (e.g. `balanced`, `cheap`).
47
+ - **Shortcut dropdowns** (optional) use `listAIShortcuts()` → `{ key, profile, choice?, description? }`.
48
+ - **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`.
49
+ - **Reserved keys** (`default`, `strong`, `weak`) are invalid as profile keys, shortcut keys, and profile aliases. Store primary keys only (e.g. `balanced`, not `default`).
50
+
24
51
  ## Resolve a shortcut
25
52
 
26
53
  ```ts
@@ -57,16 +84,21 @@ const model = await resolveAIProfile("balanced", {
57
84
 
58
85
  ## Runtime behavior
59
86
 
60
- 1. Package ships with local JSON files in `src/data/`.
61
- 2. First call tries to load remote JSON from `open-assets.x12i.com`.
62
- 3. Remote JSON is validated before caching.
63
- 4. Valid remote registry is cached in process memory for 24 hours.
64
- 5. After TTL expiry, the next call attempts refresh.
65
- 6. If remote fetch fails, the package falls back to bundled JSON.
66
- 7. If refresh fails but a prior cache exists, stale cache is reused with a warning.
87
+ **Default (`source: "auto"`):**
88
+
89
+ 1. Fetch `models-profiles.json` and `profiles-shortcuts.json` from the assets URLs (see below).
90
+ 2. Validate the response; if valid, use it and cache it in process memory for 24 hours.
91
+ 3. If fetch or validation fails, use the JSON shipped inside this npm package (bundled fallback).
92
+ 4. After TTL, the next call tries fetch again; if that fails but an earlier fetch was cached, reuse the stale cache with a warning.
93
+
94
+ **`source: "bundled"`** — package JSON only, no network.
95
+
96
+ **`source: "remote"`** — fetch every time (still cached after success); errors propagate, no bundled fallback.
67
97
 
68
98
  No database. No disk cache in v1.
69
99
 
100
+ The `version` field in the JSON files (and `registryVersion` on resolved output) is an optional label for humans or external tooling. This package does not compare versions, enforce semver, or pick assets by version number.
101
+
70
102
  ## Remote assets
71
103
 
72
104
  - `https://open-assets.x12i.com/models-profiles.json`
@@ -119,8 +151,10 @@ npm publish --access public
119
151
 
120
152
  ### Publish via GitHub Actions
121
153
 
154
+ Workflow YAML is in [`docs/github-workflows/`](docs/github-workflows/). Copy into `.github/workflows/` and push using a GitHub token with the **`workflow`** scope (see `docs/github-workflows/README.md`).
155
+
122
156
  1. Add repository secret **`NPM_TOKEN`** (npm automation token with publish rights for `@x12i`)
123
- 2. Create a **GitHub Release** (tag e.g. `v0.1.0`) — triggers `.github/workflows/publish-npm.yml`
157
+ 2. Create a **GitHub Release** (tag e.g. `v1.0.0`) — triggers `publish-npm.yml`
124
158
  3. Or run **Publish to npm** workflow manually from the Actions tab
125
159
 
126
160
  ### After publish
@@ -1 +1 @@
1
- {"version":3,"file":"buildResolvedProfile.d.ts","sourceRoot":"","sources":["../src/buildResolvedProfile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,UAAU,yBAAyB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACrC;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,yBAAyB,GAChC,iBAAiB,CAsFnB"}
1
+ {"version":3,"file":"buildResolvedProfile.d.ts","sourceRoot":"","sources":["../src/buildResolvedProfile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,UAAU,yBAAyB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACrC;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,yBAAyB,GAChC,iBAAiB,CAwFnB"}
@@ -51,7 +51,9 @@ export function buildResolvedProfile(params) {
51
51
  runtime,
52
52
  reason: choice.reason,
53
53
  source: registry.source,
54
- registryVersion: registry.version,
54
+ ...(registry.version !== undefined
55
+ ? { registryVersion: registry.version }
56
+ : {}),
55
57
  loadedAt: registry.loadedAt,
56
58
  expiresAt,
57
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"buildResolvedProfile.js","sourceRoot":"","sources":["../src/buildResolvedProfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildResolvedProfile.js","sourceRoot":"","sources":["../src/buildResolvedProfile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { AIProfilesRegistry } from "./types.js";
2
+ /** Synchronous access to the bundled registry (no network). */
3
+ export declare function getBundledRegistry(): AIProfilesRegistry;
4
+ //# sourceMappingURL=bundledRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundledRegistry.d.ts","sourceRoot":"","sources":["../src/bundledRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrD,+DAA+D;AAC/D,wBAAgB,kBAAkB,IAAI,kBAAkB,CAMvD"}
@@ -0,0 +1,10 @@
1
+ import { loadBundledRegistry } from "./loader/loadBundledRegistry.js";
2
+ let cached;
3
+ /** Synchronous access to the bundled registry (no network). */
4
+ export function getBundledRegistry() {
5
+ if (!cached) {
6
+ cached = loadBundledRegistry();
7
+ }
8
+ return cached;
9
+ }
10
+ //# sourceMappingURL=bundledRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundledRegistry.js","sourceRoot":"","sources":["../src/bundledRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,IAAI,MAAsC,CAAC;AAE3C,+DAA+D;AAC/D,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -5,5 +5,7 @@ export declare const REMOTE_MODELS_PROFILES_URL = "https://open-assets.x12i.com/
5
5
  export declare const REMOTE_PROFILES_SHORTCUTS_URL = "https://open-assets.x12i.com/profiles-shortcuts.json";
6
6
  export declare const MODELS_PROFILES_SCHEMA: "x12i.ai-profiles.models-profiles";
7
7
  export declare const PROFILES_SHORTCUTS_SCHEMA: "x12i.ai-profiles.shortcuts";
8
+ /** Reserved keys — not valid profile or shortcut identifiers. */
9
+ export declare const RESERVED_PROFILE_KEYS: readonly ["default", "strong", "weak"];
8
10
  export declare const DEFAULT_RUNTIME_DEFAULTS: Required<AIRuntimeDefaults>;
9
11
  //# sourceMappingURL=constants.d.ts.map
@@ -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,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,iBAAiB,CAWhE,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,wCAAyC,CAAC;AAE5E,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,iBAAiB,CAWhE,CAAC"}
package/dist/constants.js CHANGED
@@ -4,6 +4,8 @@ export const REMOTE_MODELS_PROFILES_URL = "https://open-assets.x12i.com/models-p
4
4
  export const REMOTE_PROFILES_SHORTCUTS_URL = "https://open-assets.x12i.com/profiles-shortcuts.json";
5
5
  export const MODELS_PROFILES_SCHEMA = "x12i.ai-profiles.models-profiles";
6
6
  export const PROFILES_SHORTCUTS_SCHEMA = "x12i.ai-profiles.shortcuts";
7
+ /** Reserved keys — not valid profile or shortcut identifiers. */
8
+ export const RESERVED_PROFILE_KEYS = ["default", "strong", "weak"];
7
9
  export const DEFAULT_RUNTIME_DEFAULTS = {
8
10
  reasoningEffort: "medium",
9
11
  outputMode: "text",
@@ -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,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;CACpB,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,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAE5E,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;CACpB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "x12i.ai-profiles.models-profiles",
3
3
  "generatedAt": "2026-05-27T00:00:00.000Z",
4
- "version": "0.1.0",
4
+ "version": "1.1.0",
5
5
  "currency": "USD",
6
6
  "pricingUnit": "1M_tokens",
7
7
  "profiles": {
@@ -157,7 +157,6 @@
157
157
  "category": "standard",
158
158
  "aliases": [
159
159
  "standard",
160
- "default",
161
160
  "normal"
162
161
  ],
163
162
  "defaultChoice": "default",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schema": "x12i.ai-profiles.shortcuts",
3
- "version": "0.1.0",
3
+ "version": "1.1.0",
4
4
  "generatedAt": "2026-05-27T00:00:00.000Z",
5
5
  "shortcuts": {
6
6
  "economy": {
@@ -33,9 +33,6 @@
33
33
  "standard": {
34
34
  "profile": "balanced"
35
35
  },
36
- "default": {
37
- "profile": "balanced"
38
- },
39
36
  "thinking": {
40
37
  "profile": "deep"
41
38
  },
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export { listAIProfiles } from "./listAIProfiles.js";
2
+ export { listAIShortcuts } from "./listAIShortcuts.js";
2
3
  export { resolveAIProfile } from "./resolveAIProfile.js";
3
- export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, ResolvedAIProfile, ListAIProfilesOptions, ResolveAIProfileOptions, AIProvider, AIModelPricing, AIRuntimeDefaults, AIProfileWarning, RegistrySourceMode, } from "./types.js";
4
+ export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
5
+ export type { AIProfilesRegistry, AIProfileDefinition, AIProfileChoice, AIProfileShortcut, AIProfileSummary, AIShortcutSummary, ResolvedAIProfile, ListAIProfilesOptions, ResolveAIProfileOptions, AIProvider, AIModelPricing, AIRuntimeDefaults, AIProfileWarning, RegistrySourceMode, } from "./types.js";
4
6
  export { AIProfilesError } from "./errors.js";
5
7
  export type { AIProfilesErrorCode } from "./errors.js";
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -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,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,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;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,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
@@ -1,4 +1,6 @@
1
1
  export { listAIProfiles } from "./listAIProfiles.js";
2
+ export { listAIShortcuts } from "./listAIShortcuts.js";
2
3
  export { resolveAIProfile } from "./resolveAIProfile.js";
4
+ export { isKnownProfileOrShortcut } from "./isKnownProfileOrShortcut.js";
3
5
  export { AIProfilesError } from "./errors.js";
4
6
  //# 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,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAkBzD,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;AAmBzE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Returns true when `input` matches a profile primary key or a shortcut key
3
+ * in the bundled registry. Sync — no network and safe on first paint.
4
+ *
5
+ * Profile aliases (see `listAIProfiles`) are not primary keys and are not
6
+ * accepted here unless the same string is also a shortcut key.
7
+ */
8
+ export declare function isKnownProfileOrShortcut(input: string): boolean;
9
+ //# sourceMappingURL=isKnownProfileOrShortcut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isKnownProfileOrShortcut.d.ts","sourceRoot":"","sources":["../src/isKnownProfileOrShortcut.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAkB/D"}
@@ -0,0 +1,22 @@
1
+ import { getBundledRegistry } from "./bundledRegistry.js";
2
+ import { RESERVED_PROFILE_KEYS } from "./constants.js";
3
+ import { normalizeKey } from "./normalizeKey.js";
4
+ /**
5
+ * Returns true when `input` matches a profile primary key or a shortcut key
6
+ * in the bundled registry. Sync — no network and safe on first paint.
7
+ *
8
+ * Profile aliases (see `listAIProfiles`) are not primary keys and are not
9
+ * accepted here unless the same string is also a shortcut key.
10
+ */
11
+ export function isKnownProfileOrShortcut(input) {
12
+ const key = normalizeKey(input);
13
+ if (!key) {
14
+ return false;
15
+ }
16
+ if (RESERVED_PROFILE_KEYS.includes(key)) {
17
+ return false;
18
+ }
19
+ const registry = getBundledRegistry();
20
+ return key in registry.profiles || key in registry.shortcuts;
21
+ }
22
+ //# sourceMappingURL=isKnownProfileOrShortcut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isKnownProfileOrShortcut.js","sourceRoot":"","sources":["../src/isKnownProfileOrShortcut.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEhC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IACE,qBAAqB,CAAC,QAAQ,CAC5B,GAA6C,CAC9C,EACD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAEtC,OAAO,GAAG,IAAI,QAAQ,CAAC,QAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
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
+ */
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;
11
+ //# sourceMappingURL=legacyGraphEngineAliasMap.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ /**
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
+ */
5
+ export const legacyGraphEngineAliasMap = {
6
+ default: "balanced",
7
+ strong: "deep",
8
+ weak: "cheap",
9
+ };
10
+ //# sourceMappingURL=legacyGraphEngineAliasMap.js.map
@@ -0,0 +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 +1 @@
1
- {"version":3,"file":"listAIProfiles.d.ts","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuC7B"}
1
+ {"version":3,"file":"listAIProfiles.d.ts","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE1E,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyC7B"}
@@ -30,7 +30,9 @@ export async function listAIProfiles(options = {}) {
30
30
  defaultProvider: defaultChoice.provider,
31
31
  defaultModelId: defaultChoice.modelId,
32
32
  source: registry.source,
33
- registryVersion: registry.version,
33
+ ...(registry.version !== undefined
34
+ ? { registryVersion: registry.version }
35
+ : {}),
34
36
  };
35
37
  });
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"listAIProfiles.js","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAGxF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAiC,EAAE;IAEnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kCAAkC,CAAC;QAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACpC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE7D,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,eAAe,EAAE,aAAa,CAAC,QAAQ;YACvC,cAAc,EAAE,aAAa,CAAC,OAAO;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,eAAe,EAAE,QAAQ,CAAC,OAAO;SAClC,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"listAIProfiles.js","sourceRoot":"","sources":["../src/listAIProfiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAGxF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAiC,EAAE;IAEnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,kCAAkC,CAAC;QAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACpC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAE7D,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,eAAe,EAAE,aAAa,CAAC,QAAQ;YACvC,cAAc,EAAE,aAAa,CAAC,OAAO;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AIShortcutSummary } from "./types.js";
2
+ /** Lists shortcut keys from the bundled registry (sync, no network). */
3
+ export declare function listAIShortcuts(): AIShortcutSummary[];
4
+ //# sourceMappingURL=listAIShortcuts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listAIShortcuts.d.ts","sourceRoot":"","sources":["../src/listAIShortcuts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,wEAAwE;AACxE,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CASrD"}
@@ -0,0 +1,12 @@
1
+ import { getBundledRegistry } from "./bundledRegistry.js";
2
+ /** Lists shortcut keys from the bundled registry (sync, no network). */
3
+ export function listAIShortcuts() {
4
+ const registry = getBundledRegistry();
5
+ return Object.entries(registry.shortcuts).map(([key, shortcut]) => ({
6
+ key,
7
+ profile: shortcut.profile,
8
+ choice: shortcut.choice,
9
+ description: shortcut.description,
10
+ }));
11
+ }
12
+ //# sourceMappingURL=listAIShortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listAIShortcuts.js","sourceRoot":"","sources":["../src/listAIShortcuts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,wEAAwE;AACxE,MAAM,UAAU,eAAe;IAC7B,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAEtC,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,GAAG;QACH,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadAIProfilesRegistry.d.ts","sourceRoot":"","sources":["../../src/loader/loadAIProfilesRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AA0BrB,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAG7B;AAED,wBAAsB,kCAAkC,CACtD,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAwD7B"}
1
+ {"version":3,"file":"loadAIProfilesRegistry.d.ts","sourceRoot":"","sources":["../../src/loader/loadAIProfilesRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AA0BrB,wBAAsB,sBAAsB,CAC1C,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAG7B;AAED,wBAAsB,kCAAkC,CACtD,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA0D7B"}
@@ -37,6 +37,7 @@ export async function loadAIProfilesRegistryWithWarnings(options = {}) {
37
37
  warnings,
38
38
  };
39
39
  }
40
+ // auto: web fetch → memory cache; on failure use package JSON (or stale cache after TTL)
40
41
  const shouldAttemptRefresh = refresh || !existingCache || !isCacheValid(existingCache);
41
42
  if (shouldAttemptRefresh) {
42
43
  try {
@@ -55,7 +56,7 @@ export async function loadAIProfilesRegistryWithWarnings(options = {}) {
55
56
  }
56
57
  warnings.push({
57
58
  code: "USING_BUNDLED_FALLBACK",
58
- message: "Remote registry could not be loaded. Using bundled registry.",
59
+ message: "Remote registry could not be loaded. Using JSON bundled in this package.",
59
60
  });
60
61
  return {
61
62
  registry: cacheAndReturn(loadBundledRegistry(), "bundled"),
@@ -1 +1 @@
1
- {"version":3,"file":"loadAIProfilesRegistry.js","sourceRoot":"","sources":["../../src/loader/loadAIProfilesRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAOvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAE1B,SAAS,cAAc,CACrB,QAA4B,EAC5B,MAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAwB;QACjC,QAAQ;QACR,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,GAAG,GAAG,oBAAoB;QACrC,MAAM;KACP,CAAC;IAEF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,MAAM,kCAAkC,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,cAAc,EAAE,CAAC;IAEvC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,aAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,QAAQ,EAAE,cAAc,CAAC,mBAAmB,EAAE,EAAE,SAAS,CAAC;YAC1D,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO;YACL,QAAQ,EAAE,cAAc,CAAC,MAAM,kBAAkB,EAAE,EAAE,QAAQ,CAAC;YAC9D,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,GACxB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAE5D,IAAI,oBAAoB,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO;gBACL,QAAQ,EAAE,cAAc,CAAC,MAAM,kBAAkB,EAAE,EAAE,QAAQ,CAAC;gBAC9D,QAAQ;aACT,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,mCAAmC;oBACzC,OAAO,EACL,mEAAmE;iBACtE,CAAC,CAAC;gBACH,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACxD,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ,EAAE,cAAc,CAAC,mBAAmB,EAAE,EAAE,SAAS,CAAC;gBAC1D,QAAQ;aACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,aAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"loadAIProfilesRegistry.js","sourceRoot":"","sources":["../../src/loader/loadAIProfilesRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAOvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAE1B,SAAS,cAAc,CACrB,QAA4B,EAC5B,MAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAwB;QACjC,QAAQ;QACR,QAAQ,EAAE,GAAG;QACb,SAAS,EAAE,GAAG,GAAG,oBAAoB;QACrC,MAAM;KACP,CAAC;IAEF,cAAc,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,MAAM,kCAAkC,CAAC,OAAO,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,aAAa,GAAG,cAAc,EAAE,CAAC;IAEvC,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,aAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,QAAQ,EAAE,cAAc,CAAC,mBAAmB,EAAE,EAAE,SAAS,CAAC;YAC1D,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO;YACL,QAAQ,EAAE,cAAc,CAAC,MAAM,kBAAkB,EAAE,EAAE,QAAQ,CAAC;YAC9D,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,yFAAyF;IACzF,MAAM,oBAAoB,GACxB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAE5D,IAAI,oBAAoB,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO;gBACL,QAAQ,EAAE,cAAc,CAAC,MAAM,kBAAkB,EAAE,EAAE,QAAQ,CAAC;gBAC9D,QAAQ;aACT,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,mCAAmC;oBACzC,OAAO,EACL,mEAAmE;iBACtE,CAAC,CAAC;gBACH,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACxD,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EACL,0EAA0E;aAC7E,CAAC,CAAC;YAEH,OAAO;gBACL,QAAQ,EAAE,cAAc,CAAC,mBAAmB,EAAE,EAAE,SAAS,CAAC;gBAC1D,QAAQ;aACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,aAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzD,CAAC"}
package/dist/types.d.ts CHANGED
@@ -58,7 +58,8 @@ export interface AIProfileShortcut {
58
58
  }
59
59
  export interface ModelsProfilesJson {
60
60
  schema: "x12i.ai-profiles.models-profiles";
61
- version: string;
61
+ /** Optional label in source JSON; not used for compatibility or selection logic. */
62
+ version?: string;
62
63
  generatedAt?: string;
63
64
  currency: "USD";
64
65
  pricingUnit: "1M_tokens";
@@ -66,13 +67,15 @@ export interface ModelsProfilesJson {
66
67
  }
67
68
  export interface ProfilesShortcutsJson {
68
69
  schema: "x12i.ai-profiles.shortcuts";
69
- version: string;
70
+ /** Optional label in source JSON; not used for compatibility or selection logic. */
71
+ version?: string;
70
72
  generatedAt?: string;
71
73
  shortcuts: Record<string, AIProfileShortcut>;
72
74
  }
73
75
  export type RegistrySourceMode = "auto" | "remote" | "bundled";
74
76
  export interface AIProfilesRegistry {
75
- version: string;
77
+ /** Copied from models-profiles when present; informational only. */
78
+ version?: string;
76
79
  generatedAt?: string;
77
80
  currency: "USD";
78
81
  pricingUnit: "1M_tokens";
@@ -88,11 +91,19 @@ export interface AIProfileSummary {
88
91
  category: string;
89
92
  defaultChoice: string;
90
93
  choices: string[];
94
+ /** Human-friendly alternate names; not accepted by `isKnownProfileOrShortcut`. */
91
95
  aliases: string[];
92
96
  defaultProvider: AIProvider;
93
97
  defaultModelId: string;
94
98
  source: "remote" | "bundled";
95
- registryVersion: string;
99
+ /** Echo of registry `version` when present; not used by this package. */
100
+ registryVersion?: string;
101
+ }
102
+ export interface AIShortcutSummary {
103
+ key: string;
104
+ profile: string;
105
+ choice?: string;
106
+ description?: string;
96
107
  }
97
108
  export interface AIProfileWarning {
98
109
  code: "USING_BUNDLED_FALLBACK" | "PROFILE_DEPRECATED" | "CHOICE_DEPRECATED" | "PRICING_MISSING" | "REMOTE_REFRESH_FAILED_USING_CACHE";
@@ -116,7 +127,8 @@ export interface ResolvedAIProfile {
116
127
  runtime: Required<AIRuntimeDefaults>;
117
128
  reason?: string;
118
129
  source: "remote" | "bundled";
119
- registryVersion: string;
130
+ /** Echo of registry `version` when present; not used by this package. */
131
+ registryVersion?: string;
120
132
  loadedAt: string;
121
133
  expiresAt: string;
122
134
  shortcut?: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,UAAU,GACV,SAAS,GACT,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,CAAC;AAEb,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,qBAAqB,GAAG,eAAe,CAAC;IAE5E,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAE7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC;CACxD;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAE5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;IAElD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,aAAa,EAAE,MAAM,CAAC;IAEtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAEzC,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,CAAC;IAElD,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAE5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kCAAkC,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,KAAK,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IAEzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,4BAA4B,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IAEzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE7C,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,EAAE,UAAU,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EACA,wBAAwB,GACxB,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,mCAAmC,CAAC;IAExC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAE1B,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,cAAc,GAAG;QACzB,QAAQ,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,WAAW,CAAC;KACnB,CAAC;IAEF,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAErC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateModelsProfilesJson.d.ts","sourceRoot":"","sources":["../../src/validation/validateModelsProfilesJson.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAmGrB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CA8C7E;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,qBAAqB,CAmEvB"}
1
+ {"version":3,"file":"validateModelsProfilesJson.d.ts","sourceRoot":"","sources":["../../src/validation/validateModelsProfilesJson.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA2HrB,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 { MODELS_PROFILES_SCHEMA, PROFILES_SHORTCUTS_SCHEMA, } from "../constants.js";
2
+ import { 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
  }
@@ -38,6 +38,16 @@ function validateProfile(profileKey, profile) {
38
38
  for (const [choiceKey, choice] of Object.entries(profile.choices)) {
39
39
  validateChoice(choiceKey, choice, profileKey);
40
40
  }
41
+ if (Array.isArray(profile.aliases)) {
42
+ for (const alias of profile.aliases) {
43
+ if (typeof alias !== "string" || alias.trim() === "") {
44
+ throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", `Invalid alias on profile '${profileKey}'`, { profile: profileKey, alias });
45
+ }
46
+ if (RESERVED_PROFILE_KEYS.includes(alias)) {
47
+ throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", `Profile '${profileKey}' alias '${alias}' is reserved`, { profile: profileKey, alias });
48
+ }
49
+ }
50
+ }
41
51
  }
42
52
  export function validateModelsProfilesJson(value) {
43
53
  if (!isRecord(value)) {
@@ -46,7 +56,9 @@ export function validateModelsProfilesJson(value) {
46
56
  if (value.schema !== MODELS_PROFILES_SCHEMA) {
47
57
  throw new AIProfilesError(value.schema ? "REGISTRY_SCHEMA_UNSUPPORTED" : "REGISTRY_VALIDATION_FAILED", `Unsupported or missing models-profiles schema: ${String(value.schema)}`, { schema: value.schema });
48
58
  }
49
- requireString(value.version, "version", "models-profiles.json");
59
+ if (value.version !== undefined) {
60
+ requireString(value.version, "version", "models-profiles.json");
61
+ }
50
62
  if (value.currency !== "USD") {
51
63
  throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", "models-profiles.json currency must be USD", { currency: value.currency });
52
64
  }
@@ -68,11 +80,16 @@ export function validateProfilesShortcutsJson(value, profiles) {
68
80
  if (value.schema !== PROFILES_SHORTCUTS_SCHEMA) {
69
81
  throw new AIProfilesError(value.schema ? "REGISTRY_SCHEMA_UNSUPPORTED" : "REGISTRY_VALIDATION_FAILED", `Unsupported or missing profiles-shortcuts schema: ${String(value.schema)}`, { schema: value.schema });
70
82
  }
71
- requireString(value.version, "version", "profiles-shortcuts.json");
83
+ if (value.version !== undefined) {
84
+ requireString(value.version, "version", "profiles-shortcuts.json");
85
+ }
72
86
  if (!isRecord(value.shortcuts)) {
73
87
  throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", "profiles-shortcuts.json shortcuts must be an object");
74
88
  }
75
89
  for (const [shortcutKey, shortcut] of Object.entries(value.shortcuts)) {
90
+ if (RESERVED_PROFILE_KEYS.includes(shortcutKey)) {
91
+ throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", `Shortcut key '${shortcutKey}' is reserved`, { shortcut: shortcutKey });
92
+ }
76
93
  if (!isRecord(shortcut)) {
77
94
  throw new AIProfilesError("REGISTRY_VALIDATION_FAILED", `Invalid shortcut '${shortcutKey}'`, { shortcut: shortcutKey });
78
95
  }
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@x12i/ai-profiles",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
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",