@talex-touch/utils 1.0.40 → 1.0.44

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 (235) hide show
  1. package/.eslintcache +1 -0
  2. package/__tests__/cloud-sync-sdk.test.ts +442 -0
  3. package/__tests__/icons/icons.test.ts +84 -0
  4. package/__tests__/plugin-sdk-lifecycle.test.ts +130 -0
  5. package/__tests__/power-sdk.test.ts +143 -0
  6. package/__tests__/preset-export-types.test.ts +108 -0
  7. package/__tests__/search/fuzzy-match.test.ts +137 -0
  8. package/__tests__/transport/port-policy.test.ts +44 -0
  9. package/__tests__/transport-domain-sdks.test.ts +152 -0
  10. package/__tests__/types/update.test.ts +67 -0
  11. package/account/account-sdk.ts +915 -0
  12. package/account/index.ts +2 -0
  13. package/account/types.ts +321 -0
  14. package/analytics/client.ts +136 -0
  15. package/analytics/index.ts +2 -0
  16. package/analytics/types.ts +156 -0
  17. package/animation/auto-resize.ts +322 -0
  18. package/animation/window-node.ts +26 -19
  19. package/auth/clerk-types.ts +12 -30
  20. package/auth/index.ts +0 -2
  21. package/auth/useAuthState.ts +6 -14
  22. package/base/index.ts +2 -0
  23. package/base/log-level.ts +105 -0
  24. package/channel/index.ts +170 -69
  25. package/cloud-sync/cloud-sync-sdk.ts +450 -0
  26. package/cloud-sync/index.ts +1 -0
  27. package/common/file-scan-utils.ts +17 -9
  28. package/common/index.ts +4 -0
  29. package/common/logger/index.ts +46 -0
  30. package/common/logger/logger-manager.ts +303 -0
  31. package/common/logger/module-logger.ts +270 -0
  32. package/common/logger/transport-logger.ts +234 -0
  33. package/common/logger/types.ts +93 -0
  34. package/common/search/gather.ts +48 -6
  35. package/common/search/index.ts +8 -0
  36. package/common/storage/constants.ts +13 -0
  37. package/common/storage/entity/app-settings.ts +245 -0
  38. package/common/storage/entity/index.ts +3 -0
  39. package/common/storage/entity/layout-atom-types.ts +147 -0
  40. package/common/storage/entity/openers.ts +1 -0
  41. package/common/storage/entity/preset-cloud-api.ts +132 -0
  42. package/common/storage/entity/preset-export-types.ts +256 -0
  43. package/common/storage/entity/shortcut-settings.ts +1 -0
  44. package/common/storage/shortcut-storage.ts +11 -0
  45. package/common/utils/clone-diagnostics.ts +105 -0
  46. package/common/utils/file.ts +16 -8
  47. package/common/utils/index.ts +6 -2
  48. package/common/utils/payload-preview.ts +173 -0
  49. package/common/utils/polling.ts +167 -13
  50. package/common/utils/safe-path.ts +103 -0
  51. package/common/utils/safe-shell.ts +115 -0
  52. package/common/utils/task-queue.ts +4 -1
  53. package/core-box/builder/tuff-builder.ts +0 -1
  54. package/core-box/index.ts +1 -1
  55. package/core-box/recommendation.ts +38 -1
  56. package/core-box/tuff/tuff-dsl.ts +97 -0
  57. package/electron/download-manager.ts +10 -7
  58. package/electron/env-tool.ts +42 -40
  59. package/electron/index.ts +0 -1
  60. package/env/index.ts +156 -0
  61. package/eslint.config.js +55 -0
  62. package/i18n/index.ts +62 -0
  63. package/i18n/locales/en.json +226 -0
  64. package/i18n/locales/zh.json +226 -0
  65. package/i18n/message-keys.ts +236 -0
  66. package/i18n/resolver.ts +181 -0
  67. package/icons/index.ts +257 -0
  68. package/icons/svg.ts +69 -0
  69. package/index.ts +9 -1
  70. package/intelligence/client.ts +72 -42
  71. package/market/constants.ts +21 -3
  72. package/market/index.ts +1 -1
  73. package/market/types.ts +20 -5
  74. package/package.json +15 -5
  75. package/permission/index.ts +143 -46
  76. package/permission/legacy.ts +26 -0
  77. package/permission/registry.ts +304 -0
  78. package/permission/types.ts +164 -0
  79. package/plugin/channel.ts +68 -39
  80. package/plugin/index.ts +82 -8
  81. package/plugin/install.ts +3 -0
  82. package/plugin/log/types.ts +22 -5
  83. package/plugin/node/logger-manager.ts +11 -3
  84. package/plugin/node/logger.ts +24 -17
  85. package/plugin/preload.ts +25 -2
  86. package/plugin/providers/index.ts +4 -0
  87. package/plugin/providers/market-client.ts +218 -0
  88. package/plugin/providers/npm-provider.ts +228 -0
  89. package/plugin/providers/tpex-provider.ts +297 -0
  90. package/plugin/providers/tpex-types.ts +34 -0
  91. package/plugin/sdk/box-items.ts +14 -0
  92. package/plugin/sdk/box-sdk.ts +64 -0
  93. package/plugin/sdk/channel.ts +119 -4
  94. package/plugin/sdk/clipboard.ts +26 -12
  95. package/plugin/sdk/cloud-sync.ts +113 -0
  96. package/plugin/sdk/common.ts +19 -11
  97. package/plugin/sdk/core-box.ts +6 -15
  98. package/plugin/sdk/division-box.ts +160 -65
  99. package/plugin/sdk/examples/storage-onDidChange-example.js +5 -2
  100. package/plugin/sdk/feature-sdk.ts +111 -76
  101. package/plugin/sdk/flow.ts +146 -45
  102. package/plugin/sdk/hooks/bridge.ts +113 -49
  103. package/plugin/sdk/hooks/life-cycle.ts +35 -16
  104. package/plugin/sdk/index.ts +14 -3
  105. package/plugin/sdk/intelligence.ts +87 -0
  106. package/plugin/sdk/meta/README.md +179 -0
  107. package/plugin/sdk/meta-sdk.ts +244 -0
  108. package/plugin/sdk/notification.ts +9 -0
  109. package/plugin/sdk/performance.ts +1 -16
  110. package/plugin/sdk/plugin-info.ts +64 -0
  111. package/plugin/sdk/power.ts +155 -0
  112. package/plugin/sdk/recommend.ts +21 -0
  113. package/plugin/sdk/service/index.ts +12 -8
  114. package/plugin/sdk/sqlite.ts +141 -0
  115. package/plugin/sdk/storage.ts +2 -6
  116. package/plugin/sdk/system.ts +2 -9
  117. package/plugin/sdk/temp-files.ts +41 -0
  118. package/plugin/sdk/touch-sdk.ts +18 -0
  119. package/plugin/sdk/types.ts +44 -4
  120. package/plugin/sdk/window/index.ts +12 -9
  121. package/plugin/sdk-version.ts +231 -0
  122. package/preload/renderer.ts +3 -2
  123. package/renderer/hooks/arg-mapper.ts +34 -6
  124. package/renderer/hooks/index.ts +13 -0
  125. package/renderer/hooks/initialize.ts +2 -1
  126. package/renderer/hooks/use-agent-market-sdk.ts +7 -0
  127. package/renderer/hooks/use-agent-market.ts +106 -0
  128. package/renderer/hooks/use-agents-sdk.ts +7 -0
  129. package/renderer/hooks/use-app-sdk.ts +7 -0
  130. package/renderer/hooks/use-channel.ts +33 -4
  131. package/renderer/hooks/use-download-sdk.ts +21 -0
  132. package/renderer/hooks/use-intelligence-sdk.ts +7 -0
  133. package/renderer/hooks/use-intelligence-stats.ts +290 -0
  134. package/renderer/hooks/use-intelligence.ts +202 -104
  135. package/renderer/hooks/use-market-sdk.ts +16 -0
  136. package/renderer/hooks/use-notification-sdk.ts +7 -0
  137. package/renderer/hooks/use-permission-sdk.ts +7 -0
  138. package/renderer/hooks/use-permission.ts +325 -0
  139. package/renderer/hooks/use-platform-sdk.ts +7 -0
  140. package/renderer/hooks/use-plugin-sdk.ts +16 -0
  141. package/renderer/hooks/use-settings-sdk.ts +7 -0
  142. package/renderer/hooks/use-update-sdk.ts +21 -0
  143. package/renderer/index.ts +1 -0
  144. package/renderer/ref.ts +19 -10
  145. package/renderer/shared/components/SharedPluginDetailContent.vue +84 -0
  146. package/renderer/shared/components/SharedPluginDetailHeader.vue +116 -0
  147. package/renderer/shared/components/SharedPluginDetailMetaList.vue +39 -0
  148. package/renderer/shared/components/SharedPluginDetailReadme.vue +45 -0
  149. package/renderer/shared/components/SharedPluginDetailVersions.vue +98 -0
  150. package/renderer/shared/components/index.ts +5 -0
  151. package/renderer/shared/components/shims-vue.d.ts +5 -0
  152. package/renderer/shared/index.ts +2 -0
  153. package/renderer/shared/plugin-detail.ts +62 -0
  154. package/renderer/storage/app-settings.ts +3 -1
  155. package/renderer/storage/base-storage.ts +508 -82
  156. package/renderer/storage/intelligence-storage.ts +37 -46
  157. package/renderer/storage/openers.ts +3 -1
  158. package/renderer/storage/storage-subscription.ts +126 -42
  159. package/renderer/touch-sdk/env.ts +10 -10
  160. package/renderer/touch-sdk/index.ts +114 -18
  161. package/renderer/touch-sdk/terminal.ts +24 -13
  162. package/search/feature-matcher.ts +279 -0
  163. package/search/fuzzy-match.ts +64 -34
  164. package/search/index.ts +10 -0
  165. package/search/levenshtein-utils.ts +17 -11
  166. package/transport/errors.ts +310 -0
  167. package/transport/event/builder.ts +378 -0
  168. package/transport/event/index.ts +7 -0
  169. package/transport/event/types.ts +292 -0
  170. package/transport/events/index.ts +2670 -0
  171. package/transport/events/meta-overlay.ts +79 -0
  172. package/transport/events/types/agents.ts +177 -0
  173. package/transport/events/types/app-index.ts +9 -0
  174. package/transport/events/types/app.ts +475 -0
  175. package/transport/events/types/box-item.ts +222 -0
  176. package/transport/events/types/clipboard.ts +80 -0
  177. package/transport/events/types/core-box.ts +534 -0
  178. package/transport/events/types/device-idle.ts +7 -0
  179. package/transport/events/types/division-box.ts +99 -0
  180. package/transport/events/types/download.ts +115 -0
  181. package/transport/events/types/file-index.ts +73 -0
  182. package/transport/events/types/flow.ts +149 -0
  183. package/transport/events/types/index.ts +70 -0
  184. package/transport/events/types/market.ts +39 -0
  185. package/transport/events/types/meta-overlay.ts +184 -0
  186. package/transport/events/types/notification.ts +140 -0
  187. package/transport/events/types/permission.ts +90 -0
  188. package/transport/events/types/platform.ts +8 -0
  189. package/transport/events/types/plugin.ts +620 -0
  190. package/transport/events/types/sentry.ts +20 -0
  191. package/transport/events/types/storage.ts +208 -0
  192. package/transport/events/types/transport.ts +60 -0
  193. package/transport/events/types/tray.ts +16 -0
  194. package/transport/events/types/update.ts +78 -0
  195. package/transport/index.ts +139 -0
  196. package/transport/main.ts +2 -0
  197. package/transport/sdk/constants.ts +29 -0
  198. package/transport/sdk/domains/agents-market.ts +47 -0
  199. package/transport/sdk/domains/agents.ts +62 -0
  200. package/transport/sdk/domains/app.ts +48 -0
  201. package/transport/sdk/domains/disposable.ts +35 -0
  202. package/transport/sdk/domains/download.ts +139 -0
  203. package/transport/sdk/domains/index.ts +13 -0
  204. package/transport/sdk/domains/intelligence.ts +616 -0
  205. package/transport/sdk/domains/market.ts +35 -0
  206. package/transport/sdk/domains/notification.ts +62 -0
  207. package/transport/sdk/domains/permission.ts +85 -0
  208. package/transport/sdk/domains/platform.ts +19 -0
  209. package/transport/sdk/domains/plugin.ts +144 -0
  210. package/transport/sdk/domains/settings.ts +92 -0
  211. package/transport/sdk/domains/update.ts +64 -0
  212. package/transport/sdk/index.ts +60 -0
  213. package/transport/sdk/main-transport.ts +710 -0
  214. package/transport/sdk/main.ts +9 -0
  215. package/transport/sdk/plugin-transport.ts +654 -0
  216. package/transport/sdk/port-policy.ts +38 -0
  217. package/transport/sdk/renderer-transport.ts +1165 -0
  218. package/transport/types.ts +605 -0
  219. package/types/agent.ts +399 -0
  220. package/types/cloud-sync.ts +157 -0
  221. package/types/division-box.ts +47 -27
  222. package/types/download.ts +1 -0
  223. package/types/flow.ts +63 -12
  224. package/types/icon.ts +2 -1
  225. package/types/index.ts +5 -0
  226. package/types/intelligence.ts +1492 -81
  227. package/types/modules/base.ts +2 -0
  228. package/types/path-browserify.d.ts +5 -0
  229. package/types/platform.ts +12 -0
  230. package/types/startup-info.ts +32 -0
  231. package/types/touch-app-core.ts +8 -8
  232. package/types/update.ts +94 -1
  233. package/vitest.config.ts +25 -0
  234. package/auth/useClerkConfig.ts +0 -40
  235. package/auth/useClerkProvider.ts +0 -52
