@lssm/module.ai-chat 0.0.0-canary-20251217060834 → 0.0.0-canary-20251217072406

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 (46) hide show
  1. package/dist/ai-chat.feature.js +93 -1
  2. package/dist/context/context-builder.js +147 -2
  3. package/dist/context/file-operations.js +174 -1
  4. package/dist/context/index.js +5 -1
  5. package/dist/context/workspace-context.js +123 -2
  6. package/dist/core/chat-service.js +211 -2
  7. package/dist/core/conversation-store.js +108 -1
  8. package/dist/core/index.js +4 -1
  9. package/dist/index.d.ts +0 -2
  10. package/dist/index.js +22 -1
  11. package/dist/libs/ai-providers/dist/factory.js +225 -0
  12. package/dist/libs/ai-providers/dist/index.js +4 -0
  13. package/dist/libs/ai-providers/dist/legacy.js +2 -0
  14. package/dist/libs/ai-providers/dist/models.js +299 -0
  15. package/dist/libs/ai-providers/dist/validation.js +60 -0
  16. package/dist/libs/design-system/dist/_virtual/rolldown_runtime.js +5 -0
  17. package/dist/libs/design-system/dist/components/atoms/Button.js +33 -0
  18. package/dist/libs/design-system/dist/components/atoms/Textarea.js +35 -0
  19. package/dist/libs/design-system/dist/lib/keyboard.js +193 -0
  20. package/dist/libs/design-system/dist/ui-kit-web/dist/ui/button.js +55 -0
  21. package/dist/libs/design-system/dist/ui-kit-web/dist/ui/textarea.js +16 -0
  22. package/dist/libs/design-system/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js +13 -0
  23. package/dist/libs/ui-kit-web/dist/ui/avatar.js +25 -0
  24. package/dist/libs/ui-kit-web/dist/ui/badge.js +26 -0
  25. package/dist/libs/ui-kit-web/dist/ui/scroll-area.js +39 -0
  26. package/dist/libs/ui-kit-web/dist/ui/select.js +79 -0
  27. package/dist/libs/ui-kit-web/dist/ui/skeleton.js +14 -0
  28. package/dist/libs/ui-kit-web/dist/ui/tooltip.js +39 -0
  29. package/dist/libs/ui-kit-web/dist/ui/utils.js +10 -0
  30. package/dist/libs/ui-kit-web/dist/ui-kit-core/dist/utils.js +10 -0
  31. package/dist/presentation/components/ChatContainer.js +62 -1
  32. package/dist/presentation/components/ChatInput.js +149 -1
  33. package/dist/presentation/components/ChatMessage.js +135 -1
  34. package/dist/presentation/components/CodePreview.js +126 -2
  35. package/dist/presentation/components/ContextIndicator.js +96 -1
  36. package/dist/presentation/components/ModelPicker.d.ts +1 -1
  37. package/dist/presentation/components/ModelPicker.js +197 -1
  38. package/dist/presentation/components/index.js +8 -1
  39. package/dist/presentation/hooks/index.js +4 -1
  40. package/dist/presentation/hooks/useChat.js +171 -1
  41. package/dist/presentation/hooks/useProviders.js +42 -1
  42. package/dist/presentation/index.d.ts +0 -1
  43. package/dist/presentation/index.js +12 -1
  44. package/dist/providers/chat-utilities.js +16 -1
  45. package/dist/providers/index.js +7 -1
  46. package/package.json +10 -10
