orchid-ai 1.2.2 → 1.2.4

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 (38) hide show
  1. package/README.md +3 -3
  2. package/dist/cli/components/ChatPanel.d.ts +2 -1
  3. package/dist/cli/components/Conversation.d.ts +2 -1
  4. package/dist/cli/components/ModelSwitcher.d.ts +2 -1
  5. package/dist/cli/hooks/useModelSwitcher.d.ts +7 -4
  6. package/dist/cli/hooks/useResolvedDefaultModel.d.ts +21 -0
  7. package/dist/cli/hooks/useStreamingAI.d.ts +3 -2
  8. package/dist/cli/index.d.ts +1 -0
  9. package/dist/cli/server/contextual-service.d.ts +49 -1
  10. package/dist/cli/server/intent-detection.d.ts +2 -0
  11. package/dist/cli/server/utils.d.ts +0 -12
  12. package/dist/cli/types/types.d.ts +2 -1
  13. package/dist/components/ChatPanel.d.ts +2 -1
  14. package/dist/components/Conversation.d.ts +2 -1
  15. package/dist/components/ModelSwitcher.d.ts +2 -1
  16. package/dist/hooks/useModelSwitcher.d.ts +7 -4
  17. package/dist/hooks/useResolvedDefaultModel.d.ts +21 -0
  18. package/dist/hooks/useStreamingAI.d.ts +3 -2
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.esm.js +425 -39
  21. package/dist/index.js +425 -38
  22. package/dist/server/components/ChatPanel.d.ts +2 -1
  23. package/dist/server/components/Conversation.d.ts +2 -1
  24. package/dist/server/components/ModelSwitcher.d.ts +2 -1
  25. package/dist/server/contextual-service.d.ts +49 -1
  26. package/dist/server/hooks/useModelSwitcher.d.ts +7 -4
  27. package/dist/server/hooks/useResolvedDefaultModel.d.ts +21 -0
  28. package/dist/server/hooks/useStreamingAI.d.ts +3 -2
  29. package/dist/server/index.esm.js +507 -151
  30. package/dist/server/index.js +473 -99
  31. package/dist/server/intent-detection.d.ts +2 -0
  32. package/dist/server/server/contextual-service.d.ts +49 -1
  33. package/dist/server/server/intent-detection.d.ts +2 -0
  34. package/dist/server/server/utils.d.ts +0 -12
  35. package/dist/server/types/types.d.ts +2 -1
  36. package/dist/server/utils.d.ts +0 -12
  37. package/dist/types/types.d.ts +2 -1
  38. package/package.json +1 -1