@@ -1,15 +1,55 @@
1
1
  import type { Ref } from 'vue'
2
2
  import type {
3
- AiChatPayload,
4
- AiEmbeddingPayload,
5
- AiInvokeOptions,
6
- AiInvokeResult,
7
- AiProviderConfig,
8
- AiVisionOcrPayload,
9
- AiVisionOcrResult,
3
+ IntelligenceAgentPayload,
4
+ IntelligenceAgentResult,
5
+ IntelligenceChatPayload,
6
+ IntelligenceClassificationPayload,
7
+ IntelligenceClassificationResult,
8
+ IntelligenceCodeDebugPayload,
9
+ IntelligenceCodeDebugResult,
10
+ IntelligenceCodeExplainPayload,
11
+ IntelligenceCodeExplainResult,
12
+ IntelligenceCodeGeneratePayload,
13
+ IntelligenceCodeGenerateResult,
14
+ IntelligenceCodeRefactorPayload,
15
+ IntelligenceCodeRefactorResult,
16
+ IntelligenceCodeReviewPayload,
17
+ IntelligenceCodeReviewResult,
18
+ IntelligenceContentExtractPayload,
19
+ IntelligenceContentExtractResult,
20
+ IntelligenceEmbeddingPayload,
21
+ IntelligenceGrammarCheckPayload,
22
+ IntelligenceGrammarCheckResult,
23
+ IntelligenceImageAnalyzePayload,
24
+ IntelligenceImageAnalyzeResult,
25
+ IntelligenceImageCaptionPayload,
26
+ IntelligenceImageCaptionResult,
27
+ IntelligenceImageGeneratePayload,
28
+ IntelligenceImageGenerateResult,
29
+ IntelligenceIntentDetectPayload,
30
+ IntelligenceIntentDetectResult,
31
+ IntelligenceInvokeOptions,
32
+ IntelligenceInvokeResult,
33
+ IntelligenceKeywordsExtractPayload,
34
+ IntelligenceKeywordsExtractResult,
35
+ IntelligenceMessage,
36
+ IntelligenceProviderConfig,
37
+ IntelligenceRAGQueryPayload,
38
+ IntelligenceRAGQueryResult,
39
+ IntelligenceRerankPayload,
40
+ IntelligenceRerankResult,
41
+ IntelligenceRewritePayload,
42
+ IntelligenceSemanticSearchPayload,
43
+ IntelligenceSemanticSearchResult,
44
+ IntelligenceSentimentAnalyzePayload,
45
+ IntelligenceSentimentAnalyzeResult,
46
+ IntelligenceSummarizePayload,
47
+ IntelligenceTranslatePayload,
48
+ IntelligenceVisionOcrPayload,
49
+ IntelligenceVisionOcrResult,
10
50
  } from '../../types/intelligence'