@@ -1 +1,42 @@
1
- "use client";import{getAvailableProviders as e,getModelsForProvider as t}from"@lssm/lib.ai-providers";import*as n from"react";function r(){let[r,i]=n.useState([]),[a,o]=n.useState(!0),s=n.useCallback(async()=>{o(!0);try{i(e().map(e=>({...e,models:t(e.provider)})))}catch(e){console.error(`Failed to load providers:`,e)}finally{o(!1)}},[]);return n.useEffect(()=>{s()},[s]),{providers:r,availableProviders:n.useMemo(()=>r.filter(e=>e.available),[r]),isAvailable:n.useCallback(e=>r.some(t=>t.provider===e&&t.available),[r]),getModels:n.useCallback(e=>r.find(t=>t.provider===e)?.models??[],[r]),isLoading:a,refresh:s}}export{r as useProviders};
1
+ 'use client';
2
+
3
+ import { getModelsForProvider } from "../../libs/ai-providers/dist/models.js";
4
+ import { getAvailableProviders } from "../../libs/ai-providers/dist/factory.js";
5
+ import "../../libs/ai-providers/dist/index.js";
6
+ import * as React from "react";
7
+
8
+ //#region src/presentation/hooks/useProviders.tsx
9
+ /**
10
+ * Hook for managing AI provider information
11
+ */
12
+ function useProviders() {
13
+ const [providers, setProviders] = React.useState([]);
14
+ const [isLoading, setIsLoading] = React.useState(true);
15
+ const loadProviders = React.useCallback(async () => {
16
+ setIsLoading(true);
17
+ try {
18
+ setProviders(getAvailableProviders().map((p) => ({
19
+ ...p,
20
+ models: getModelsForProvider(p.provider)
21
+ })));
22
+ } catch (error) {
23
+ console.error("Failed to load providers:", error);
24
+ } finally {
25
+ setIsLoading(false);
26
+ }
27
+ }, []);
28
+ React.useEffect(() => {
29
+ loadProviders();
30
+ }, [loadProviders]);
31
+ return {
32
+ providers,
33
+ availableProviders: React.useMemo(() => providers.filter((p) => p.available), [providers]),
34
+ isAvailable: React.useCallback((provider) => providers.some((p) => p.provider === provider && p.available), [providers]),
35
+ getModels: React.useCallback((provider) => providers.find((p) => p.provider === provider)?.models ?? [], [providers]),
36
+ isLoading,
37
+ refresh: loadProviders
38
+ };
39
+ }
40
+
41
+ //#endregion
42
+ export { useProviders };
@@ -7,5 +7,4 @@ import { CodePreview } from "./components/CodePreview.js";
7
7
  import "./components/index.js";
8
8
  import { UseChatOptions, UseChatReturn, useChat } from "./hooks/useChat.js";
9
9
  import { UseProvidersReturn, useProviders } from "./hooks/useProviders.js";
10
- import "./hooks/index.js";
11
10
  export { ChatContainer, ChatInput, ChatMessage, CodePreview, ContextIndicator, ModelPicker, UseChatOptions, UseChatReturn, UseProvidersReturn, useChat, useProviders };
