@vibe-forge/client 0.2.0-alpha.9 → 0.3.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 (60) hide show
  1. package/dist/assets/{arc-CybT1Fs2.js → arc-CwMXUVsq.js} +1 -1
  2. package/dist/assets/{blockDiagram-c4efeb88-BY5Aoa-D.js → blockDiagram-c4efeb88-CGxJV7KJ.js} +1 -1
  3. package/dist/assets/{c4Diagram-c83219d4-F42hTbzS.js → c4Diagram-c83219d4-BKhin7cY.js} +1 -1
  4. package/dist/assets/channel-jbCEHqbG.js +1 -0
  5. package/dist/assets/{classDiagram-beda092f-D-tIPp-3.js → classDiagram-beda092f-BASmn22R.js} +1 -1
  6. package/dist/assets/{classDiagram-v2-2358418a-J57aCe6u.js → classDiagram-v2-2358418a-BUk9rNBX.js} +1 -1
  7. package/dist/assets/clone-CCRKqS4L.js +1 -0
  8. package/dist/assets/{createText-1719965b-ByfEqOF-.js → createText-1719965b-2XqnWjQY.js} +1 -1
  9. package/dist/assets/{edges-96097737-CMEArkOa.js → edges-96097737-B7e32Jeg.js} +1 -1
  10. package/dist/assets/{erDiagram-0228fc6a-Cf8mX2aj.js → erDiagram-0228fc6a-CCR2or72.js} +1 -1
  11. package/dist/assets/{flowDb-c6c81e3f-DG6WKyo7.js → flowDb-c6c81e3f-B72HWT9x.js} +1 -1
  12. package/dist/assets/{flowDiagram-50d868cf-CstUxz-w.js → flowDiagram-50d868cf-WOi0KARY.js} +1 -1
  13. package/dist/assets/flowDiagram-v2-4f6560a1-Baslbgn4.js +1 -0
  14. package/dist/assets/{flowchart-elk-definition-6af322e1--4CRoQ-H.js → flowchart-elk-definition-6af322e1-i_Yd0LCE.js} +1 -1
  15. package/dist/assets/{ganttDiagram-a2739b55-DYgHcKd-.js → ganttDiagram-a2739b55-CFH9zF14.js} +1 -1
  16. package/dist/assets/{gitGraphDiagram-82fe8481-DDSVpfsd.js → gitGraphDiagram-82fe8481-DglKfMze.js} +1 -1
  17. package/dist/assets/{graph-CRWF39gX.js → graph-BKbBNGPf.js} +1 -1
  18. package/dist/assets/{index-5325376f-W1hft795.js → index-5325376f-BK7F9nSl.js} +1 -1
  19. package/dist/assets/{index-PEmISxiy.css → index-B0qfCb1G.css} +1 -1
  20. package/dist/assets/{index-CNMzWvKV.js → index-CNo75dYr.js} +127 -127
  21. package/dist/assets/{infoDiagram-8eee0895-D4SHcix6.js → infoDiagram-8eee0895-BLFL77_D.js} +1 -1
  22. package/dist/assets/{journeyDiagram-c64418c1-MWgCkVoE.js → journeyDiagram-c64418c1-CS9XctDL.js} +1 -1
  23. package/dist/assets/{layout-C88ObkCf.js → layout-By3JZZGt.js} +1 -1
  24. package/dist/assets/{line-C7WAYMt5.js → line-9GUsXbwv.js} +1 -1
  25. package/dist/assets/{linear-C4msxfcU.js → linear-DzGV4E9N.js} +1 -1
  26. package/dist/assets/{mermaid.core-Cabag9SZ.js → mermaid.core-CG3Ib42Q.js} +4 -4
  27. package/dist/assets/{mindmap-definition-8da855dc-CeS8ETXx.js → mindmap-definition-8da855dc-WQ3LPKJU.js} +1 -1
  28. package/dist/assets/{pieDiagram-a8764435-BvjyKnq5.js → pieDiagram-a8764435-DHVIUZiN.js} +1 -1
  29. package/dist/assets/{quadrantDiagram-1e28029f-DzYvpbNM.js → quadrantDiagram-1e28029f-C3G9Ye8-.js} +1 -1
  30. package/dist/assets/{requirementDiagram-08caed73-DHIoDbyo.js → requirementDiagram-08caed73-C9ES1D5G.js} +1 -1
  31. package/dist/assets/{sankeyDiagram-a04cb91d-BFSGnQGs.js → sankeyDiagram-a04cb91d-B4BKXclQ.js} +1 -1
  32. package/dist/assets/{sequenceDiagram-c5b8d532-_LM3BJ5-.js → sequenceDiagram-c5b8d532-DrgEb25G.js} +1 -1
  33. package/dist/assets/{stateDiagram-1ecb1508-DwORjOzl.js → stateDiagram-1ecb1508-CF1XWARJ.js} +1 -1
  34. package/dist/assets/{stateDiagram-v2-c2b004d7-B4cAWWz1.js → stateDiagram-v2-c2b004d7-IO3i3yXv.js} +1 -1
  35. package/dist/assets/{styles-b4e223ce-D_rmV3B_.js → styles-b4e223ce-DACN9aSc.js} +1 -1
  36. package/dist/assets/{styles-ca3715f6-BFx4VuFc.js → styles-ca3715f6-bekm2WLP.js} +1 -1
  37. package/dist/assets/{styles-d45a18b0-BE3106vL.js → styles-d45a18b0-OzTDVBb8.js} +1 -1
  38. package/dist/assets/{svgDrawCommon-b86b1483-DwDTO1op.js → svgDrawCommon-b86b1483-BWroJerr.js} +1 -1
  39. package/dist/assets/{timeline-definition-faaaa080-C4b8qUQZ.js → timeline-definition-faaaa080-CCfRNigO.js} +1 -1
  40. package/dist/assets/{xychartDiagram-f5964ef8-BRJ9Z4u-.js → xychartDiagram-f5964ef8-C3cbfVqN.js} +1 -1
  41. package/dist/index.html +2 -2
  42. package/package.json +3 -3
  43. package/src/api.ts +30 -2
  44. package/src/components/ConfigView.tsx +6 -1
  45. package/src/components/chat/NewSessionGuide.scss +35 -13
  46. package/src/components/chat/NewSessionGuide.tsx +20 -10
  47. package/src/components/chat/useChatModels.tsx +19 -1
  48. package/src/components/chat/useChatSession.ts +1 -1
  49. package/src/components/config/AppSettingsPanel.tsx +33 -0
  50. package/src/components/knowledge-base/KnowledgeBaseView.tsx +51 -3
  51. package/src/components/knowledge-base/components/RuleItem.tsx +79 -0
  52. package/src/components/knowledge-base/components/RuleList.scss +5 -0
  53. package/src/components/knowledge-base/components/RuleList.tsx +70 -0
  54. package/src/components/knowledge-base/components/RulesTab.tsx +32 -7
  55. package/src/resources/locales/en.json +7 -0
  56. package/src/resources/locales/zh.json +7 -0
  57. package/src/store/index.ts +2 -0
  58. package/dist/assets/channel-DrWdSpqV.js +0 -1
  59. package/dist/assets/clone-D0cC8LLB.js +0 -1
  60. package/dist/assets/flowDiagram-v2-4f6560a1-Bf_DH7dp.js +0 -1