11
51
  import { ref } from 'vue'
12
- import { useChannel } from './use-channel'
52
+ import { useIntelligenceSdk } from './use-intelligence-sdk'
13
53
 
14
54
  interface UseIntelligenceOptions {
15
55
  // Reserved for future options
@@ -20,11 +60,11 @@ interface IntelligenceComposable {
20
60
  invoke: <T = any>(
21
61
  capabilityId: string,
22
62
  payload: any,
23
- options?: AiInvokeOptions,
24
- ) => Promise<AiInvokeResult<T>>
63
+ options?: IntelligenceInvokeOptions,
64
+ ) => Promise<IntelligenceInvokeResult<T>>
25
65
 
26
66
  // Provider testing
27
- testProvider: (config: AiProviderConfig) => Promise<{
67
+ testProvider: (config: IntelligenceProviderConfig) => Promise<{
28
68
  success: boolean
29
69
  message: string
30
70
  latency?: number
@@ -50,21 +90,64 @@ interface IntelligenceComposable {
50
90
  inputHint: string
51
91
  }>
52
92
 
53
- // Convenient text methods
93
+ // Text methods
54
94
  text: {
55
- chat: (payload: AiChatPayload, options?: AiInvokeOptions) => Promise<AiInvokeResult<string>>
56
- translate: (payload: { text: string, sourceLang?: string, targetLang: string }, options?: AiInvokeOptions) => Promise<AiInvokeResult<string>>
57
- summarize: (payload: { text: string, maxLength?: number, style?: 'concise' | 'detailed' | 'bullet-points' }, options?: AiInvokeOptions) => Promise<AiInvokeResult<string>>
95
+ chat: (payload: IntelligenceChatPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<string>>
96
+ chatLangChain: (params: {
97
+ messages: IntelligenceMessage[]
98
+ providerId?: string
99
+ model?: string
100
+ promptTemplate?: string
101
+ promptVariables?: Record<string, any>
102
+ metadata?: Record<string, any>
103
+ }) => Promise<IntelligenceInvokeResult<string>>
104
+ translate: (payload: IntelligenceTranslatePayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<string>>
105
+ summarize: (payload: IntelligenceSummarizePayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<string>>
106
+ rewrite: (payload: IntelligenceRewritePayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<string>>
107
+ grammarCheck: (payload: IntelligenceGrammarCheckPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceGrammarCheckResult>>
58
108
  }
59
109
 
60
- // Convenient embedding methods
110
+ // Embedding methods
61
111
  embedding: {
62
- generate: (payload: AiEmbeddingPayload, options?: AiInvokeOptions) => Promise<AiInvokeResult<number[]>>
112
+ generate: (payload: IntelligenceEmbeddingPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<number[]>>
63
113
  }
64
114
 
65
- // Convenient vision methods
115
+ // Code methods
116
+ code: {
117
+ generate: (payload: IntelligenceCodeGeneratePayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceCodeGenerateResult>>
118
+ explain: (payload: IntelligenceCodeExplainPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceCodeExplainResult>>
119
+ review: (payload: IntelligenceCodeReviewPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceCodeReviewResult>>
120
+ refactor: (payload: IntelligenceCodeRefactorPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceCodeRefactorResult>>
121
+ debug: (payload: IntelligenceCodeDebugPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceCodeDebugResult>>
122
+ }
123
+
124
+ // Analysis methods
125
+ analysis: {
126
+ detectIntent: (payload: IntelligenceIntentDetectPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceIntentDetectResult>>
127
+ analyzeSentiment: (payload: IntelligenceSentimentAnalyzePayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceSentimentAnalyzeResult>>
128
+ extractContent: (payload: IntelligenceContentExtractPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceContentExtractResult>>
129
+ extractKeywords: (payload: IntelligenceKeywordsExtractPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceKeywordsExtractResult>>
130
+ classify: (payload: IntelligenceClassificationPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceClassificationResult>>
131
+ }
132
+
133
+ // Vision methods
66
134
  vision: {
67
- ocr: (payload: AiVisionOcrPayload, options?: AiInvokeOptions) => Promise<AiInvokeResult<AiVisionOcrResult>>
135
+ ocr: (payload: IntelligenceVisionOcrPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceVisionOcrResult>>
136
+ caption: (payload: IntelligenceImageCaptionPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceImageCaptionResult>>
137
+ analyze: (payload: IntelligenceImageAnalyzePayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceImageAnalyzeResult>>
138
+ generate: (payload: IntelligenceImageGeneratePayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceImageGenerateResult>>
139
+ }
140
+
141
+ // RAG methods
142
+ rag: {
143
+ query: (payload: IntelligenceRAGQueryPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceRAGQueryResult>>
144
+ semanticSearch: (payload: IntelligenceSemanticSearchPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceSemanticSearchResult>>
145
+ rerank: (payload: IntelligenceRerankPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceRerankResult>>
146
+ }
147
+
148
+ // Agent methods
149
+ agent: {
150
+ run: (payload: IntelligenceAgentPayload, options?: IntelligenceInvokeOptions) => Promise<IntelligenceInvokeResult<IntelligenceAgentResult>>
68
151
  }
69
152
 
70
153
  // Loading state
@@ -97,39 +180,20 @@ interface IntelligenceComposable {
97
180
  * })
98
181
  * ```
99
182
  */
183
+ /**
184
+ * @deprecated 请优先使用 useIntelligenceSdk() 直接调用 domain SDK。
185
+ */
100
186
  export function useIntelligence(_options: UseIntelligenceOptions = {}): IntelligenceComposable {
101
187
  const isLoading = ref(false)
102
188
  const lastError = ref<string | null>(null)
189
+ const intelligenceSdk = useIntelligenceSdk()
103
190
 
104
- // Get the TouchChannel instance
105
- const channel = useChannel()
106
-
107
- // Helper for consistent response handling
108
- interface ChannelResponse<T> {
109
- ok: boolean
110
- result?: T
111
- error?: string
112
- }
113
-
114
- async function sendChannelRequest<T>(
115
- eventName: string,
116
- payload: any,
117
- ): Promise<T> {
118
- const response = await channel.send<any, ChannelResponse<T>>(eventName, payload)
119
- if (!response?.ok) {
120
- throw new Error(response?.error || 'Intelligence request failed')
121
- }
122
- return response.result as T
123
- }
124
-
125
- // Wrapper function that handles loading state and errors
126
191
  async function withLoadingState<T>(operation: () => Promise<T>): Promise<T> {
127
192
  isLoading.value = true
128
193
  lastError.value = null
129
194
 
130
195
  try {
131
- const result = await operation()
132
- return result
196
+ return await operation()
133
197
  }
134
198
  catch (error) {
135
199
  const errorMessage = error instanceof Error ? error.message : String(error)
@@ -141,95 +205,129 @@ export function useIntelligence(_options: UseIntelligenceOptions = {}): Intellig
141
205
  }
142
206
  }
143
207
 
208
+ const invokeCapability = <T = unknown>(
209
+ capabilityId: string,
210
+ payload: unknown,
211
+ options?: IntelligenceInvokeOptions,
212
+ ) => withLoadingState(() => intelligenceSdk.invoke<T>(capabilityId, payload, options))
213
+
144
214
  return {
145
- // Core invoke
146
- invoke: <T = any>(capabilityId: string, payload: any, options?: AiInvokeOptions) =>
147
- withLoadingState(() =>
148
- sendChannelRequest<AiInvokeResult<T>>('intelligence:invoke', { capabilityId, payload, options }),
149
- ),
215
+ invoke: <T = any>(capabilityId: string, payload: any, options?: IntelligenceInvokeOptions) =>
216
+ withLoadingState(() => intelligenceSdk.invoke<T>(capabilityId, payload, options)),
150
217
 
151
- // Provider testing
152
- testProvider: (config: AiProviderConfig) =>
218
+ testProvider: (config: IntelligenceProviderConfig) =>
153
219
  withLoadingState(() =>
154
- sendChannelRequest<{
220
+ intelligenceSdk.testProvider(config) as Promise<{
155
221
  success: boolean
156
222
  message: string
157
223
  latency?: number
158
224
  timestamp: number
159
- }>('intelligence:test-provider', { provider: config }),
225
+ }>,
160
226
  ),
161
227
 
162
- // Capability testing
163
228
  testCapability: (params: { capabilityId: string, providerId?: string, userInput?: string, source?: any }) =>
164
229
  withLoadingState(() =>
165
- sendChannelRequest<{
230
+ intelligenceSdk.testCapability(params) as Promise<{
166
231
  ok: boolean
167
232
  result: any
168
- }>('intelligence:test-capability', params),
233
+ }>,
169
234
  ),
170
235
 
171
- // Get capability test metadata
172
236
  getCapabilityTestMeta: (params: { capabilityId: string }) =>
173
- sendChannelRequest<{
237
+ intelligenceSdk.getCapabilityTestMeta(params) as Promise<{
174
238
  requiresUserInput: boolean
175
239
  inputHint: string
176
- }>('intelligence:get-capability-test-meta', params),
240
+ }>,
177
241
 
178
- // Convenient text methods
179
242
  text: {
180
- chat: (payload: AiChatPayload, options?: AiInvokeOptions) =>
181
- withLoadingState(() =>
182
- sendChannelRequest<AiInvokeResult<string>>('intelligence:invoke', {
183
- capabilityId: 'text.chat',
184
- payload,
185
- options,
186
- }),
187
- ),
188
-
189
- translate: (payload: { text: string, sourceLang?: string, targetLang: string }, options?: AiInvokeOptions) =>
190
- withLoadingState(() =>
191
- sendChannelRequest<AiInvokeResult<string>>('intelligence:invoke', {
192
- capabilityId: 'text.translate',
193
- payload,
194
- options,
195
- }),
196
- ),
197
-
198
- summarize: (payload: { text: string, maxLength?: number, style?: 'concise' | 'detailed' | 'bullet-points' }, options?: AiInvokeOptions) =>
199
- withLoadingState(() =>
200
- sendChannelRequest<AiInvokeResult<string>>('intelligence:invoke', {
201
- capabilityId: 'text.summarize',
202
- payload,
203
- options,
204
- }),
205
- ),
243
+ chat: (payload: IntelligenceChatPayload, options?: IntelligenceInvokeOptions) =>
244
+ invokeCapability<string>('text.chat', payload, options),
245
+
246
+ chatLangChain: params =>
247
+ withLoadingState(() => intelligenceSdk.chatLangChain(params)),
248
+
249
+ translate: (payload: IntelligenceTranslatePayload, options?: IntelligenceInvokeOptions) =>
250
+ invokeCapability<string>('text.translate', payload, options),
251
+
252
+ summarize: (payload: IntelligenceSummarizePayload, options?: IntelligenceInvokeOptions) =>
253
+ invokeCapability<string>('text.summarize', payload, options),
254
+
255
+ rewrite: (payload: IntelligenceRewritePayload, options?: IntelligenceInvokeOptions) =>
256
+ invokeCapability<string>('text.rewrite', payload, options),
257
+
258
+ grammarCheck: (payload: IntelligenceGrammarCheckPayload, options?: IntelligenceInvokeOptions) =>
259
+ invokeCapability<IntelligenceGrammarCheckResult>('text.grammar', payload, options),
206
260
  },
207
261
 
208
- // Convenient embedding methods
209
262
  embedding: {
210
- generate: (payload: AiEmbeddingPayload, options?: AiInvokeOptions) =>
211
- withLoadingState(() =>
212
- sendChannelRequest<AiInvokeResult<number[]>>('intelligence:invoke', {
213
- capabilityId: 'embedding.generate',
214
- payload,
215
- options,
216
- }),
217
- ),
263
+ generate: (payload: IntelligenceEmbeddingPayload, options?: IntelligenceInvokeOptions) =>
264
+ invokeCapability<number[]>('embedding.generate', payload, options),
265
+ },
266
+
267
+ code: {
268
+ generate: (payload: IntelligenceCodeGeneratePayload, options?: IntelligenceInvokeOptions) =>
269
+ invokeCapability<IntelligenceCodeGenerateResult>('code.generate', payload, options),
270
+
271
+ explain: (payload: IntelligenceCodeExplainPayload, options?: IntelligenceInvokeOptions) =>
272
+ invokeCapability<IntelligenceCodeExplainResult>('code.explain', payload, options),
273
+
274
+ review: (payload: IntelligenceCodeReviewPayload, options?: IntelligenceInvokeOptions) =>
275
+ invokeCapability<IntelligenceCodeReviewResult>('code.review', payload, options),
276
+
277
+ refactor: (payload: IntelligenceCodeRefactorPayload, options?: IntelligenceInvokeOptions) =>
278
+ invokeCapability<IntelligenceCodeRefactorResult>('code.refactor', payload, options),
279
+
280
+ debug: (payload: IntelligenceCodeDebugPayload, options?: IntelligenceInvokeOptions) =>
281
+ invokeCapability<IntelligenceCodeDebugResult>('code.debug', payload, options),
282
+ },
283
+
284
+ analysis: {
285
+ detectIntent: (payload: IntelligenceIntentDetectPayload, options?: IntelligenceInvokeOptions) =>
286
+ invokeCapability<IntelligenceIntentDetectResult>('intent.detect', payload, options),
287
+
288
+ analyzeSentiment: (payload: IntelligenceSentimentAnalyzePayload, options?: IntelligenceInvokeOptions) =>
289
+ invokeCapability<IntelligenceSentimentAnalyzeResult>('sentiment.analyze', payload, options),
290
+
291
+ extractContent: (payload: IntelligenceContentExtractPayload, options?: IntelligenceInvokeOptions) =>
292
+ invokeCapability<IntelligenceContentExtractResult>('content.extract', payload, options),
293
+
294
+ extractKeywords: (payload: IntelligenceKeywordsExtractPayload, options?: IntelligenceInvokeOptions) =>
295
+ invokeCapability<IntelligenceKeywordsExtractResult>('keywords.extract', payload, options),
296
+
297
+ classify: (payload: IntelligenceClassificationPayload, options?: IntelligenceInvokeOptions) =>
298
+ invokeCapability<IntelligenceClassificationResult>('text.classify', payload, options),
218
299
  },
219
300
 
220
- // Convenient vision methods
221
301
  vision: {
222
- ocr: (payload: AiVisionOcrPayload, options?: AiInvokeOptions) =>
223
- withLoadingState(() =>
224
- sendChannelRequest<AiInvokeResult<AiVisionOcrResult>>('intelligence:invoke', {
225
- capabilityId: 'vision.ocr',
226
- payload,
227
- options,
228
- }),
229
- ),
302
+ ocr: (payload: IntelligenceVisionOcrPayload, options?: IntelligenceInvokeOptions) =>
303
+ invokeCapability<IntelligenceVisionOcrResult>('vision.ocr', payload, options),
304
+
305
+ caption: (payload: IntelligenceImageCaptionPayload, options?: IntelligenceInvokeOptions) =>
306
+ invokeCapability<IntelligenceImageCaptionResult>('image.caption', payload, options),
307
+
308
+ analyze: (payload: IntelligenceImageAnalyzePayload, options?: IntelligenceInvokeOptions) =>
309
+ invokeCapability<IntelligenceImageAnalyzeResult>('image.analyze', payload, options),
310
+
311
+ generate: (payload: IntelligenceImageGeneratePayload, options?: IntelligenceInvokeOptions) =>
312
+ invokeCapability<IntelligenceImageGenerateResult>('image.generate', payload, options),
313
+ },
314
+
315
+ rag: {
316
+ query: (payload: IntelligenceRAGQueryPayload, options?: IntelligenceInvokeOptions) =>
317
+ invokeCapability<IntelligenceRAGQueryResult>('rag.query', payload, options),
318
+
319
+ semanticSearch: (payload: IntelligenceSemanticSearchPayload, options?: IntelligenceInvokeOptions) =>
320
+ invokeCapability<IntelligenceSemanticSearchResult>('search.semantic', payload, options),
321
+
322
+ rerank: (payload: IntelligenceRerankPayload, options?: IntelligenceInvokeOptions) =>
323
+ invokeCapability<IntelligenceRerankResult>('search.rerank', payload, options),
324
+ },
325
+
326
+ agent: {
327
+ run: (payload: IntelligenceAgentPayload, options?: IntelligenceInvokeOptions) =>
328
+ invokeCapability<IntelligenceAgentResult>('agent.run', payload, options),
230
329
  },
231
330
 
232
- // Reactive state
233
331
  isLoading,
234
332
  lastError,
235
333
  }
@@ -0,0 +1,16 @@
1
+ import { onUnmounted } from 'vue'
2
+ import { useTuffTransport } from '../../transport'
3
+ import { createDisposableBag } from '../../transport/sdk'
4
+ import { createMarketSdk } from '../../transport/sdk/domains/market'
5
+
6
+ export function useMarketSdk() {
7
+ const transport = useTuffTransport()
8
+ return createMarketSdk(transport)
9
+ }
10
+
11
+ export function useMarketSdkScope() {
12
+ const sdk = useMarketSdk()
13
+ const disposables = createDisposableBag()
14
+ onUnmounted(() => disposables.dispose())
15
+ return { sdk, disposables }
16
+ }
@@ -0,0 +1,7 @@
1
+ import { createNotificationSdk } from '../../transport/sdk/domains/notification'
2
+ import { useTuffTransport } from '../../transport/sdk/index'
3
+
4
+ export function useNotificationSdk() {
5
+ const transport = useTuffTransport()
6
+ return createNotificationSdk(transport)
7
+ }
@@ -0,0 +1,7 @@
1
+ import { useTuffTransport } from '../../transport'
2
+ import { createPermissionSdk } from '../../transport/sdk/domains/permission'
3
+
4
+ export function usePermissionSdk() {
5
+ const transport = useTuffTransport()
6
+ return createPermissionSdk(transport)
7
+ }