@@ -1 +1,12 @@
1
- import{ChatContainer as e}from"./components/ChatContainer.js";import{CodePreview as t}from"./components/CodePreview.js";import{ChatMessage as n}from"./components/ChatMessage.js";import{ChatInput as r}from"./components/ChatInput.js";import{ModelPicker as i}from"./components/ModelPicker.js";import{ContextIndicator as a}from"./components/ContextIndicator.js";import"./components/index.js";import{useChat as o}from"./hooks/useChat.js";import{useProviders as s}from"./hooks/useProviders.js";import"./hooks/index.js";export{e as ChatContainer,r as ChatInput,n as ChatMessage,t as CodePreview,a as ContextIndicator,i as ModelPicker,o as useChat,s as useProviders};
1
+ import { ChatContainer } from "./components/ChatContainer.js";
2
+ import { CodePreview } from "./components/CodePreview.js";
3
+ import { ChatMessage } from "./components/ChatMessage.js";
4
+ import { ChatInput } from "./components/ChatInput.js";
5
+ import { ModelPicker } from "./components/ModelPicker.js";
6
+ import { ContextIndicator } from "./components/ContextIndicator.js";
7
+ import "./components/index.js";
8
+ import { useChat } from "./hooks/useChat.js";
9
+ import { useProviders } from "./hooks/useProviders.js";
10
+ import "./hooks/index.js";
11
+
12
+ export { ChatContainer, ChatInput, ChatMessage, CodePreview, ContextIndicator, ModelPicker, useChat, useProviders };
@@ -1 +1,16 @@
1
- function e(e){return e===`ollama`}function t(e){return e!==`ollama`}export{t as isStudioAvailable,e as supportsLocalMode};
1
+ //#region src/providers/chat-utilities.ts
2
+ /**
3
+ * Check if a provider supports local mode
4
+ */
5
+ function supportsLocalMode(provider) {
6
+ return provider === "ollama";
7
+ }
8
+ /**
9
+ * Check if a provider is available in Studio (cloud only)
10
+ */
11
+ function isStudioAvailable(provider) {
12
+ return provider !== "ollama";
13
+ }
14
+
15
+ //#endregion
16
+ export { isStudioAvailable, supportsLocalMode };
@@ -1 +1,7 @@
1
- import{isStudioAvailable as e,supportsLocalMode as t}from"./chat-utilities.js";import{DEFAULT_MODELS as n,MODELS as r,createProvider as i,createProviderFromEnv as a,getAvailableProviders as o,getDefaultModel as s,getEnvVarName as c,getModelInfo as l,getModelsForProvider as u,getRecommendedModels as d,hasCredentials as f,isOllamaRunning as p,listOllamaModels as m,validateProvider as h}from"@lssm/lib.ai-providers";export{n as DEFAULT_MODELS,r as MODELS,i as createProvider,a as createProviderFromEnv,o as getAvailableProviders,s as getDefaultModel,c as getEnvVarName,l as getModelInfo,u as getModelsForProvider,d as getRecommendedModels,f as hasCredentials,p as isOllamaRunning,e as isStudioAvailable,m as listOllamaModels,t as supportsLocalMode,h as validateProvider};
1
+ import { DEFAULT_MODELS, MODELS, getDefaultModel, getModelInfo, getModelsForProvider, getRecommendedModels } from "../libs/ai-providers/dist/models.js";
2
+ import { createProvider, createProviderFromEnv, getAvailableProviders } from "../libs/ai-providers/dist/factory.js";
3
+ import { getEnvVarName, hasCredentials, isOllamaRunning, listOllamaModels, validateProvider } from "../libs/ai-providers/dist/validation.js";
4
+ import "../libs/ai-providers/dist/index.js";
5
+ import { isStudioAvailable, supportsLocalMode } from "./chat-utilities.js";
6
+
7
+ export { DEFAULT_MODELS, MODELS, createProvider, createProviderFromEnv, getAvailableProviders, getDefaultModel, getEnvVarName, getModelInfo, getModelsForProvider, getRecommendedModels, hasCredentials, isOllamaRunning, isStudioAvailable, listOllamaModels, supportsLocalMode, validateProvider };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/module.ai-chat",
3
- "version": "0.0.0-canary-20251217060834",
3
+ "version": "0.0.0-canary-20251217072406",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -23,13 +23,13 @@
23
23
  "test": "bun test"
24
24
  },
25
25
  "dependencies": {
26
- "@lssm/lib.ai-agent": "0.0.0-canary-20251217060834",
27
- "@lssm/lib.ai-providers": "0.0.0-canary-20251217060834",
28
- "@lssm/lib.contracts": "0.0.0-canary-20251217060834",
29
- "@lssm/lib.metering": "0.0.0-canary-20251217060834",
30
- "@lssm/lib.cost-tracking": "0.0.0-canary-20251217060834",
31
- "@lssm/lib.design-system": "0.0.0-canary-20251217060834",
32
- "@lssm/lib.ui-kit-web": "0.0.0-canary-20251217060834",
26
+ "@lssm/lib.ai-agent": "0.0.0-canary-20251217072406",
27
+ "@lssm/lib.ai-providers": "0.0.0-canary-20251217072406",
28
+ "@lssm/lib.contracts": "0.0.0-canary-20251217072406",
29
+ "@lssm/lib.metering": "0.0.0-canary-20251217072406",
30
+ "@lssm/lib.cost-tracking": "0.0.0-canary-20251217072406",
31
+ "@lssm/lib.design-system": "0.0.0-canary-20251217072406",
32
+ "@lssm/lib.ui-kit-web": "0.0.0-canary-20251217072406",
33
33
  "@ai-sdk/react": "beta",
34
34
  "ai": "beta",
35
35
  "lucide-react": "^0.535.0",
@@ -37,8 +37,8 @@
37
37
  "zod": "^4.1.13"
38
38
  },
39
39
  "devDependencies": {
40
- "@lssm/tool.tsdown": "0.0.0-canary-20251217060834",
41
- "@lssm/tool.typescript": "0.0.0-canary-20251217060834",
40
+ "@lssm/tool.tsdown": "0.0.0-canary-20251217072406",
41
+ "@lssm/tool.typescript": "0.0.0-canary-20251217072406",
42
42
  "@types/react": "^19.0.14",
43
43
  "tsdown": "^0.17.4",
44
44
  "typescript": "^5.9.3"