@x12i/ai-tools 1.0.4 → 2.0.1

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 (162) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +146 -204
  3. package/dist/AiModelsCatalogClient-B5FMI9gj.d.cts +58 -0
  4. package/dist/AiModelsCatalogClient-CPPNI6Ry.d.ts +58 -0
  5. package/dist/aliases/index.cjs +4 -3
  6. package/dist/aliases/index.cjs.map +1 -1
  7. package/dist/aliases/index.d.cts +3 -5
  8. package/dist/aliases/index.d.ts +3 -5
  9. package/dist/aliases/index.js +2 -2
  10. package/dist/catalog/index.cjs +18 -9
  11. package/dist/catalog/index.cjs.map +1 -1
  12. package/dist/catalog/index.d.cts +13 -100
  13. package/dist/catalog/index.d.ts +13 -100
  14. package/dist/catalog/index.js +31 -23
  15. package/dist/{chunk-AJEKEWWB.js → chunk-2PTCWPHV.js} +17 -3
  16. package/dist/chunk-2PTCWPHV.js.map +1 -0
  17. package/dist/chunk-56R4XA2S.js +1 -0
  18. package/dist/chunk-5GUKLOEK.cjs +1 -0
  19. package/dist/chunk-5GUKLOEK.cjs.map +1 -0
  20. package/dist/chunk-5IZ7PLY2.cjs +51 -0
  21. package/dist/chunk-5IZ7PLY2.cjs.map +1 -0
  22. package/dist/chunk-5XAAMBDO.cjs +1988 -0
  23. package/dist/chunk-5XAAMBDO.cjs.map +1 -0
  24. package/dist/chunk-6BQBKROR.js +95 -0
  25. package/dist/chunk-6BQBKROR.js.map +1 -0
  26. package/dist/chunk-AB5GNXJ4.js +46 -0
  27. package/dist/chunk-AB5GNXJ4.js.map +1 -0
  28. package/dist/{chunk-O2A6OVEH.js → chunk-ANVONYJF.js} +2 -2
  29. package/dist/{chunk-O2A6OVEH.js.map → chunk-ANVONYJF.js.map} +1 -1
  30. package/dist/chunk-B3V2EHRY.js +225 -0
  31. package/dist/chunk-B3V2EHRY.js.map +1 -0
  32. package/dist/{chunk-QWAX7VQO.cjs → chunk-BAHBDADJ.cjs} +11 -11
  33. package/dist/{chunk-QWAX7VQO.cjs.map → chunk-BAHBDADJ.cjs.map} +1 -1
  34. package/dist/chunk-CTM35DMA.js +948 -0
  35. package/dist/chunk-CTM35DMA.js.map +1 -0
  36. package/dist/{chunk-TF4L2NEC.cjs → chunk-DXZOL3VN.cjs} +62 -313
  37. package/dist/chunk-DXZOL3VN.cjs.map +1 -0
  38. package/dist/chunk-EDMCKHO6.cjs +225 -0
  39. package/dist/chunk-EDMCKHO6.cjs.map +1 -0
  40. package/dist/{chunk-DJ5SWJDY.js → chunk-EYHMQVAL.js} +48 -299
  41. package/dist/chunk-EYHMQVAL.js.map +1 -0
  42. package/dist/chunk-GS7T56RP.cjs +8 -0
  43. package/dist/chunk-GS7T56RP.cjs.map +1 -0
  44. package/dist/chunk-OPN6BGNH.js +1985 -0
  45. package/dist/chunk-OPN6BGNH.js.map +1 -0
  46. package/dist/{chunk-7Q742NI3.cjs → chunk-PADNCGZB.cjs} +17 -3
  47. package/dist/chunk-PADNCGZB.cjs.map +1 -0
  48. package/dist/chunk-PRCICORG.cjs +95 -0
  49. package/dist/chunk-PRCICORG.cjs.map +1 -0
  50. package/dist/{chunk-6QGDZTGH.js → chunk-SIH4GPV4.js} +4 -29
  51. package/dist/chunk-SIH4GPV4.js.map +1 -0
  52. package/dist/{chunk-4NAY6HRP.js → chunk-VJHLO2R3.js} +7 -58
  53. package/dist/chunk-VJHLO2R3.js.map +1 -0
  54. package/dist/chunk-WOHMHXRZ.cjs +951 -0
  55. package/dist/chunk-WOHMHXRZ.cjs.map +1 -0
  56. package/dist/chunk-XAWBTX3N.cjs +46 -0
  57. package/dist/chunk-XAWBTX3N.cjs.map +1 -0
  58. package/dist/{chunk-AV6OE2YQ.cjs → chunk-XOKUDUUI.cjs} +14 -39
  59. package/dist/chunk-XOKUDUUI.cjs.map +1 -0
  60. package/dist/chunk-YQDSN6R6.cjs +86 -0
  61. package/dist/chunk-YQDSN6R6.cjs.map +1 -0
  62. package/dist/chunk-YQVY7CWT.js +51 -0
  63. package/dist/chunk-YQVY7CWT.js.map +1 -0
  64. package/dist/cli/index.cjs +59 -201
  65. package/dist/cli/index.cjs.map +1 -1
  66. package/dist/cli/index.js +53 -198
  67. package/dist/cli/index.js.map +1 -1
  68. package/dist/cost/index.cjs +19 -3
  69. package/dist/cost/index.cjs.map +1 -1
  70. package/dist/cost/index.d.cts +10 -50
  71. package/dist/cost/index.d.ts +10 -50
  72. package/dist/cost/index.js +18 -3
  73. package/dist/index.cjs +36 -14
  74. package/dist/index.cjs.map +1 -1
  75. package/dist/index.d.cts +15 -13
  76. package/dist/index.d.ts +15 -13
  77. package/dist/index.js +56 -35
  78. package/dist/modelCache-BzRn6t_C.d.ts +113 -0
  79. package/dist/modelCache-CJftI-Ko.d.cts +113 -0
  80. package/dist/{modelNameResolver-DqFt7g6W.d.ts → modelNameResolver-5XkBMctP.d.ts} +2 -6
  81. package/dist/{modelNameResolver-D9V_GfUK.d.cts → modelNameResolver-C5CSTGFF.d.cts} +2 -6
  82. package/dist/models/index.cjs +9 -6
  83. package/dist/models/index.cjs.map +1 -1
  84. package/dist/models/index.d.cts +9 -31
  85. package/dist/models/index.d.ts +9 -31
  86. package/dist/models/index.js +9 -7
  87. package/dist/profiles/index.cjs +18 -0
  88. package/dist/profiles/index.cjs.map +1 -0
  89. package/dist/profiles/index.d.cts +40 -0
  90. package/dist/profiles/index.d.ts +40 -0
  91. package/dist/profiles/index.js +17 -0
  92. package/dist/resolveUsageModel-BFwf80Hz.d.ts +140 -0
  93. package/dist/resolveUsageModel-C_YmGR1M.d.cts +140 -0
  94. package/dist/sync/index.cjs +7 -9
  95. package/dist/sync/index.cjs.map +1 -1
  96. package/dist/sync/index.d.cts +3 -8
  97. package/dist/sync/index.d.ts +3 -8
  98. package/dist/sync/index.js +8 -11
  99. package/dist/toolbox/index.cjs +1 -0
  100. package/dist/toolbox/index.cjs.map +1 -1
  101. package/dist/types-BrzJWsTU.d.cts +277 -0
  102. package/dist/types-BrzJWsTU.d.ts +277 -0
  103. package/package.json +14 -20
  104. package/src/data/models-catalog.json +670 -0
  105. package/src/data/openrouter-models-catalog.json +857 -0
  106. package/dist/AiModelsCatalogClient-4RF5BCDL.cjs +0 -9
  107. package/dist/AiModelsCatalogClient-4RF5BCDL.cjs.map +0 -1
  108. package/dist/AiModelsCatalogClient-CNeqFiFs.d.cts +0 -30
  109. package/dist/AiModelsCatalogClient-NUF3CBLW.js +0 -9
  110. package/dist/AiModelsCatalogClient-nwFoEaqL.d.ts +0 -30
  111. package/dist/catalox/index.cjs +0 -21
  112. package/dist/catalox/index.cjs.map +0 -1
  113. package/dist/catalox/index.d.cts +0 -11
  114. package/dist/catalox/index.d.ts +0 -11
  115. package/dist/catalox/index.js +0 -21
  116. package/dist/chunk-4NAY6HRP.js.map +0 -1
  117. package/dist/chunk-6QGDZTGH.js.map +0 -1
  118. package/dist/chunk-7Q742NI3.cjs.map +0 -1
  119. package/dist/chunk-AJEKEWWB.js.map +0 -1
  120. package/dist/chunk-AV6OE2YQ.cjs.map +0 -1
  121. package/dist/chunk-C3H7RTFR.cjs +0 -1
  122. package/dist/chunk-C3H7RTFR.cjs.map +0 -1
  123. package/dist/chunk-DJ5SWJDY.js.map +0 -1
  124. package/dist/chunk-DKHGWHXP.cjs +0 -169
  125. package/dist/chunk-DKHGWHXP.cjs.map +0 -1
  126. package/dist/chunk-F2F4UEFD.cjs +0 -75
  127. package/dist/chunk-F2F4UEFD.cjs.map +0 -1
  128. package/dist/chunk-FGP3QXWL.cjs +0 -163
  129. package/dist/chunk-FGP3QXWL.cjs.map +0 -1
  130. package/dist/chunk-G2G4KSC5.js +0 -30
  131. package/dist/chunk-G2G4KSC5.js.map +0 -1
  132. package/dist/chunk-HN6UAQAE.cjs +0 -83
  133. package/dist/chunk-HN6UAQAE.cjs.map +0 -1
  134. package/dist/chunk-HS74X2OJ.cjs +0 -172
  135. package/dist/chunk-HS74X2OJ.cjs.map +0 -1
  136. package/dist/chunk-HYGXZY25.js +0 -163
  137. package/dist/chunk-HYGXZY25.js.map +0 -1
  138. package/dist/chunk-KQOALKKX.js +0 -75
  139. package/dist/chunk-KQOALKKX.js.map +0 -1
  140. package/dist/chunk-LYOU7CA2.cjs +0 -30
  141. package/dist/chunk-LYOU7CA2.cjs.map +0 -1
  142. package/dist/chunk-M5TMA73F.js +0 -1
  143. package/dist/chunk-M5TMA73F.js.map +0 -1
  144. package/dist/chunk-MX3AMQFC.js +0 -172
  145. package/dist/chunk-MX3AMQFC.js.map +0 -1
  146. package/dist/chunk-QCRLKVB3.cjs +0 -137
  147. package/dist/chunk-QCRLKVB3.cjs.map +0 -1
  148. package/dist/chunk-TF4L2NEC.cjs.map +0 -1
  149. package/dist/chunk-VRFVF5RH.js +0 -169
  150. package/dist/chunk-VRFVF5RH.js.map +0 -1
  151. package/dist/chunk-YHO57D2V.js +0 -83
  152. package/dist/chunk-YHO57D2V.js.map +0 -1
  153. package/dist/syncAiModelsCatalog-CnXRLm2c.d.cts +0 -32
  154. package/dist/syncAiModelsCatalog-DpkN_w7S.d.ts +0 -32
  155. package/dist/types-BYXnCvKx.d.cts +0 -137
  156. package/dist/types-BYXnCvKx.d.ts +0 -137
  157. package/dist/types-CX6QFNNy.d.cts +0 -144
  158. package/dist/types-CuiPDcVs.d.ts +0 -144
  159. package/dist/upsertAiModelRecord-C831wOIF.d.ts +0 -35
  160. package/dist/upsertAiModelRecord-CjY-sny0.d.cts +0 -35
  161. /package/dist/{AiModelsCatalogClient-NUF3CBLW.js.map → chunk-56R4XA2S.js.map} +0 -0
  162. /package/dist/{catalox → profiles}/index.js.map +0 -0