@@ -0,0 +1,70 @@
1
+ import './RuleList.scss'
2
+
3
+ import { List } from 'antd'
4
+ import { useTranslation } from 'react-i18next'
5
+
6
+ import type { RuleSummary } from '#~/api.js'
7
+ import { EmptyState } from './EmptyState'
8
+ import { KnowledgeList } from './KnowledgeList'
9
+ import { LoadingState } from './LoadingState'
10
+ import { RuleItem } from './RuleItem'
11
+
12
+ type RuleListProps = {
13
+ isLoading: boolean
14
+ rules: RuleSummary[]
15
+ filteredRules: RuleSummary[]
16
+ onCreate: () => void
17
+ }
18
+
19
+ export function RuleList({
20
+ isLoading,
21
+ rules,
22
+ filteredRules,
23
+ onCreate
24
+ }: RuleListProps) {
25
+ const { t } = useTranslation()
26
+
27
+ if (isLoading) {
28
+ return (
29
+ <div className='knowledge-base-view__rule-list'>
30
+ <LoadingState />
31
+ </div>
32
+ )
33
+ }
34
+
35
+ if (rules.length === 0) {
36
+ return (
37
+ <div className='knowledge-base-view__rule-list'>
38
+ <EmptyState
39
+ description={t('knowledge.rules.empty')}
40
+ actionLabel={t('knowledge.rules.create')}
41
+ onAction={onCreate}
42
+ />
43
+ </div>
44
+ )
45
+ }
46
+
47
+ if (filteredRules.length === 0) {
48
+ return (
49
+ <div className='knowledge-base-view__rule-list'>
50
+ <EmptyState
51
+ description={t('knowledge.filters.noResults')}
52
+ variant='simple'
53
+ />
54
+ </div>
55
+ )
56
+ }
57
+
58
+ return (
59
+ <div className='knowledge-base-view__rule-list'>
60
+ <KnowledgeList
61
+ data={filteredRules}
62
+ renderItem={(rule) => (
63
+ <List.Item className='knowledge-base-view__list-item'>
64
+ <RuleItem rule={rule} />
65
+ </List.Item>
66
+ )}
67
+ />
68
+ </div>
69
+ )
70
+ }
@@ -1,19 +1,33 @@
1
1
  import './RulesTab.scss'