@@ -90,10 +90,12 @@ export declare class IntentDetectionPlugin {
90
90
  constructor(config: IntentDetectionConfig);
91
91
  /**
92
92
  * Resolve model name with dynamic discovery support
93
+ * Uses cached models when available, falls back to defaults
93
94
  */
94
95
  private resolveModelName;
95
96
  /**
96
97
  * Dynamically discover and select the best model for the provider
98
+ * Uses cached models when available
97
99
  */
98
100
  private discoverBestModel;
99
101
  private createModelInstance;
@@ -1,9 +1,20 @@
1
1
  import type { ContextualServiceConfig, ContextualRequest } from '../types/types.js';
2
2
  export declare class ContextualCommandService {
3
3
  private config;
4
+ private modelsCache;
5
+ private cacheFilePath;
6
+ private readonly CACHE_TTL_MS;
4
7
  private verboseLogging;
5
8
  private usage;
6
9
  constructor(config: ContextualServiceConfig);
10
+ /**
11
+ * Load models cache from file if it exists and is fresh
12
+ */
13
+ private loadModelsCache;
14
+ /**
15
+ * Save models cache to file
16
+ */
17
+ private saveModelsCache;
7
18
  private autoConfigureProviders;
8
19
  private log;
9
20
  private handleError;
@@ -30,14 +41,51 @@ export declare class ContextualCommandService {
30
41
  */
31
42
  getSuggestions(request: ContextualRequest): Promise<any[]>;
32
43
  /**
33
- * Get available models
44
+ * Static utility to read cached models from file (for use in other services)
45
+ */
46
+ static getCachedModelsSync(): Array<{
47
+ id: string;
48
+ name: string;
49
+ provider: string;
50
+ available: boolean;
51
+ computeWeight?: number;
52
+ supportsImages?: boolean;
53
+ }>;
54
+ /**
55
+ * Static utility to get the fastest model for a provider from cache
56
+ */
57
+ static getFastestModelSync(provider: string): string | null;
58
+ /**
59
+ * Get available models from API or use cached/defaults
60
+ * Uses file-based cache that refreshes every 24 hours
34
61
  */
35
62
  getAvailableModels(): Promise<{
36
63
  id: string;
37
64
  name: string;
38
65
  provider: string;
39
66
  available: boolean;
67
+ computeWeight?: number;
68
+ supportsImages?: boolean;
40
69
  }[]>;
70
+ /**
71
+ * Get the latest default model for a provider (balanced tier, or fallback to hardcoded)
72
+ * This should be used instead of DEFAULT_CONFIG.model when possible
73
+ */
74
+ getLatestDefaultModel(provider?: string): Promise<string>;
75
+ /**
76
+ * Get default models by tier for a provider
77
+ * @param provider - Provider name
78
+ * @param tier - 'fast' (lowest computeWeight = cheapest), 'balanced' (medium), or 'powerful' (highest = most expensive)
79
+ */
80
+ getDefaultModelByTier(provider: string, tier?: 'fast' | 'balanced' | 'powerful'): Promise<string | null>;
81
+ /**
82
+ * Get latest models from each tier for all configured providers
83
+ */
84
+ getLatestModelsByTier(): Promise<Record<string, {
85
+ fast: string;
86
+ balanced: string;
87
+ powerful: string;
88
+ }>>;
41
89
  /**
42
90
  * Get usage statistics
43
91
  */
@@ -90,10 +90,12 @@ export declare class IntentDetectionPlugin {
90
90
  constructor(config: IntentDetectionConfig);
91
91
  /**
92
92
  * Resolve model name with dynamic discovery support
93
+ * Uses cached models when available, falls back to defaults
93
94
  */
94
95
  private resolveModelName;
95
96
  /**
96
97
  * Dynamically discover and select the best model for the provider
98
+ * Uses cached models when available
97
99
  */
98
100
  private discoverBestModel;
99
101
  private createModelInstance;
@@ -14,18 +14,6 @@ export declare function getDefaultModelsForProvider(provider: string): {
14
14
  provider: string;
15
15
  available: boolean;
16
16
  supportsImages: boolean;
17
- }[] | {
18
- id: string;
19
- name: string;
20
- provider: string;
21
- available: boolean;
22
- supportsImages: boolean;
23
- }[] | {
24
- id: string;
25
- name: string;
26
- provider: string;
27
- available: boolean;
28
- supportsImages: boolean;
29
17
  }[];
30
18
  /**
31
19
  * Enhanced context analysis for better AI suggestions
@@ -494,7 +494,8 @@ export interface ContextualRequest {
494
494
  }>;
495
495
  modelSelection?: {
496
496
  provider: string;
497
- model: string;
497
+ model?: string;
498
+ tier?: 'fast' | 'balanced' | 'powerful';
498
499
  };
499
500
  chatLevel?: 'full' | 'basic' | 'none';
500
501
  additionalContext?: string;
@@ -14,18 +14,6 @@ export declare function getDefaultModelsForProvider(provider: string): {
14
14
  provider: string;
15
15
  available: boolean;
16
16
  supportsImages: boolean;
17
- }[] | {
18
- id: string;
19
- name: string;
20
- provider: string;
21
- available: boolean;
22
- supportsImages: boolean;
23
- }[] | {
24
- id: string;
25
- name: string;
26
- provider: string;
27
- available: boolean;
28
- supportsImages: boolean;
29
17
  }[];
30
18
  /**
31
19
  * Enhanced context analysis for better AI suggestions
@@ -494,7 +494,8 @@ export interface ContextualRequest {
494
494
  }>;
495
495
  modelSelection?: {
496
496
  provider: string;
497
- model: string;
497
+ model?: string;
498
+ tier?: 'fast' | 'balanced' | 'powerful';
498
499
  };
499
500
  chatLevel?: 'full' | 'basic' | 'none';
500
501
  additionalContext?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchid-ai",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "type": "module",
5
5
  "description": "AI-powered command processing and chat interface for React applications",
6
6
  "main": "dist/index.js",