@@ -0,0 +1,113 @@
1
+ import { L as LoadCatalogOptions, b as LoadedCatalogs } from './AiModelsCatalogClient-CPPNI6Ry.js';
2
+
3
+ /** Remote catalog URLs (primary). */
4
+ declare const DEFAULT_DIRECT_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.json";
5
+ declare const DEFAULT_OPENROUTER_CATALOG_URL = "https://open-assets.x12i.com/openrouter-models-catalog.json";
6
+ type CatalogSourceKind = "direct" | "openrouter";
7
+ type X12iCatalogPricing = {
8
+ input?: number | null;
9
+ output?: number | null;
10
+ cachedInput?: number | null;
11
+ cacheHit?: number | null;
12
+ cacheWrite?: number | null;
13
+ cacheWrite5m?: number | null;
14
+ cacheWrite1h?: number | null;
15
+ textInput?: number | null;
16
+ textOutput?: number | null;
17
+ audioInput?: number | null;
18
+ imageInput?: number | null;
19
+ internalReasoning?: number | null;
20
+ webSearchPerRequest?: number | null;
21
+ inputBelow200k?: number | null;
22
+ inputAbove200k?: number | null;
23
+ outputBelow200k?: number | null;
24
+ outputAbove200k?: number | null;
25
+ [key: string]: unknown;
26
+ };
27
+ type X12iCatalogModelEntry = {
28
+ provider: string;
29
+ modelId: string;
30
+ displayName?: string;
31
+ canonicalSlug?: string;
32
+ family?: string;
33
+ status?: string;
34
+ modalities?: string[] | {
35
+ input?: string[];
36
+ output?: string[];
37
+ };
38
+ contextWindow?: number;
39
+ maxCompletionTokens?: number;
40
+ pricing?: X12iCatalogPricing;
41
+ capabilities?: {
42
+ reasoning?: boolean | string;
43
+ toolCalling?: boolean;
44
+ structuredOutputs?: boolean;
45
+ };
46
+ aliases?: string[];
47
+ sourceUrl?: string;
48
+ };
49
+ /**
50
+ * Raw catalog JSON from open-assets.x12i.com (or bundled `src/data`).
51
+ *
52
+ * `schema` and `version` are publisher metadata only — this library never reads or
53
+ * compares them. Remote catalogs are always treated as the latest pricing source.
54
+ */
55
+ type X12iModelsCatalogFile = {
56
+ /** Publisher schema id (informational). */
57
+ schema?: string;
58
+ /** Publisher catalog revision (informational; not used for cache or compatibility). */
59
+ version?: string;
60
+ verifiedAt?: string;
61
+ models: X12iCatalogModelEntry[];
62
+ [key: string]: unknown;
63
+ };
64
+
65
+ declare function invalidateCatalogLoadCache(cacheKey?: string): void;
66
+ type LoadCatalogCachedOptions = {
67
+ cacheKey?: string;
68
+ ttlMs?: number;
69
+ /** Bypass cache and fetch again (e.g. `catalog refresh`). */
70
+ forceRefresh?: boolean;
71
+ };
72
+ /**
73
+ * Load catalogs with a process-wide in-memory cache.
74
+ * Remote fetches run at most once per TTL window (default 24h); concurrent callers share one in-flight request.
75
+ */
76
+ declare function loadCatalogSourcesCached(options?: LoadCatalogOptions, cacheOptions?: LoadCatalogCachedOptions): Promise<LoadedCatalogs>;
77
+
78
+ type CatalogRefreshOptions = LoadCatalogOptions & {
79
+ cacheKey?: string;
80
+ cacheTtlMs?: number;
81
+ };
82
+ type CatalogRefreshResult = {
83
+ ok: true;
84
+ directCount: number;
85
+ openRouterCount: number;
86
+ directSource: "remote" | "bundled";
87
+ openRouterSource: "remote" | "bundled";
88
+ };
89
+ /** Fetch remote catalogs and warm the in-memory cache (forces a network load). */
90
+ declare function refreshAiModelsCatalog(options?: CatalogRefreshOptions): Promise<CatalogRefreshResult>;
91
+ type CatalogVerifyOptions = LoadCatalogOptions & {
92
+ cacheKey?: string;
93
+ cacheTtlMs?: number;
94
+ };
95
+ type CatalogVerifyReport = {
96
+ ok: boolean;
97
+ directCount: number;
98
+ openRouterCount: number;
99
+ directSource: "remote" | "bundled";
100
+ openRouterSource: "remote" | "bundled";
101
+ directUrl: string;
102
+ openRouterUrl: string;
103
+ };
104
+ /** Load and validate both catalogs (uses cache unless `forceRefresh`). */
105
+ declare function verifyAiModelsCatalog(options?: CatalogVerifyOptions & {
106
+ forceRefresh?: boolean;
107
+ }): Promise<CatalogVerifyReport>;
108
+
109
+ /** Default in-memory catalog cache lifetime (24 hours). */
110
+ declare const DEFAULT_CATALOG_CACHE_TTL_MS: number;
111
+ declare function resolveCatalogCacheTtlMs(override?: number): number;
112
+
113
+ export { type CatalogRefreshOptions as C, DEFAULT_CATALOG_CACHE_TTL_MS as D, type LoadCatalogCachedOptions as L, type X12iCatalogModelEntry as X, type CatalogRefreshResult as a, type CatalogSourceKind as b, type CatalogVerifyOptions as c, type CatalogVerifyReport as d, DEFAULT_DIRECT_CATALOG_URL as e, DEFAULT_OPENROUTER_CATALOG_URL as f, type X12iModelsCatalogFile as g, resolveCatalogCacheTtlMs as h, invalidateCatalogLoadCache as i, loadCatalogSourcesCached as l, refreshAiModelsCatalog as r, verifyAiModelsCatalog as v };
@@ -0,0 +1,113 @@
1
+ import { L as LoadCatalogOptions, b as LoadedCatalogs } from './AiModelsCatalogClient-B5FMI9gj.cjs';
2
+
3
+ /** Remote catalog URLs (primary). */
4
+ declare const DEFAULT_DIRECT_CATALOG_URL = "https://open-assets.x12i.com/models-catalog.json";
5
+ declare const DEFAULT_OPENROUTER_CATALOG_URL = "https://open-assets.x12i.com/openrouter-models-catalog.json";
6
+ type CatalogSourceKind = "direct" | "openrouter";
7
+ type X12iCatalogPricing = {
8
+ input?: number | null;
9
+ output?: number | null;
10
+ cachedInput?: number | null;
11
+ cacheHit?: number | null;
12
+ cacheWrite?: number | null;
13
+ cacheWrite5m?: number | null;
14
+ cacheWrite1h?: number | null;
15
+ textInput?: number | null;
16
+ textOutput?: number | null;
17
+ audioInput?: number | null;
18
+ imageInput?: number | null;
19
+ internalReasoning?: number | null;
20
+ webSearchPerRequest?: number | null;
21
+ inputBelow200k?: number | null;
22
+ inputAbove200k?: number | null;
23
+ outputBelow200k?: number | null;
24
+ outputAbove200k?: number | null;
25
+ [key: string]: unknown;
26
+ };
27
+ type X12iCatalogModelEntry = {
28
+ provider: string;
29
+ modelId: string;
30
+ displayName?: string;
31
+ canonicalSlug?: string;
32
+ family?: string;
33
+ status?: string;
34
+ modalities?: string[] | {
35
+ input?: string[];
36
+ output?: string[];
37
+ };
38
+ contextWindow?: number;
39
+ maxCompletionTokens?: number;
40
+ pricing?: X12iCatalogPricing;
41
+ capabilities?: {
42
+ reasoning?: boolean | string;
43
+ toolCalling?: boolean;
44
+ structuredOutputs?: boolean;
45
+ };
46
+ aliases?: string[];
47
+ sourceUrl?: string;
48
+ };
49
+ /**
50
+ * Raw catalog JSON from open-assets.x12i.com (or bundled `src/data`).
51
+ *
52
+ * `schema` and `version` are publisher metadata only — this library never reads or
53
+ * compares them. Remote catalogs are always treated as the latest pricing source.
54
+ */
55
+ type X12iModelsCatalogFile = {
56
+ /** Publisher schema id (informational). */
57
+ schema?: string;
58
+ /** Publisher catalog revision (informational; not used for cache or compatibility). */
59
+ version?: string;
60
+ verifiedAt?: string;
61
+ models: X12iCatalogModelEntry[];
62
+ [key: string]: unknown;
63
+ };
64
+
65
+ declare function invalidateCatalogLoadCache(cacheKey?: string): void;
66
+ type LoadCatalogCachedOptions = {
67
+ cacheKey?: string;
68
+ ttlMs?: number;
69
+ /** Bypass cache and fetch again (e.g. `catalog refresh`). */
70
+ forceRefresh?: boolean;
71
+ };
72
+ /**
73
+ * Load catalogs with a process-wide in-memory cache.
74
+ * Remote fetches run at most once per TTL window (default 24h); concurrent callers share one in-flight request.
75
+ */
76
+ declare function loadCatalogSourcesCached(options?: LoadCatalogOptions, cacheOptions?: LoadCatalogCachedOptions): Promise<LoadedCatalogs>;
77
+
78
+ type CatalogRefreshOptions = LoadCatalogOptions & {
79
+ cacheKey?: string;
80
+ cacheTtlMs?: number;
81
+ };
82
+ type CatalogRefreshResult = {
83
+ ok: true;
84
+ directCount: number;
85
+ openRouterCount: number;
86
+ directSource: "remote" | "bundled";
87
+ openRouterSource: "remote" | "bundled";
88
+ };
89
+ /** Fetch remote catalogs and warm the in-memory cache (forces a network load). */
90
+ declare function refreshAiModelsCatalog(options?: CatalogRefreshOptions): Promise<CatalogRefreshResult>;
91
+ type CatalogVerifyOptions = LoadCatalogOptions & {
92
+ cacheKey?: string;
93
+ cacheTtlMs?: number;
94
+ };
95
+ type CatalogVerifyReport = {
96
+ ok: boolean;
97
+ directCount: number;
98
+ openRouterCount: number;
99
+ directSource: "remote" | "bundled";
100
+ openRouterSource: "remote" | "bundled";
101
+ directUrl: string;
102
+ openRouterUrl: string;
103
+ };
104
+ /** Load and validate both catalogs (uses cache unless `forceRefresh`). */
105
+ declare function verifyAiModelsCatalog(options?: CatalogVerifyOptions & {
106
+ forceRefresh?: boolean;
107
+ }): Promise<CatalogVerifyReport>;
108
+
109
+ /** Default in-memory catalog cache lifetime (24 hours). */
110
+ declare const DEFAULT_CATALOG_CACHE_TTL_MS: number;
111
+ declare function resolveCatalogCacheTtlMs(override?: number): number;
112
+
113
+ export { type CatalogRefreshOptions as C, DEFAULT_CATALOG_CACHE_TTL_MS as D, type LoadCatalogCachedOptions as L, type X12iCatalogModelEntry as X, type CatalogRefreshResult as a, type CatalogSourceKind as b, type CatalogVerifyOptions as c, type CatalogVerifyReport as d, DEFAULT_DIRECT_CATALOG_URL as e, DEFAULT_OPENROUTER_CATALOG_URL as f, type X12iModelsCatalogFile as g, resolveCatalogCacheTtlMs as h, invalidateCatalogLoadCache as i, loadCatalogSourcesCached as l, refreshAiModelsCatalog as r, verifyAiModelsCatalog as v };
@@ -1,5 +1,4 @@
1
- import { d as OpenRouterModelsQuery, a as AiModelRecord } from './types-BYXnCvKx.js';
2
- import { h as ModelResolverOptions, M as ModelResolutionInput, f as ModelResolutionResult, g as ModelResolutionSuccess, b as AliasRegistry, i as ResolvedModel } from './types-CuiPDcVs.js';
1
+ import { n as OpenRouterModelsQuery, a as AiModelRecord, l as ModelResolverOptions, h as ModelResolutionInput, j as ModelResolutionResult, k as ModelResolutionSuccess, d as AliasRegistry, t as ResolvedModel } from './types-BrzJWsTU.js';
3
2
 