2
2
 
3
- import { Space } from 'antd'
3
+ import { Input, Space } from 'antd'
4
4
  import { useTranslation } from 'react-i18next'
5
5
 
6
+ import type { RuleSummary } from '#~/api.js'
6
7
  import { ActionButton } from './ActionButton'
7
- import { EmptyState } from './EmptyState'
8
+ import { RuleList } from './RuleList'
8
9
  import { SectionHeader } from './SectionHeader'
9
10
  import { TabContent } from './TabContent'
10
11
 
11
12
  type RulesTabProps = {
13
+ rules: RuleSummary[]
14
+ filteredRules: RuleSummary[]
15
+ isLoading: boolean
16
+ query: string
17
+ onQueryChange: (value: string) => void
12
18
  onCreate: () => void
13
19
  onImport: () => void
14
20
  }
15
21
 
16
- export function RulesTab({ onCreate, onImport }: RulesTabProps) {
22
+ export function RulesTab({
23
+ rules,
24
+ filteredRules,
25
+ isLoading,
26
+ query,
27
+ onQueryChange,
28
+ onCreate,
29
+ onImport
30
+ }: RulesTabProps) {
17
31
  const { t } = useTranslation()
18
32
 
19
33
  return (
@@ -39,10 +53,21 @@ export function RulesTab({ onCreate, onImport }: RulesTabProps) {
39
53
  </Space>
40
54
  )}
41
55
  />
42
- <EmptyState
43
- description={t('knowledge.rules.empty')}
44
- actionLabel={t('knowledge.rules.create')}
45
- onAction={onCreate}
56
+ <div className='knowledge-base-view__filters'>
57
+ <Input
58
+ className='knowledge-base-view__filter-input'
59
+ prefix={<span className='material-symbols-rounded knowledge-base-view__filter-icon'>search</span>}
60
+ placeholder={t('knowledge.filters.search')}
61
+ allowClear
62
+ value={query}
63
+ onChange={(e) => onQueryChange(e.target.value)}
64
+ />
65
+ </div>
66
+ <RuleList
67
+ isLoading={isLoading}
68
+ rules={rules}
69
+ filteredRules={filteredRules}
70
+ onCreate={onCreate}
46
71
  />
47
72
  </TabContent>
48
73
  )
@@ -758,8 +758,15 @@
758
758
  "plugins": "Plugins",
759
759
  "mcp": "MCP",
760
760
  "shortcuts": "Shortcuts",
761
+ "appearance": "Appearance",
761
762
  "experiments": "Experiments",
762
763
  "about": "About"
764
+ },
765
+ "appSettings": {
766
+ "announcements": {
767
+ "label": "Show announcements",
768
+ "desc": "Show announcements when creating a new session"
769
+ }
763
770
  }
764
771
  }
765
772
  }
@@ -759,8 +759,15 @@
759
759
  "plugins": "插件",
760
760
  "mcp": "MCP",
761
761
  "shortcuts": "快捷键",
762
+ "appearance": "外观",
762
763
  "experiments": "实验功能",
763
764
  "about": "关于"
765
+ },
766
+ "appSettings": {
767
+ "announcements": {
768
+ "label": "显示公告",
769
+ "desc": "新建会话时展示公告信息"
770
+ }
764
771
  }
765
772
  }
766
773
  }
@@ -21,3 +21,5 @@ export type ThemeMode = 'light' | 'dark' | 'system'
21
21
  export const themeAtom = atom<ThemeMode>(
22
22
  (localStorage.getItem('theme') as ThemeMode) || 'system'
23
23
  )
24
+
25
+ export const showAnnouncementsAtom = atom(true)
@@ -1 +0,0 @@
1
- import{al as o,am as n}from"./mermaid.core-Cabag9SZ.js";const l=(a,r)=>o.lang.round(n.parse(a)[r]);export{l as c};
@@ -1 +0,0 @@
1
- import{a as r}from"./graph-CRWF39gX.js";var a=4;function n(o){return r(o,a)}export{n as c};
@@ -1 +0,0 @@
1
- import{f as o,p as e}from"./flowDb-c6c81e3f-DG6WKyo7.js";import{f as a,g as t}from"./styles-d45a18b0-BE3106vL.js";import{ar as i}from"./mermaid.core-Cabag9SZ.js";import"./graph-CRWF39gX.js";import"./layout-C88ObkCf.js";import"./index-CNMzWvKV.js";import"./index-5325376f-W1hft795.js";import"./clone-D0cC8LLB.js";import"./edges-96097737-CMEArkOa.js";import"./createText-1719965b-ByfEqOF-.js";import"./line-C7WAYMt5.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-DrWdSpqV.js";const n={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{n as diagram};