qlogicagent 2.14.4 → 2.14.6

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.
@@ -64,20 +64,28 @@ export declare function providerDisplayName(provider: LlmrouterCatalogProvider):
64
64
  export declare function providerBaseUrl(provider: LlmrouterCatalogProvider): string | undefined;
65
65
  export declare function getLlmrouterCatalogProvider(providerId: string, configPort?: ConfigPort, options?: CatalogFetchOptions): Promise<LlmrouterCatalogProvider | null>;
66
66
  export declare function refreshRegistryFromLlmrouterCatalog(registry: ModelRegistry, configPort?: ConfigPort, options?: CatalogFetchOptions): Promise<ModelEntry[]>;
67
+ /**
68
+ * Hydrate the registry with the AVAILABLE models PER CONFIGURED-KEY PROVIDER — the single concept the
69
+ * user expects: "discoverable models = the models of the providers I hold a key for".
70
+ * - llmrouter (env or user key) → its PUBLISHED set (/v1/models), as llmrouter:* entries
71
+ * - each DIRECT provider with a user-added key (deepseek/qwen/…) → that provider's catalog models,
72
+ * routed directly with the provider's own key
73
+ * - a provider with NO usable key → not present at all
74
+ * The 600+ routable discovery catalog never reaches the user-facing list. Pre-sign-in (no usable key
75
+ * anywhere) falls back to the discovery catalog so the UI is not empty.
76
+ */
77
+ export declare function refreshRegistryFromConfiguredProviders(registry: ModelRegistry, configPort?: ConfigPort, options?: CatalogFetchOptions): Promise<ModelEntry[]>;
78
+ /**
79
+ * Load the PUBLISHED llmrouter models for a specific inference key into the registry's llmrouter
80
+ * slice — used by the add-key flow to validate the key actually returns models. Full per-provider
81
+ * composition is done by refreshRegistryFromConfiguredProviders.
82
+ */
67
83
  export declare function refreshRegistryFromLlmrouterApiKey(registry: ModelRegistry, options: {
68
84
  baseUrl: string;
69
85
  apiKey: string;
70
86
  configPort?: ConfigPort;
71
87
  forceCatalog?: boolean;
72
88
  }): Promise<ModelEntry[]>;
73
- /**
74
- * Hydrate the registry with the user's PUBLISHED llmrouter models (/v1/models) when an inference
75
- * key is available — the set they can actually call. Falls back to the full discovery catalog only
76
- * when no key is configured yet (e.g. pre-sign-in) so the UI is never empty. This is the entry point
77
- * the startup/settings hydration uses; it keeps the 600+ discovery catalog (and its direct-provider
78
- * dual-registration) out of the user-facing model list.
79
- */
80
- export declare function refreshRegistryFromLlmrouterPublished(registry: ModelRegistry, configPort?: ConfigPort, options?: CatalogFetchOptions): Promise<ModelEntry[]>;
81
89
  export declare function resetLlmrouterCatalogClientCache(): void;
82
90
  /**
83
91
  * 零配置默认模型:全新安装(无 textGeneration binding)且网关注入了设备账号推理 key 时,
@@ -88,7 +88,12 @@ export declare class ModelRegistry {
88
88
  private injectedKeyStates;
89
89
  private settingsPath;
90
90
  private changeListeners;
91
+ private hydratedFromUpstream;
91
92
  constructor(config?: ModelRegistryConfig);
93
+ /** Whether the registry has been freshly hydrated from upstream this lifetime (lazy-init guard). */
94
+ isHydratedFromUpstream(): boolean;
95
+ /** Mark the registry as freshly hydrated; reads stay pure until an explicit re-sync. */
96
+ markHydratedFromUpstream(): void;
92
97
  getActiveModel(purpose: ModelPurpose): ResolvedModel | null;
93
98
  peekActiveModel(purpose: ModelPurpose): ModelEntry | null;
94
99
  isAvailable(purpose: ModelPurpose): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qlogicagent",
3
- "version": "2.14.4",
3
+ "version": "2.14.6",
4
4
  "description": "XiaozhiClaw Agent CLI — subprocess architecture (JSON-RPC over stdio)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",