4
3
  type OpenRouterSyncProviderOptions = {
5
4
  /** Optional — public GET /models needs no key. */
@@ -37,7 +36,6 @@ declare class ModelNameResolver {
37
36
  private inferProviderFromSlug;
38
37
  private providerPrefixInjection;
39
38
  private crossProviderCorrection;
40
- private stripVersionSuffixes;
41
39
  private dateSuffixMatch;
42
40
  private findLatestVersioned;
43
41
  private shorthandMap;
@@ -47,9 +45,7 @@ declare class ModelNameResolver {
47
45
  }
48
46
 
49
47
  declare function createModelNameResolver(catalog: Map<string, AiModelRecord>, options?: ModelResolverOptions): ModelNameResolver;
50
- /**
51
- * @deprecated Prefer `ModelNameResolver.resolve()` for full resolution metadata.
52
- */
48
+ /** Resolve a model string; returns catalog record only (no resolution metadata). */
53
49
  declare function resolveModel(input: string, models: Map<string, AiModelRecord>, aliasRegistry?: AliasRegistry, provider?: string): ResolvedModel | null;
54
50
  declare function isRoutedViaOpenRouter(provider: string | undefined, model: AiModelRecord, matchedKey: string): boolean;
55
51
 
@@ -1,5 +1,4 @@
1
- import { d as OpenRouterModelsQuery, a as AiModelRecord } from './types-BYXnCvKx.cjs';
2
- import { h as ModelResolverOptions, M as ModelResolutionInput, f as ModelResolutionResult, g as ModelResolutionSuccess, b as AliasRegistry, i as ResolvedModel } from './types-CX6QFNNy.cjs';
1
+ import { n as OpenRouterModelsQuery, a as AiModelRecord, l as ModelResolverOptions, h as ModelResolutionInput, j as ModelResolutionResult, k as ModelResolutionSuccess, d as AliasRegistry, t as ResolvedModel } from './types-BrzJWsTU.cjs';
3
2
 
4
3
  type OpenRouterSyncProviderOptions = {
5
4
  /** Optional — public GET /models needs no key. */
@@ -37,7 +36,6 @@ declare class ModelNameResolver {
37
36
  private inferProviderFromSlug;
38
37
  private providerPrefixInjection;
39
38
  private crossProviderCorrection;
40
- private stripVersionSuffixes;
41
39
  private dateSuffixMatch;
42
40
  private findLatestVersioned;
43
41
  private shorthandMap;
@@ -47,9 +45,7 @@ declare class ModelNameResolver {
47
45
  }
48
46
 
49
47
  declare function createModelNameResolver(catalog: Map<string, AiModelRecord>, options?: ModelResolverOptions): ModelNameResolver;
50
- /**
51
- * @deprecated Prefer `ModelNameResolver.resolve()` for full resolution metadata.
52
- */
48
+ /** Resolve a model string; returns catalog record only (no resolution metadata). */
53
49
  declare function resolveModel(input: string, models: Map<string, AiModelRecord>, aliasRegistry?: AliasRegistry, provider?: string): ResolvedModel | null;
54
50
  declare function isRoutedViaOpenRouter(provider: string | undefined, model: AiModelRecord, matchedKey: string): boolean;
55
51
 
@@ -4,20 +4,22 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkQCRLKVB3cjs = require('../chunk-QCRLKVB3.cjs');
7
+ var _chunkYQDSN6R6cjs = require('../chunk-YQDSN6R6.cjs');
8
8
 
9
9
 
10
10
 
11
+ var _chunkXOKUDUUIcjs = require('../chunk-XOKUDUUI.cjs');
12
+ require('../chunk-5XAAMBDO.cjs');
11
13
 
12
14
 
13
15
 
14
16
 
15
17
 
16
- var _chunkAV6OE2YQcjs = require('../chunk-AV6OE2YQ.cjs');
17
- require('../chunk-F2F4UEFD.cjs');
18
- require('../chunk-TF4L2NEC.cjs');
19
- require('../chunk-7Q742NI3.cjs');
20
18
 
19
+ var _chunkDXZOL3VNcjs = require('../chunk-DXZOL3VN.cjs');
20
+ require('../chunk-EDMCKHO6.cjs');
21
+ require('../chunk-PADNCGZB.cjs');
22
+ require('../chunk-GS7T56RP.cjs');
21
23
 
22
24
 
23
25
 
@@ -29,5 +31,6 @@ require('../chunk-7Q742NI3.cjs');
29
31
 
30
32
 
31
33
 
32
- exports.AiModelsService = _chunkQCRLKVB3cjs.AiModelsService; exports.REASONING_SUPPORTED_PARAMETERS = _chunkAV6OE2YQcjs.REASONING_SUPPORTED_PARAMETERS; exports.computeSupportsReasoning = _chunkAV6OE2YQcjs.computeSupportsReasoning; exports.countModels = _chunkQCRLKVB3cjs.countModels; exports.extractProviderId = _chunkAV6OE2YQcjs.extractProviderId; exports.filterModels = _chunkQCRLKVB3cjs.filterModels; exports.getModelInfo = _chunkQCRLKVB3cjs.getModelInfo; exports.hasReasoningPricing = _chunkAV6OE2YQcjs.hasReasoningPricing; exports.isReasoningModel = _chunkAV6OE2YQcjs.isReasoningModel; exports.normalizeOpenRouterModel = _chunkAV6OE2YQcjs.normalizeOpenRouterModel; exports.supportsReasoningParameter = _chunkAV6OE2YQcjs.supportsReasoningParameter;
34
+
35
+ exports.AiModelsService = _chunkYQDSN6R6cjs.AiModelsService; exports.REASONING_SUPPORTED_PARAMETERS = _chunkDXZOL3VNcjs.REASONING_SUPPORTED_PARAMETERS; exports.computeSupportsReasoning = _chunkDXZOL3VNcjs.computeSupportsReasoning; exports.countModels = _chunkYQDSN6R6cjs.countModels; exports.extractProviderId = _chunkXOKUDUUIcjs.extractProviderId; exports.filterModels = _chunkYQDSN6R6cjs.filterModels; exports.getModelInfo = _chunkYQDSN6R6cjs.getModelInfo; exports.hasReasoningPricing = _chunkDXZOL3VNcjs.hasReasoningPricing; exports.isReasoningModel = _chunkDXZOL3VNcjs.isReasoningModel; exports.normalizeOpenRouterModel = _chunkXOKUDUUIcjs.normalizeOpenRouterModel; exports.supportsReasoningParameter = _chunkDXZOL3VNcjs.supportsReasoningParameter;
33
36
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/ami/Documents/prometheus/x12i/ai-tools/dist/models/index.cjs"],"names":[],"mappings":"AAAA,0GAA8B;AAC9B;AACE;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,gvBAAC","file":"/Users/ami/Documents/prometheus/x12i/ai-tools/dist/models/index.cjs"}
1
+ {"version":3,"sources":["/Users/ami/Documents/prometheus/x12i/ai-tools/dist/models/index.cjs"],"names":[],"mappings":"AAAA,0GAA8B;AAC9B;AACE;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,gvBAAC","file":"/Users/ami/Documents/prometheus/x12i/ai-tools/dist/models/index.cjs"}
@@ -1,44 +1,22 @@
1
- import { f as ModelResolutionResult } from '../types-CX6QFNNy.cjs';
2
- import { Catalox, CatalogQueryOptions } from '@x12i/catalox';
3
- import { a as AiModelRecord, M as ModelListFilters, b as ModelListResult, c as OpenRouterModelApi } from '../types-BYXnCvKx.cjs';
4
- export { A as AiModelPricing, O as OpenRouterArchitectureApi, d as OpenRouterModelsQuery, e as OpenRouterModelsResponse, f as OpenRouterOutputModality, g as OpenRouterPricingApi, h as OpenRouterTopProviderApi } from '../types-BYXnCvKx.cjs';
1
+ import { a as AiModelRecord, M as ModelListFilters, g as ModelListResult, j as ModelResolutionResult, m as OpenRouterModelApi } from '../types-BrzJWsTU.cjs';
2
+ export { A as AiModelPricing, O as OpenRouterArchitectureApi, n as OpenRouterModelsQuery, o as OpenRouterModelsResponse, p as OpenRouterOutputModality, q as OpenRouterPricingApi, s as OpenRouterTopProviderApi } from '../types-BrzJWsTU.cjs';
3
+ import { a as AiModelsCatalogClientOptions } from '../AiModelsCatalogClient-B5FMI9gj.cjs';
5
4
 
6
- type AiModelsServiceOptions = {
7
- catalox: Catalox;
8
- appId?: string;
9
- catalogId?: string;
10
- cacheTtlMs?: number;
11
- };
5
+ type AiModelsServiceOptions = AiModelsCatalogClientOptions;
12
6
  /**
13
7
  * High-level model catalog API — list, filter, count, and get full model info.
14
8
  */
15
9
  declare class AiModelsService {
16
10
  private readonly client;
17
- private readonly catalox;
18
- private readonly appId;
19
- private readonly catalogId;
20
- constructor(options: AiModelsServiceOptions);
21
- private context;
22
- /** Load all models (cached). */
11
+ constructor(options?: AiModelsServiceOptions);
23
12
  getAllModels(): Promise<Map<string, AiModelRecord>>;
24
- /** List models with in-memory filters (fast after cache warm). */
25
13
  listModels(filters?: ModelListFilters): Promise<ModelListResult>;
26
- /** Count models matching filters. */
27
14
  countModels(filters?: Omit<ModelListFilters, "limit" | "offset">): Promise<number>;
28
- /**
29
- * Full model record by id or alias (same resolution as cost calculator).
30
- */
31
- getModelInfo(modelIdOrAlias: string): Promise<AiModelRecord | null>;
32
- /**
33
- * Query via Catalox indexed fields (provider, status, output modality, tools).
34
- * Falls back to in-memory filter when Catalox returns partial pages.
35
- */
36
- listModelsFromCatalog(filters?: ModelListFilters, options?: CatalogQueryOptions): Promise<ModelListResult>;
15
+ getModelInfo(modelIdOrAlias: string, provider?: string): Promise<AiModelRecord | null>;
37
16
  resolve(modelIdOrAlias: string, provider?: string): Promise<ModelResolutionResult>;
38
17
  refresh(): Promise<void>;
39
18
  }
40
- /** Convenience: getModelInfo */
41
- declare function getModelInfo(service: AiModelsService, modelIdOrAlias: string): Promise<AiModelRecord | null>;
19
+ declare function getModelInfo(modelIdOrAlias: string, options?: AiModelsServiceOptions, provider?: string): Promise<AiModelRecord | null>;
42
20
 
43
21
  declare function filterModels(models: Iterable<AiModelRecord>, filters?: ModelListFilters): AiModelRecord[];
44
22
  declare function countModels(models: Iterable<AiModelRecord>, filters?: Omit<ModelListFilters, "limit" | "offset">): number;
@@ -62,13 +40,13 @@ declare function supportsReasoningParameter(model: Pick<AiModelRecord, "supporte
62
40
  */
63
41
  declare function hasReasoningPricing(model: Pick<AiModelRecord, "pricing" | "openRouterPricing">): boolean;
64
42
  /**
65
- * Compute `supportsReasoning` from catalog fields (used during sync normalization).
43
+ * Compute `supportsReasoning` from catalog fields (used when normalizing catalog entries).
66
44
  */
67
45
  declare function computeSupportsReasoning(model: ReasoningModelInput): boolean;
68
46
  /**
69
47
  * True when the model supports reasoning tokens (API param and/or separate reasoning pricing).
70
48
  *
71
- * Prefer `model.supportsReasoning` on {@link AiModelRecord} after catalog sync;
49
+ * Prefer `model.supportsReasoning` on {@link AiModelRecord} after catalog load;
72
50
  * this helper also works when only partial fields are available.
73
51
  */
74
52
  declare function isReasoningModel(model: ReasoningModelInput): boolean;
@@ -1,44 +1,22 @@
1
- import { f as ModelResolutionResult } from '../types-CuiPDcVs.js';
2
- import { Catalox, CatalogQueryOptions } from '@x12i/catalox';
3
- import { a as AiModelRecord, M as ModelListFilters, b as ModelListResult, c as OpenRouterModelApi } from '../types-BYXnCvKx.js';
4
- export { A as AiModelPricing, O as OpenRouterArchitectureApi, d as OpenRouterModelsQuery, e as OpenRouterModelsResponse, f as OpenRouterOutputModality, g as OpenRouterPricingApi, h as OpenRouterTopProviderApi } from '../types-BYXnCvKx.js';
1
+ import { a as AiModelRecord, M as ModelListFilters, g as ModelListResult, j as ModelResolutionResult, m as OpenRouterModelApi } from '../types-BrzJWsTU.js';
2
+ export { A as AiModelPricing, O as OpenRouterArchitectureApi, n as OpenRouterModelsQuery, o as OpenRouterModelsResponse, p as OpenRouterOutputModality, q as OpenRouterPricingApi, s as OpenRouterTopProviderApi } from '../types-BrzJWsTU.js';
3
+ import { a as AiModelsCatalogClientOptions } from '../AiModelsCatalogClient-CPPNI6Ry.js';
5
4
 
6
- type AiModelsServiceOptions = {
7
- catalox: Catalox;
8
- appId?: string;
9
- catalogId?: string;
10
- cacheTtlMs?: number;
11
- };
5
+ type AiModelsServiceOptions = AiModelsCatalogClientOptions;
12
6
  /**
13
7
  * High-level model catalog API — list, filter, count, and get full model info.
14
8
  */
15
9
  declare class AiModelsService {
16
10
  private readonly client;
17
- private readonly catalox;
18
- private readonly appId;
19
- private readonly catalogId;
20
- constructor(options: AiModelsServiceOptions);
21
- private context;
22
- /** Load all models (cached). */
11
+ constructor(options?: AiModelsServiceOptions);
23
12
  getAllModels(): Promise<Map<string, AiModelRecord>>;
24
- /** List models with in-memory filters (fast after cache warm). */
25
13
  listModels(filters?: ModelListFilters): Promise<ModelListResult>;
26
- /** Count models matching filters. */
27
14
  countModels(filters?: Omit<ModelListFilters, "limit" | "offset">): Promise<number>;
28
- /**
29
- * Full model record by id or alias (same resolution as cost calculator).
30
- */
31
- getModelInfo(modelIdOrAlias: string): Promise<AiModelRecord | null>;
32
- /**
33
- * Query via Catalox indexed fields (provider, status, output modality, tools).
34
- * Falls back to in-memory filter when Catalox returns partial pages.
35
- */
36
- listModelsFromCatalog(filters?: ModelListFilters, options?: CatalogQueryOptions): Promise<ModelListResult>;
15
+ getModelInfo(modelIdOrAlias: string, provider?: string): Promise<AiModelRecord | null>;
37
16
  resolve(modelIdOrAlias: string, provider?: string): Promise<ModelResolutionResult>;
38
17
  refresh(): Promise<void>;
39
18
  }
40
- /** Convenience: getModelInfo */
41
- declare function getModelInfo(service: AiModelsService, modelIdOrAlias: string): Promise<AiModelRecord | null>;
19
+ declare function getModelInfo(modelIdOrAlias: string, options?: AiModelsServiceOptions, provider?: string): Promise<AiModelRecord | null>;
42
20
 
43
21
  declare function filterModels(models: Iterable<AiModelRecord>, filters?: ModelListFilters): AiModelRecord[];
44
22
  declare function countModels(models: Iterable<AiModelRecord>, filters?: Omit<ModelListFilters, "limit" | "offset">): number;
@@ -62,13 +40,13 @@ declare function supportsReasoningParameter(model: Pick<AiModelRecord, "supporte
62
40
  */
63
41
  declare function hasReasoningPricing(model: Pick<AiModelRecord, "pricing" | "openRouterPricing">): boolean;
64
42
  /**
65
- * Compute `supportsReasoning` from catalog fields (used during sync normalization).
43
+ * Compute `supportsReasoning` from catalog fields (used when normalizing catalog entries).
66
44
  */
67
45
  declare function computeSupportsReasoning(model: ReasoningModelInput): boolean;
68
46
  /**
69
47
  * True when the model supports reasoning tokens (API param and/or separate reasoning pricing).
70
48
  *
71
- * Prefer `model.supportsReasoning` on {@link AiModelRecord} after catalog sync;
49
+ * Prefer `model.supportsReasoning` on {@link AiModelRecord} after catalog load;
72
50
  * this helper also works when only partial fields are available.
73
51
  */
74
52
  declare function isReasoningModel(model: ReasoningModelInput): boolean;
@@ -4,19 +4,21 @@ import {
4
4
  countModels,
5
5
  filterModels,
6
6
  getModelInfo
7
- } from "../chunk-4NAY6HRP.js";
7
+ } from "../chunk-VJHLO2R3.js";
8
+ import {
9
+ extractProviderId,
10
+ normalizeOpenRouterModel
11
+ } from "../chunk-SIH4GPV4.js";
12
+ import "../chunk-OPN6BGNH.js";
8
13
  import {
9
14
  REASONING_SUPPORTED_PARAMETERS,
10
15
  computeSupportsReasoning,
11
- extractProviderId,
12
16
  hasReasoningPricing,
13
17
  isReasoningModel,
14
- normalizeOpenRouterModel,
15
18
  supportsReasoningParameter
16
- } from "../chunk-6QGDZTGH.js";
17
- import "../chunk-KQOALKKX.js";
18
- import "../chunk-DJ5SWJDY.js";
19
- import "../chunk-AJEKEWWB.js";
19
+ } from "../chunk-EYHMQVAL.js";
20
+ import "../chunk-B3V2EHRY.js";
21
+ import "../chunk-2PTCWPHV.js";
20
22
  export {
21
23
  AiModelsService,
22
24
  REASONING_SUPPORTED_PARAMETERS,
@@ -0,0 +1,18 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+ var _chunk5IZ7PLY2cjs = require('../chunk-5IZ7PLY2.cjs');
9
+ require('../chunk-GS7T56RP.cjs');
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ exports.isKnownProfileOrShortcut = _chunk5IZ7PLY2cjs.isKnownProfileOrShortcut; exports.listAIProfiles = _chunk5IZ7PLY2cjs.listAIProfiles; exports.listAIShortcuts = _chunk5IZ7PLY2cjs.listAIShortcuts; exports.profileConfigFromResolved = _chunk5IZ7PLY2cjs.profileConfigFromResolved; exports.resolveAIProfile = _chunk5IZ7PLY2cjs.resolveAIProfile; exports.resolveProfileForAsk = _chunk5IZ7PLY2cjs.resolveProfileForAsk;
18
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/ami/Documents/prometheus/x12i/ai-tools/dist/profiles/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,6ZAAC","file":"/Users/ami/Documents/prometheus/x12i/ai-tools/dist/profiles/index.cjs"}
@@ -0,0 +1,40 @@
1
+ import { ResolvedAIProfile, InstructionTier, AIProfileBackend, RegistrySourceMode } from '@x12i/ai-profiles';
2
+ export { AIProfileBackend, AIProfileSummary, AIShortcutSummary, InstructionTier, RegistrySourceMode, ResolveAIProfileOptions, ResolvedAIProfile, isKnownProfileOrShortcut, listAIProfiles, listAIShortcuts, resolveAIProfile } from '@x12i/ai-profiles';
3
+
4
+ type ResolveProfileForAskInput = {
5
+ profile: string;
6
+ choice?: string;
7
+ source?: RegistrySourceMode;
8
+ refresh?: boolean;
9
+ };
10
+ /** FuncX / ask-node model config derived from {@link ResolvedAIProfile}. */
11
+ type AskProfileModelConfig = {
12
+ provider: ResolvedAIProfile["provider"];
13
+ model: string;
14
+ instructionTier: InstructionTier;
15
+ backend: AIProfileBackend;
16
+ profile: string;
17
+ choice: string;
18
+ temperature: number;
19
+ outputMode: ResolvedAIProfile["runtime"]["outputMode"];
20
+ toolPolicy: ResolvedAIProfile["runtime"]["toolPolicy"];
21
+ reasoningEffort: ResolvedAIProfile["runtime"]["reasoningEffort"];
22
+ executionMode: ResolvedAIProfile["runtime"]["executionMode"];
23
+ requireCitations: boolean;
24
+ allowWeb: boolean;
25
+ allowFileSearch: boolean;
26
+ allowCodeExecution: boolean;
27
+ humanReview: ResolvedAIProfile["runtime"]["humanReview"];
28
+ metadata?: Record<string, unknown>;
29
+ pricing?: ResolvedAIProfile["pricing"];
30
+ resolved: ResolvedAIProfile;
31
+ };
32
+ declare function profileConfigFromResolved(resolved: ResolvedAIProfile): AskProfileModelConfig;
33
+ /**
34
+ * Resolve a profile (+ optional choice) into ask-node / FuncX model configuration.
35
+ * Uses {@link ResolvedAIProfile.instructionTier} and {@link ResolvedAIProfile.backend}
36
+ * from `@x12i/ai-profiles` — do not duplicate preset tables locally.
37
+ */
38
+ declare function resolveProfileForAsk(input: ResolveProfileForAskInput): Promise<AskProfileModelConfig>;
39
+
40
+ export { type AskProfileModelConfig, type ResolveProfileForAskInput, profileConfigFromResolved, resolveProfileForAsk };
@@ -0,0 +1,40 @@
1
+ import { ResolvedAIProfile, InstructionTier, AIProfileBackend, RegistrySourceMode } from '@x12i/ai-profiles';
2
+ export { AIProfileBackend, AIProfileSummary, AIShortcutSummary, InstructionTier, RegistrySourceMode, ResolveAIProfileOptions, ResolvedAIProfile, isKnownProfileOrShortcut, listAIProfiles, listAIShortcuts, resolveAIProfile } from '@x12i/ai-profiles';
3
+
4
+ type ResolveProfileForAskInput = {
5
+ profile: string;
6
+ choice?: string;
7
+ source?: RegistrySourceMode;
8
+ refresh?: boolean;
9
+ };
10
+ /** FuncX / ask-node model config derived from {@link ResolvedAIProfile}. */
11
+ type AskProfileModelConfig = {
12
+ provider: ResolvedAIProfile["provider"];
13
+ model: string;
14
+ instructionTier: InstructionTier;
15
+ backend: AIProfileBackend;
16
+ profile: string;
17
+ choice: string;
18
+ temperature: number;
19
+ outputMode: ResolvedAIProfile["runtime"]["outputMode"];
20
+ toolPolicy: ResolvedAIProfile["runtime"]["toolPolicy"];
21
+ reasoningEffort: ResolvedAIProfile["runtime"]["reasoningEffort"];
22
+ executionMode: ResolvedAIProfile["runtime"]["executionMode"];
23
+ requireCitations: boolean;
24
+ allowWeb: boolean;
25
+ allowFileSearch: boolean;
26
+ allowCodeExecution: boolean;
27
+ humanReview: ResolvedAIProfile["runtime"]["humanReview"];
28
+ metadata?: Record<string, unknown>;
29
+ pricing?: ResolvedAIProfile["pricing"];
30
+ resolved: ResolvedAIProfile;
31
+ };
32
+ declare function profileConfigFromResolved(resolved: ResolvedAIProfile): AskProfileModelConfig;
33
+ /**
34
+ * Resolve a profile (+ optional choice) into ask-node / FuncX model configuration.
35
+ * Uses {@link ResolvedAIProfile.instructionTier} and {@link ResolvedAIProfile.backend}
36
+ * from `@x12i/ai-profiles` — do not duplicate preset tables locally.
37
+ */
38
+ declare function resolveProfileForAsk(input: ResolveProfileForAskInput): Promise<AskProfileModelConfig>;
39
+
40
+ export { type AskProfileModelConfig, type ResolveProfileForAskInput, profileConfigFromResolved, resolveProfileForAsk };
@@ -0,0 +1,17 @@
1
+ import {
2
+ isKnownProfileOrShortcut,
3
+ listAIProfiles,
4
+ listAIShortcuts,
5
+ profileConfigFromResolved,
6
+ resolveAIProfile,
7
+ resolveProfileForAsk
8
+ } from "../chunk-YQVY7CWT.js";
9
+ export {
10
+ isKnownProfileOrShortcut,
11
+ listAIProfiles,
12
+ listAIShortcuts,
13
+ profileConfigFromResolved,
14
+ resolveAIProfile,
15
+ resolveProfileForAsk
16
+ };
17
+ //# sourceMappingURL=index.js.map