@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.
- package/.eslintcache +1 -0
- package/__tests__/cloud-sync-sdk.test.ts +442 -0
- package/__tests__/icons/icons.test.ts +84 -0
- package/__tests__/plugin-sdk-lifecycle.test.ts +130 -0
- package/__tests__/power-sdk.test.ts +143 -0
- package/__tests__/preset-export-types.test.ts +108 -0
- package/__tests__/search/fuzzy-match.test.ts +137 -0
- package/__tests__/transport/port-policy.test.ts +44 -0
- package/__tests__/transport-domain-sdks.test.ts +152 -0
- package/__tests__/types/update.test.ts +67 -0
- package/account/account-sdk.ts +915 -0
- package/account/index.ts +2 -0
- package/account/types.ts +321 -0
- package/analytics/client.ts +136 -0
- package/analytics/index.ts +2 -0
- package/analytics/types.ts +156 -0
- package/animation/auto-resize.ts +322 -0
- package/animation/window-node.ts +26 -19
- package/auth/clerk-types.ts +12 -30
- package/auth/index.ts +0 -2
- package/auth/useAuthState.ts +6 -14
- package/base/index.ts +2 -0
- package/base/log-level.ts +105 -0
- package/channel/index.ts +170 -69
- package/cloud-sync/cloud-sync-sdk.ts +450 -0
- package/cloud-sync/index.ts +1 -0
- package/common/file-scan-utils.ts +17 -9
- package/common/index.ts +4 -0
- package/common/logger/index.ts +46 -0
- package/common/logger/logger-manager.ts +303 -0
- package/common/logger/module-logger.ts +270 -0
- package/common/logger/transport-logger.ts +234 -0
- package/common/logger/types.ts +93 -0
- package/common/search/gather.ts +48 -6
- package/common/search/index.ts +8 -0
- package/common/storage/constants.ts +13 -0
- package/common/storage/entity/app-settings.ts +245 -0
- package/common/storage/entity/index.ts +3 -0
- package/common/storage/entity/layout-atom-types.ts +147 -0
- package/common/storage/entity/openers.ts +1 -0
- package/common/storage/entity/preset-cloud-api.ts +132 -0
- package/common/storage/entity/preset-export-types.ts +256 -0
- package/common/storage/entity/shortcut-settings.ts +1 -0
- package/common/storage/shortcut-storage.ts +11 -0
- package/common/utils/clone-diagnostics.ts +105 -0
- package/common/utils/file.ts +16 -8
- package/common/utils/index.ts +6 -2
- package/common/utils/payload-preview.ts +173 -0
- package/common/utils/polling.ts +167 -13
- package/common/utils/safe-path.ts +103 -0
- package/common/utils/safe-shell.ts +115 -0
- package/common/utils/task-queue.ts +4 -1
- package/core-box/builder/tuff-builder.ts +0 -1
- package/core-box/index.ts +1 -1
- package/core-box/recommendation.ts +38 -1
- package/core-box/tuff/tuff-dsl.ts +97 -0
- package/electron/download-manager.ts +10 -7
- package/electron/env-tool.ts +42 -40
- package/electron/index.ts +0 -1
- package/env/index.ts +156 -0
- package/eslint.config.js +55 -0
- package/i18n/index.ts +62 -0
- package/i18n/locales/en.json +226 -0
- package/i18n/locales/zh.json +226 -0
- package/i18n/message-keys.ts +236 -0
- package/i18n/resolver.ts +181 -0
- package/icons/index.ts +257 -0
- package/icons/svg.ts +69 -0
- package/index.ts +9 -1
- package/intelligence/client.ts +72 -42
- package/market/constants.ts +21 -3
- package/market/index.ts +1 -1
- package/market/types.ts +20 -5
- package/package.json +15 -5
- package/permission/index.ts +143 -46
- package/permission/legacy.ts +26 -0
- package/permission/registry.ts +304 -0
- package/permission/types.ts +164 -0
- package/plugin/channel.ts +68 -39
- package/plugin/index.ts +82 -8
- package/plugin/install.ts +3 -0
- package/plugin/log/types.ts +22 -5
- package/plugin/node/logger-manager.ts +11 -3
- package/plugin/node/logger.ts +24 -17
- package/plugin/preload.ts +25 -2
- package/plugin/providers/index.ts +4 -0
- package/plugin/providers/market-client.ts +218 -0
- package/plugin/providers/npm-provider.ts +228 -0
- package/plugin/providers/tpex-provider.ts +297 -0
- package/plugin/providers/tpex-types.ts +34 -0
- package/plugin/sdk/box-items.ts +14 -0
- package/plugin/sdk/box-sdk.ts +64 -0
- package/plugin/sdk/channel.ts +119 -4
- package/plugin/sdk/clipboard.ts +26 -12
- package/plugin/sdk/cloud-sync.ts +113 -0
- package/plugin/sdk/common.ts +19 -11
- package/plugin/sdk/core-box.ts +6 -15
- package/plugin/sdk/division-box.ts +160 -65
- package/plugin/sdk/examples/storage-onDidChange-example.js +5 -2
- package/plugin/sdk/feature-sdk.ts +111 -76
- package/plugin/sdk/flow.ts +146 -45
- package/plugin/sdk/hooks/bridge.ts +113 -49
- package/plugin/sdk/hooks/life-cycle.ts +35 -16
- package/plugin/sdk/index.ts +14 -3
- package/plugin/sdk/intelligence.ts +87 -0
- package/plugin/sdk/meta/README.md +179 -0
- package/plugin/sdk/meta-sdk.ts +244 -0
- package/plugin/sdk/notification.ts +9 -0
- package/plugin/sdk/performance.ts +1 -16
- package/plugin/sdk/plugin-info.ts +64 -0
- package/plugin/sdk/power.ts +155 -0
- package/plugin/sdk/recommend.ts +21 -0
- package/plugin/sdk/service/index.ts +12 -8
- package/plugin/sdk/sqlite.ts +141 -0
- package/plugin/sdk/storage.ts +2 -6
- package/plugin/sdk/system.ts +2 -9
- package/plugin/sdk/temp-files.ts +41 -0
- package/plugin/sdk/touch-sdk.ts +18 -0
- package/plugin/sdk/types.ts +44 -4
- package/plugin/sdk/window/index.ts +12 -9
- package/plugin/sdk-version.ts +231 -0
- package/preload/renderer.ts +3 -2
- package/renderer/hooks/arg-mapper.ts +34 -6
- package/renderer/hooks/index.ts +13 -0
- package/renderer/hooks/initialize.ts +2 -1
- package/renderer/hooks/use-agent-market-sdk.ts +7 -0
- package/renderer/hooks/use-agent-market.ts +106 -0
- package/renderer/hooks/use-agents-sdk.ts +7 -0
- package/renderer/hooks/use-app-sdk.ts +7 -0
- package/renderer/hooks/use-channel.ts +33 -4
- package/renderer/hooks/use-download-sdk.ts +21 -0
- package/renderer/hooks/use-intelligence-sdk.ts +7 -0
- package/renderer/hooks/use-intelligence-stats.ts +290 -0
- package/renderer/hooks/use-intelligence.ts +202 -104
- package/renderer/hooks/use-market-sdk.ts +16 -0
- package/renderer/hooks/use-notification-sdk.ts +7 -0
- package/renderer/hooks/use-permission-sdk.ts +7 -0
- package/renderer/hooks/use-permission.ts +325 -0
- package/renderer/hooks/use-platform-sdk.ts +7 -0
- package/renderer/hooks/use-plugin-sdk.ts +16 -0
- package/renderer/hooks/use-settings-sdk.ts +7 -0
- package/renderer/hooks/use-update-sdk.ts +21 -0
- package/renderer/index.ts +1 -0
- package/renderer/ref.ts +19 -10
- package/renderer/shared/components/SharedPluginDetailContent.vue +84 -0
- package/renderer/shared/components/SharedPluginDetailHeader.vue +116 -0
- package/renderer/shared/components/SharedPluginDetailMetaList.vue +39 -0
- package/renderer/shared/components/SharedPluginDetailReadme.vue +45 -0
- package/renderer/shared/components/SharedPluginDetailVersions.vue +98 -0
- package/renderer/shared/components/index.ts +5 -0
- package/renderer/shared/components/shims-vue.d.ts +5 -0
- package/renderer/shared/index.ts +2 -0
- package/renderer/shared/plugin-detail.ts +62 -0
- package/renderer/storage/app-settings.ts +3 -1
- package/renderer/storage/base-storage.ts +508 -82
- package/renderer/storage/intelligence-storage.ts +37 -46
- package/renderer/storage/openers.ts +3 -1
- package/renderer/storage/storage-subscription.ts +126 -42
- package/renderer/touch-sdk/env.ts +10 -10
- package/renderer/touch-sdk/index.ts +114 -18
- package/renderer/touch-sdk/terminal.ts +24 -13
- package/search/feature-matcher.ts +279 -0
- package/search/fuzzy-match.ts +64 -34
- package/search/index.ts +10 -0
- package/search/levenshtein-utils.ts +17 -11
- package/transport/errors.ts +310 -0
- package/transport/event/builder.ts +378 -0
- package/transport/event/index.ts +7 -0
- package/transport/event/types.ts +292 -0
- package/transport/events/index.ts +2670 -0
- package/transport/events/meta-overlay.ts +79 -0
- package/transport/events/types/agents.ts +177 -0
- package/transport/events/types/app-index.ts +9 -0
- package/transport/events/types/app.ts +475 -0
- package/transport/events/types/box-item.ts +222 -0
- package/transport/events/types/clipboard.ts +80 -0
- package/transport/events/types/core-box.ts +534 -0
- package/transport/events/types/device-idle.ts +7 -0
- package/transport/events/types/division-box.ts +99 -0
- package/transport/events/types/download.ts +115 -0
- package/transport/events/types/file-index.ts +73 -0
- package/transport/events/types/flow.ts +149 -0
- package/transport/events/types/index.ts +70 -0
- package/transport/events/types/market.ts +39 -0
- package/transport/events/types/meta-overlay.ts +184 -0
- package/transport/events/types/notification.ts +140 -0
- package/transport/events/types/permission.ts +90 -0
- package/transport/events/types/platform.ts +8 -0
- package/transport/events/types/plugin.ts +620 -0
- package/transport/events/types/sentry.ts +20 -0
- package/transport/events/types/storage.ts +208 -0
- package/transport/events/types/transport.ts +60 -0
- package/transport/events/types/tray.ts +16 -0
- package/transport/events/types/update.ts +78 -0
- package/transport/index.ts +139 -0
- package/transport/main.ts +2 -0
- package/transport/sdk/constants.ts +29 -0
- package/transport/sdk/domains/agents-market.ts +47 -0
- package/transport/sdk/domains/agents.ts +62 -0
- package/transport/sdk/domains/app.ts +48 -0
- package/transport/sdk/domains/disposable.ts +35 -0
- package/transport/sdk/domains/download.ts +139 -0
- package/transport/sdk/domains/index.ts +13 -0
- package/transport/sdk/domains/intelligence.ts +616 -0
- package/transport/sdk/domains/market.ts +35 -0
- package/transport/sdk/domains/notification.ts +62 -0
- package/transport/sdk/domains/permission.ts +85 -0
- package/transport/sdk/domains/platform.ts +19 -0
- package/transport/sdk/domains/plugin.ts +144 -0
- package/transport/sdk/domains/settings.ts +92 -0
- package/transport/sdk/domains/update.ts +64 -0
- package/transport/sdk/index.ts +60 -0
- package/transport/sdk/main-transport.ts +710 -0
- package/transport/sdk/main.ts +9 -0
- package/transport/sdk/plugin-transport.ts +654 -0
- package/transport/sdk/port-policy.ts +38 -0
- package/transport/sdk/renderer-transport.ts +1165 -0
- package/transport/types.ts +605 -0
- package/types/agent.ts +399 -0
- package/types/cloud-sync.ts +157 -0
- package/types/division-box.ts +47 -27
- package/types/download.ts +1 -0
- package/types/flow.ts +63 -12
- package/types/icon.ts +2 -1
- package/types/index.ts +5 -0
- package/types/intelligence.ts +1492 -81
- package/types/modules/base.ts +2 -0
- package/types/path-browserify.d.ts +5 -0
- package/types/platform.ts +12 -0
- package/types/startup-info.ts +32 -0
- package/types/touch-app-core.ts +8 -8
- package/types/update.ts +94 -1
- package/vitest.config.ts +25 -0
- package/auth/useClerkConfig.ts +0 -40
- package/auth/useClerkProvider.ts +0 -52
|
@@ -0,0 +1,616 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
IntelligenceInvokeOptions,
|
|
3
|
+
IntelligenceInvokeResult,
|
|
4
|
+
IntelligenceMessage,
|
|
5
|
+
IntelligenceProviderConfig,
|
|
6
|
+
TuffIntelligenceApprovalTicket,
|
|
7
|
+
TuffIntelligenceSession,
|
|
8
|
+
TuffIntelligenceStateSnapshot,
|
|
9
|
+
TuffIntelligenceTraceEvent,
|
|
10
|
+
TuffIntelligenceTurn,
|
|
11
|
+
} from '../../../types/intelligence'
|
|
12
|
+
import type { ITuffTransport } from '../../types'
|
|
13
|
+
import { defineRawEvent } from '../../event/builder'
|
|
14
|
+
|
|
15
|
+
export interface IntelligenceAuditLogEntry {
|
|
16
|
+
traceId: string
|
|
17
|
+
timestamp: number
|
|
18
|
+
capabilityId: string
|
|
19
|
+
provider: string
|
|
20
|
+
model: string
|
|
21
|
+
promptHash?: string
|
|
22
|
+
caller?: string
|
|
23
|
+
userId?: string
|
|
24
|
+
usage: {
|
|
25
|
+
promptTokens: number
|
|
26
|
+
completionTokens: number
|
|
27
|
+
totalTokens: number
|
|
28
|
+
}
|
|
29
|
+
latency: number
|
|
30
|
+
success: boolean
|
|
31
|
+
error?: string
|
|
32
|
+
estimatedCost?: number
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface IntelligenceUsageSummary {
|
|
36
|
+
period: string
|
|
37
|
+
periodType: 'minute' | 'day' | 'month'
|
|
38
|
+
requestCount: number
|
|
39
|
+
successCount: number
|
|
40
|
+
failureCount: number
|
|
41
|
+
totalTokens: number
|
|
42
|
+
promptTokens: number
|
|
43
|
+
completionTokens: number
|
|
44
|
+
totalCost: number
|
|
45
|
+
avgLatency: number
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface IntelligenceCurrentUsage {
|
|
49
|
+
requestsThisMinute: number
|
|
50
|
+
requestsToday: number
|
|
51
|
+
requestsThisMonth: number
|
|
52
|
+
tokensThisMinute: number
|
|
53
|
+
tokensToday: number
|
|
54
|
+
tokensThisMonth: number
|
|
55
|
+
costToday: number
|
|
56
|
+
costThisMonth: number
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface IntelligenceQuotaConfig {
|
|
60
|
+
callerId: string
|
|
61
|
+
callerType: 'plugin' | 'user' | 'system'
|
|
62
|
+
requestsPerMinute?: number
|
|
63
|
+
requestsPerDay?: number
|
|
64
|
+
requestsPerMonth?: number
|
|
65
|
+
tokensPerMinute?: number
|
|
66
|
+
tokensPerDay?: number
|
|
67
|
+
tokensPerMonth?: number
|
|
68
|
+
costLimitPerDay?: number
|
|
69
|
+
costLimitPerMonth?: number
|
|
70
|
+
enabled?: boolean
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface IntelligenceQuotaCheckResult {
|
|
74
|
+
allowed: boolean
|
|
75
|
+
reason?: string
|
|
76
|
+
remainingRequests?: number
|
|
77
|
+
remainingTokens?: number
|
|
78
|
+
remainingCost?: number
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface IntelligenceAuditLogQueryOptions {
|
|
82
|
+
caller?: string
|
|
83
|
+
capabilityId?: string
|
|
84
|
+
provider?: string
|
|
85
|
+
startTime?: number
|
|
86
|
+
endTime?: number
|
|
87
|
+
success?: boolean
|
|
88
|
+
limit?: number
|
|
89
|
+
offset?: number
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export interface IntelligenceChatRequest {
|
|
93
|
+
messages: IntelligenceMessage[]
|
|
94
|
+
providerId?: string
|
|
95
|
+
model?: string
|
|
96
|
+
promptTemplate?: string
|
|
97
|
+
promptVariables?: Record<string, unknown>
|
|
98
|
+
metadata?: Record<string, unknown>
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface IntelligenceSessionStartPayload {
|
|
102
|
+
sessionId?: string
|
|
103
|
+
objective?: string
|
|
104
|
+
context?: Record<string, unknown>
|
|
105
|
+
metadata?: Record<string, unknown>
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface IntelligenceSessionResumePayload {
|
|
109
|
+
sessionId: string
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface IntelligenceSessionCancelPayload {
|
|
113
|
+
sessionId: string
|
|
114
|
+
reason?: string
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface IntelligenceSessionStatePayload {
|
|
118
|
+
sessionId: string
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export interface IntelligenceSessionHeartbeatPayload {
|
|
122
|
+
sessionId: string
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface IntelligenceSessionPausePayload {
|
|
126
|
+
sessionId: string
|
|
127
|
+
reason?: 'client_disconnect' | 'heartbeat_timeout' | 'manual_pause' | 'system_preempted'
|
|
128
|
+
note?: string
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface IntelligenceOrchestratorPlanPayload {
|
|
132
|
+
sessionId: string
|
|
133
|
+
objective: string
|
|
134
|
+
context?: Record<string, unknown>
|
|
135
|
+
metadata?: Record<string, unknown>
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface IntelligenceOrchestratorExecutePayload {
|
|
139
|
+
sessionId: string
|
|
140
|
+
turnId?: string
|
|
141
|
+
maxSteps?: number
|
|
142
|
+
toolBudget?: number
|
|
143
|
+
continueOnError?: boolean
|
|
144
|
+
metadata?: Record<string, unknown>
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export interface IntelligenceOrchestratorReflectPayload {
|
|
148
|
+
sessionId: string
|
|
149
|
+
turnId: string
|
|
150
|
+
notes?: string
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface IntelligenceToolCallPayload {
|
|
154
|
+
sessionId: string
|
|
155
|
+
turnId?: string
|
|
156
|
+
actionId?: string
|
|
157
|
+
toolId: string
|
|
158
|
+
input?: unknown
|
|
159
|
+
riskLevel?: TuffIntelligenceApprovalTicket['riskLevel']
|
|
160
|
+
callId?: string
|
|
161
|
+
timeoutMs?: number
|
|
162
|
+
metadata?: Record<string, unknown>
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface IntelligenceToolResultPayload {
|
|
166
|
+
sessionId: string
|
|
167
|
+
turnId?: string
|
|
168
|
+
toolId: string
|
|
169
|
+
success: boolean
|
|
170
|
+
output?: unknown
|
|
171
|
+
error?: string
|
|
172
|
+
metadata?: Record<string, unknown>
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export interface IntelligenceToolApprovePayload {
|
|
176
|
+
ticketId: string
|
|
177
|
+
approved: boolean
|
|
178
|
+
approvedBy?: string
|
|
179
|
+
reason?: string
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface IntelligenceTraceQueryPayload {
|
|
183
|
+
sessionId: string
|
|
184
|
+
fromSeq?: number
|
|
185
|
+
limit?: number
|
|
186
|
+
level?: TuffIntelligenceTraceEvent['level']
|
|
187
|
+
type?: TuffIntelligenceTraceEvent['type']
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export interface IntelligenceTraceExportPayload {
|
|
191
|
+
sessionId: string
|
|
192
|
+
format?: 'json' | 'jsonl'
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export type IntelligenceApiResponse<T = undefined>
|
|
196
|
+
= { ok: true, result?: T }
|
|
197
|
+
| { ok: false, error: string }
|
|
198
|
+
|
|
199
|
+
export interface IntelligenceSdk {
|
|
200
|
+
invoke: <T = unknown>(
|
|
201
|
+
capabilityId: string,
|
|
202
|
+
payload: unknown,
|
|
203
|
+
options?: IntelligenceInvokeOptions,
|
|
204
|
+
) => Promise<IntelligenceInvokeResult<T>>
|
|
205
|
+
chatLangChain: (payload: IntelligenceChatRequest) => Promise<IntelligenceInvokeResult<string>>
|
|
206
|
+
testProvider: (config: IntelligenceProviderConfig) => Promise<unknown>
|
|
207
|
+
testCapability: (params: Record<string, unknown>) => Promise<unknown>
|
|
208
|
+
getCapabilityTestMeta: (payload: { capabilityId: string }) => Promise<{ requiresUserInput: boolean, inputHint: string }>
|
|
209
|
+
fetchModels: (config: IntelligenceProviderConfig) => Promise<{ success: boolean, models?: string[], message?: string }>
|
|
210
|
+
|
|
211
|
+
getAuditLogs: (options?: IntelligenceAuditLogQueryOptions) => Promise<IntelligenceAuditLogEntry[]>
|
|
212
|
+
getTodayStats: (callerId?: string) => Promise<IntelligenceUsageSummary | null>
|
|
213
|
+
getMonthStats: (callerId?: string) => Promise<IntelligenceUsageSummary | null>
|
|
214
|
+
getUsageStats: (payload: {
|
|
215
|
+
callerId: string
|
|
216
|
+
periodType: 'day' | 'month'
|
|
217
|
+
startPeriod?: string
|
|
218
|
+
endPeriod?: string
|
|
219
|
+
}) => Promise<IntelligenceUsageSummary[]>
|
|
220
|
+
|
|
221
|
+
getQuota: (payload: { callerId: string, callerType?: IntelligenceQuotaConfig['callerType'] }) => Promise<IntelligenceQuotaConfig | null>
|
|
222
|
+
setQuota: (config: IntelligenceQuotaConfig) => Promise<void>
|
|
223
|
+
deleteQuota: (payload: { callerId: string, callerType?: IntelligenceQuotaConfig['callerType'] }) => Promise<void>
|
|
224
|
+
getAllQuotas: () => Promise<IntelligenceQuotaConfig[]>
|
|
225
|
+
checkQuota: (payload: {
|
|
226
|
+
callerId: string
|
|
227
|
+
callerType?: IntelligenceQuotaConfig['callerType']
|
|
228
|
+
estimatedTokens?: number
|
|
229
|
+
}) => Promise<IntelligenceQuotaCheckResult>
|
|
230
|
+
getCurrentUsage: (payload: {
|
|
231
|
+
callerId: string
|
|
232
|
+
callerType?: IntelligenceQuotaConfig['callerType']
|
|
233
|
+
}) => Promise<IntelligenceCurrentUsage>
|
|
234
|
+
|
|
235
|
+
sessionStart: (payload?: IntelligenceSessionStartPayload) => Promise<TuffIntelligenceSession>
|
|
236
|
+
sessionHeartbeat: (payload: IntelligenceSessionHeartbeatPayload) => Promise<{ sessionId: string, heartbeatAt: string }>
|
|
237
|
+
sessionPause: (payload: IntelligenceSessionPausePayload) => Promise<unknown>
|
|
238
|
+
sessionRecoverable: () => Promise<unknown>
|
|
239
|
+
sessionResume: (payload: IntelligenceSessionResumePayload) => Promise<TuffIntelligenceSession | null>
|
|
240
|
+
sessionCancel: (payload: IntelligenceSessionCancelPayload) => Promise<TuffIntelligenceStateSnapshot | null>
|
|
241
|
+
sessionGetState: (payload: IntelligenceSessionStatePayload) => Promise<TuffIntelligenceStateSnapshot | null>
|
|
242
|
+
|
|
243
|
+
orchestratorPlan: (payload: IntelligenceOrchestratorPlanPayload) => Promise<TuffIntelligenceTurn>
|
|
244
|
+
orchestratorExecute: (payload: IntelligenceOrchestratorExecutePayload) => Promise<TuffIntelligenceTurn>
|
|
245
|
+
orchestratorReflect: (payload: IntelligenceOrchestratorReflectPayload) => Promise<TuffIntelligenceTurn>
|
|
246
|
+
|
|
247
|
+
toolCall: (payload: IntelligenceToolCallPayload) => Promise<{
|
|
248
|
+
success: boolean
|
|
249
|
+
output?: unknown
|
|
250
|
+
error?: string
|
|
251
|
+
approvalTicket?: TuffIntelligenceApprovalTicket
|
|
252
|
+
traceEvent: TuffIntelligenceTraceEvent
|
|
253
|
+
}>
|
|
254
|
+
toolResult: (payload: IntelligenceToolResultPayload) => Promise<{ accepted: boolean }>
|
|
255
|
+
toolApprove: (payload: IntelligenceToolApprovePayload) => Promise<TuffIntelligenceApprovalTicket | null>
|
|
256
|
+
|
|
257
|
+
traceStream: (payload: IntelligenceTraceQueryPayload) => Promise<TuffIntelligenceTraceEvent[]>
|
|
258
|
+
traceQuery: (payload: IntelligenceTraceQueryPayload) => Promise<TuffIntelligenceTraceEvent[]>
|
|
259
|
+
traceExport: (payload: IntelligenceTraceExportPayload) => Promise<{ format: 'json' | 'jsonl', content: string }>
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export type IntelligenceSdkTransport = Pick<ITuffTransport, 'send'>
|
|
263
|
+
|
|
264
|
+
const intelligenceInvokeEvent = defineRawEvent<
|
|
265
|
+
{
|
|
266
|
+
capabilityId: string
|
|
267
|
+
payload: unknown
|
|
268
|
+
options?: IntelligenceInvokeOptions
|
|
269
|
+
},
|
|
270
|
+
IntelligenceApiResponse<IntelligenceInvokeResult<unknown>>
|
|
271
|
+
>('intelligence:invoke')
|
|
272
|
+
|
|
273
|
+
const intelligenceChatLangChainEvent = defineRawEvent<
|
|
274
|
+
IntelligenceChatRequest,
|
|
275
|
+
IntelligenceApiResponse<IntelligenceInvokeResult<string>>
|
|
276
|
+
>('intelligence:chat-langchain')
|
|
277
|
+
|
|
278
|
+
const intelligenceTestProviderEvent = defineRawEvent<
|
|
279
|
+
{ provider: IntelligenceProviderConfig },
|
|
280
|
+
IntelligenceApiResponse<unknown>
|
|
281
|
+
>('intelligence:test-provider')
|
|
282
|
+
|
|
283
|
+
const intelligenceTestCapabilityEvent = defineRawEvent<
|
|
284
|
+
Record<string, unknown>,
|
|
285
|
+
IntelligenceApiResponse<unknown>
|
|
286
|
+
>('intelligence:test-capability')
|
|
287
|
+
|
|
288
|
+
const intelligenceGetCapabilityTestMetaEvent = defineRawEvent<
|
|
289
|
+
{ capabilityId: string },
|
|
290
|
+
IntelligenceApiResponse<{ requiresUserInput: boolean, inputHint: string }>
|
|
291
|
+
>('intelligence:get-capability-test-meta')
|
|
292
|
+
|
|
293
|
+
const intelligenceFetchModelsEvent = defineRawEvent<
|
|
294
|
+
{ provider: IntelligenceProviderConfig },
|
|
295
|
+
IntelligenceApiResponse<{ success: boolean, models?: string[], message?: string }>
|
|
296
|
+
>('intelligence:fetch-models')
|
|
297
|
+
|
|
298
|
+
const intelligenceGetAuditLogsEvent = defineRawEvent<
|
|
299
|
+
IntelligenceAuditLogQueryOptions,
|
|
300
|
+
IntelligenceApiResponse<IntelligenceAuditLogEntry[]>
|
|
301
|
+
>('intelligence:get-audit-logs')
|
|
302
|
+
|
|
303
|
+
const intelligenceGetTodayStatsEvent = defineRawEvent<
|
|
304
|
+
{ callerId?: string },
|
|
305
|
+
IntelligenceApiResponse<IntelligenceUsageSummary | null>
|
|
306
|
+
>('intelligence:get-today-stats')
|
|
307
|
+
|
|
308
|
+
const intelligenceGetMonthStatsEvent = defineRawEvent<
|
|
309
|
+
{ callerId?: string },
|
|
310
|
+
IntelligenceApiResponse<IntelligenceUsageSummary | null>
|
|
311
|
+
>('intelligence:get-month-stats')
|
|
312
|
+
|
|
313
|
+
const intelligenceGetUsageStatsEvent = defineRawEvent<
|
|
314
|
+
{
|
|
315
|
+
callerId: string
|
|
316
|
+
periodType: 'day' | 'month'
|
|
317
|
+
startPeriod?: string
|
|
318
|
+
endPeriod?: string
|
|
319
|
+
},
|
|
320
|
+
IntelligenceApiResponse<IntelligenceUsageSummary[]>
|
|
321
|
+
>('intelligence:get-usage-stats')
|
|
322
|
+
|
|
323
|
+
const intelligenceGetQuotaEvent = defineRawEvent<
|
|
324
|
+
{ callerId?: string, callerType?: IntelligenceQuotaConfig['callerType'] },
|
|
325
|
+
IntelligenceApiResponse<IntelligenceQuotaConfig | null>
|
|
326
|
+
>('intelligence:get-quota')
|
|
327
|
+
|
|
328
|
+
const intelligenceSetQuotaEvent = defineRawEvent<
|
|
329
|
+
IntelligenceQuotaConfig,
|
|
330
|
+
IntelligenceApiResponse<void>
|
|
331
|
+
>('intelligence:set-quota')
|
|
332
|
+
|
|
333
|
+
const intelligenceDeleteQuotaEvent = defineRawEvent<
|
|
334
|
+
{ callerId?: string, callerType?: IntelligenceQuotaConfig['callerType'] },
|
|
335
|
+
IntelligenceApiResponse<void>
|
|
336
|
+
>('intelligence:delete-quota')
|
|
337
|
+
|
|
338
|
+
const intelligenceGetAllQuotasEvent = defineRawEvent<
|
|
339
|
+
void,
|
|
340
|
+
IntelligenceApiResponse<IntelligenceQuotaConfig[]>
|
|
341
|
+
>('intelligence:get-all-quotas')
|
|
342
|
+
|
|
343
|
+
const intelligenceCheckQuotaEvent = defineRawEvent<
|
|
344
|
+
{
|
|
345
|
+
callerId?: string
|
|
346
|
+
callerType?: IntelligenceQuotaConfig['callerType']
|
|
347
|
+
estimatedTokens?: number
|
|
348
|
+
},
|
|
349
|
+
IntelligenceApiResponse<IntelligenceQuotaCheckResult>
|
|
350
|
+
>('intelligence:check-quota')
|
|
351
|
+
|
|
352
|
+
const intelligenceGetCurrentUsageEvent = defineRawEvent<
|
|
353
|
+
{ callerId?: string, callerType?: IntelligenceQuotaConfig['callerType'] },
|
|
354
|
+
IntelligenceApiResponse<IntelligenceCurrentUsage>
|
|
355
|
+
>('intelligence:get-current-usage')
|
|
356
|
+
|
|
357
|
+
const intelligenceSessionStartEvent = defineRawEvent<
|
|
358
|
+
IntelligenceSessionStartPayload,
|
|
359
|
+
IntelligenceApiResponse<TuffIntelligenceSession>
|
|
360
|
+
>('intelligence:session:start')
|
|
361
|
+
|
|
362
|
+
const intelligenceSessionHeartbeatEvent = defineRawEvent<
|
|
363
|
+
IntelligenceSessionHeartbeatPayload,
|
|
364
|
+
IntelligenceApiResponse<{ sessionId: string, heartbeatAt: string }>
|
|
365
|
+
>('intelligence:session:heartbeat')
|
|
366
|
+
|
|
367
|
+
const intelligenceSessionPauseEvent = defineRawEvent<
|
|
368
|
+
IntelligenceSessionPausePayload,
|
|
369
|
+
IntelligenceApiResponse<unknown>
|
|
370
|
+
>('intelligence:session:pause')
|
|
371
|
+
|
|
372
|
+
const intelligenceSessionRecoverableEvent = defineRawEvent<
|
|
373
|
+
void,
|
|
374
|
+
IntelligenceApiResponse<unknown>
|
|
375
|
+
>('intelligence:session:recoverable')
|
|
376
|
+
|
|
377
|
+
const intelligenceSessionResumeEvent = defineRawEvent<
|
|
378
|
+
IntelligenceSessionResumePayload,
|
|
379
|
+
IntelligenceApiResponse<TuffIntelligenceSession | null>
|
|
380
|
+
>('intelligence:session:resume')
|
|
381
|
+
|
|
382
|
+
const intelligenceSessionCancelEvent = defineRawEvent<
|
|
383
|
+
IntelligenceSessionCancelPayload,
|
|
384
|
+
IntelligenceApiResponse<TuffIntelligenceStateSnapshot | null>
|
|
385
|
+
>('intelligence:session:cancel')
|
|
386
|
+
|
|
387
|
+
const intelligenceSessionGetStateEvent = defineRawEvent<
|
|
388
|
+
IntelligenceSessionStatePayload,
|
|
389
|
+
IntelligenceApiResponse<TuffIntelligenceStateSnapshot | null>
|
|
390
|
+
>('intelligence:session:get-state')
|
|
391
|
+
|
|
392
|
+
const intelligenceOrchestratorPlanEvent = defineRawEvent<
|
|
393
|
+
IntelligenceOrchestratorPlanPayload,
|
|
394
|
+
IntelligenceApiResponse<TuffIntelligenceTurn>
|
|
395
|
+
>('intelligence:orchestrator:plan')
|
|
396
|
+
|
|
397
|
+
const intelligenceOrchestratorExecuteEvent = defineRawEvent<
|
|
398
|
+
IntelligenceOrchestratorExecutePayload,
|
|
399
|
+
IntelligenceApiResponse<TuffIntelligenceTurn>
|
|
400
|
+
>('intelligence:orchestrator:execute')
|
|
401
|
+
|
|
402
|
+
const intelligenceOrchestratorReflectEvent = defineRawEvent<
|
|
403
|
+
IntelligenceOrchestratorReflectPayload,
|
|
404
|
+
IntelligenceApiResponse<TuffIntelligenceTurn>
|
|
405
|
+
>('intelligence:orchestrator:reflect')
|
|
406
|
+
|
|
407
|
+
const intelligenceToolCallEvent = defineRawEvent<
|
|
408
|
+
IntelligenceToolCallPayload,
|
|
409
|
+
IntelligenceApiResponse<{
|
|
410
|
+
success: boolean
|
|
411
|
+
output?: unknown
|
|
412
|
+
error?: string
|
|
413
|
+
approvalTicket?: TuffIntelligenceApprovalTicket
|
|
414
|
+
traceEvent: TuffIntelligenceTraceEvent
|
|
415
|
+
}>
|
|
416
|
+
>('intelligence:tool:call')
|
|
417
|
+
|
|
418
|
+
const intelligenceToolResultEvent = defineRawEvent<
|
|
419
|
+
IntelligenceToolResultPayload,
|
|
420
|
+
IntelligenceApiResponse<{ accepted: boolean }>
|
|
421
|
+
>('intelligence:tool:result')
|
|
422
|
+
|
|
423
|
+
const intelligenceToolApproveEvent = defineRawEvent<
|
|
424
|
+
IntelligenceToolApprovePayload,
|
|
425
|
+
IntelligenceApiResponse<TuffIntelligenceApprovalTicket | null>
|
|
426
|
+
>('intelligence:tool:approve')
|
|
427
|
+
|
|
428
|
+
const intelligenceTraceStreamEvent = defineRawEvent<
|
|
429
|
+
IntelligenceTraceQueryPayload,
|
|
430
|
+
IntelligenceApiResponse<TuffIntelligenceTraceEvent[]>
|
|
431
|
+
>('intelligence:trace:stream')
|
|
432
|
+
|
|
433
|
+
const intelligenceTraceQueryEvent = defineRawEvent<
|
|
434
|
+
IntelligenceTraceQueryPayload,
|
|
435
|
+
IntelligenceApiResponse<TuffIntelligenceTraceEvent[]>
|
|
436
|
+
>('intelligence:trace:query')
|
|
437
|
+
|
|
438
|
+
const intelligenceTraceExportEvent = defineRawEvent<
|
|
439
|
+
IntelligenceTraceExportPayload,
|
|
440
|
+
IntelligenceApiResponse<{ format: 'json' | 'jsonl', content: string }>
|
|
441
|
+
>('intelligence:trace:export')
|
|
442
|
+
|
|
443
|
+
function assertApiResponse<T>(response: IntelligenceApiResponse<T>, fallbackMessage: string): T {
|
|
444
|
+
if (!response?.ok) {
|
|
445
|
+
throw new Error(response?.error || fallbackMessage)
|
|
446
|
+
}
|
|
447
|
+
return response.result as T
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
export function createIntelligenceSdk(transport: IntelligenceSdkTransport): IntelligenceSdk {
|
|
451
|
+
return {
|
|
452
|
+
async invoke<T = unknown>(
|
|
453
|
+
capabilityId: string,
|
|
454
|
+
payload: unknown,
|
|
455
|
+
options?: IntelligenceInvokeOptions,
|
|
456
|
+
) {
|
|
457
|
+
const response = await transport.send(intelligenceInvokeEvent, { capabilityId, payload, options })
|
|
458
|
+
return assertApiResponse(response, 'Intelligence invoke failed') as IntelligenceInvokeResult<T>
|
|
459
|
+
},
|
|
460
|
+
|
|
461
|
+
async chatLangChain(payload) {
|
|
462
|
+
const response = await transport.send(intelligenceChatLangChainEvent, payload)
|
|
463
|
+
return assertApiResponse(response, 'Intelligence chat failed')
|
|
464
|
+
},
|
|
465
|
+
|
|
466
|
+
async testProvider(config) {
|
|
467
|
+
const response = await transport.send(intelligenceTestProviderEvent, { provider: config })
|
|
468
|
+
return assertApiResponse(response, 'Intelligence provider test failed')
|
|
469
|
+
},
|
|
470
|
+
|
|
471
|
+
async testCapability(params) {
|
|
472
|
+
const response = await transport.send(intelligenceTestCapabilityEvent, params)
|
|
473
|
+
return assertApiResponse(response, 'Intelligence capability test failed')
|
|
474
|
+
},
|
|
475
|
+
|
|
476
|
+
async getCapabilityTestMeta(payload) {
|
|
477
|
+
const response = await transport.send(intelligenceGetCapabilityTestMetaEvent, payload)
|
|
478
|
+
return assertApiResponse(response, 'Failed to get capability test metadata')
|
|
479
|
+
},
|
|
480
|
+
|
|
481
|
+
async fetchModels(config) {
|
|
482
|
+
const response = await transport.send(intelligenceFetchModelsEvent, { provider: config })
|
|
483
|
+
return assertApiResponse(response, 'Failed to fetch models')
|
|
484
|
+
},
|
|
485
|
+
|
|
486
|
+
async getAuditLogs(options = {}) {
|
|
487
|
+
const response = await transport.send(intelligenceGetAuditLogsEvent, options)
|
|
488
|
+
return assertApiResponse(response, 'Failed to get audit logs')
|
|
489
|
+
},
|
|
490
|
+
|
|
491
|
+
async getTodayStats(callerId) {
|
|
492
|
+
const response = await transport.send(intelligenceGetTodayStatsEvent, { callerId })
|
|
493
|
+
return assertApiResponse(response, 'Failed to get today stats')
|
|
494
|
+
},
|
|
495
|
+
|
|
496
|
+
async getMonthStats(callerId) {
|
|
497
|
+
const response = await transport.send(intelligenceGetMonthStatsEvent, { callerId })
|
|
498
|
+
return assertApiResponse(response, 'Failed to get month stats')
|
|
499
|
+
},
|
|
500
|
+
|
|
501
|
+
async getUsageStats(payload) {
|
|
502
|
+
const response = await transport.send(intelligenceGetUsageStatsEvent, payload)
|
|
503
|
+
return assertApiResponse(response, 'Failed to get usage stats')
|
|
504
|
+
},
|
|
505
|
+
|
|
506
|
+
async getQuota(payload) {
|
|
507
|
+
const response = await transport.send(intelligenceGetQuotaEvent, payload)
|
|
508
|
+
return assertApiResponse(response, 'Failed to get quota')
|
|
509
|
+
},
|
|
510
|
+
|
|
511
|
+
async setQuota(config) {
|
|
512
|
+
const response = await transport.send(intelligenceSetQuotaEvent, config)
|
|
513
|
+
assertApiResponse(response, 'Failed to set quota')
|
|
514
|
+
},
|
|
515
|
+
|
|
516
|
+
async deleteQuota(payload) {
|
|
517
|
+
const response = await transport.send(intelligenceDeleteQuotaEvent, payload)
|
|
518
|
+
assertApiResponse(response, 'Failed to delete quota')
|
|
519
|
+
},
|
|
520
|
+
|
|
521
|
+
async getAllQuotas() {
|
|
522
|
+
const response = await transport.send(intelligenceGetAllQuotasEvent)
|
|
523
|
+
return assertApiResponse(response, 'Failed to get all quotas')
|
|
524
|
+
},
|
|
525
|
+
|
|
526
|
+
async checkQuota(payload) {
|
|
527
|
+
const response = await transport.send(intelligenceCheckQuotaEvent, payload)
|
|
528
|
+
return assertApiResponse(response, 'Failed to check quota')
|
|
529
|
+
},
|
|
530
|
+
|
|
531
|
+
async getCurrentUsage(payload) {
|
|
532
|
+
const response = await transport.send(intelligenceGetCurrentUsageEvent, payload)
|
|
533
|
+
return assertApiResponse(response, 'Failed to get current usage')
|
|
534
|
+
},
|
|
535
|
+
|
|
536
|
+
async sessionStart(payload = {}) {
|
|
537
|
+
const response = await transport.send(intelligenceSessionStartEvent, payload)
|
|
538
|
+
return assertApiResponse(response, 'Failed to start intelligence session')
|
|
539
|
+
},
|
|
540
|
+
|
|
541
|
+
async sessionHeartbeat(payload) {
|
|
542
|
+
const response = await transport.send(intelligenceSessionHeartbeatEvent, payload)
|
|
543
|
+
return assertApiResponse(response, 'Failed to send intelligence heartbeat')
|
|
544
|
+
},
|
|
545
|
+
|
|
546
|
+
async sessionPause(payload) {
|
|
547
|
+
const response = await transport.send(intelligenceSessionPauseEvent, payload)
|
|
548
|
+
return assertApiResponse(response, 'Failed to pause intelligence session')
|
|
549
|
+
},
|
|
550
|
+
|
|
551
|
+
async sessionRecoverable() {
|
|
552
|
+
const response = await transport.send(intelligenceSessionRecoverableEvent)
|
|
553
|
+
return assertApiResponse(response, 'Failed to fetch recoverable intelligence session')
|
|
554
|
+
},
|
|
555
|
+
|
|
556
|
+
async sessionResume(payload) {
|
|
557
|
+
const response = await transport.send(intelligenceSessionResumeEvent, payload)
|
|
558
|
+
return assertApiResponse(response, 'Failed to resume intelligence session')
|
|
559
|
+
},
|
|
560
|
+
|
|
561
|
+
async sessionCancel(payload) {
|
|
562
|
+
const response = await transport.send(intelligenceSessionCancelEvent, payload)
|
|
563
|
+
return assertApiResponse(response, 'Failed to cancel intelligence session')
|
|
564
|
+
},
|
|
565
|
+
|
|
566
|
+
async sessionGetState(payload) {
|
|
567
|
+
const response = await transport.send(intelligenceSessionGetStateEvent, payload)
|
|
568
|
+
return assertApiResponse(response, 'Failed to get intelligence session state')
|
|
569
|
+
},
|
|
570
|
+
|
|
571
|
+
async orchestratorPlan(payload) {
|
|
572
|
+
const response = await transport.send(intelligenceOrchestratorPlanEvent, payload)
|
|
573
|
+
return assertApiResponse(response, 'Failed to create intelligence plan')
|
|
574
|
+
},
|
|
575
|
+
|
|
576
|
+
async orchestratorExecute(payload) {
|
|
577
|
+
const response = await transport.send(intelligenceOrchestratorExecuteEvent, payload)
|
|
578
|
+
return assertApiResponse(response, 'Failed to execute intelligence plan')
|
|
579
|
+
},
|
|
580
|
+
|
|
581
|
+
async orchestratorReflect(payload) {
|
|
582
|
+
const response = await transport.send(intelligenceOrchestratorReflectEvent, payload)
|
|
583
|
+
return assertApiResponse(response, 'Failed to reflect intelligence result')
|
|
584
|
+
},
|
|
585
|
+
|
|
586
|
+
async toolCall(payload) {
|
|
587
|
+
const response = await transport.send(intelligenceToolCallEvent, payload)
|
|
588
|
+
return assertApiResponse(response, 'Failed to call intelligence tool')
|
|
589
|
+
},
|
|
590
|
+
|
|
591
|
+
async toolResult(payload) {
|
|
592
|
+
const response = await transport.send(intelligenceToolResultEvent, payload)
|
|
593
|
+
return assertApiResponse(response, 'Failed to report intelligence tool result')
|
|
594
|
+
},
|
|
595
|
+
|
|
596
|
+
async toolApprove(payload) {
|
|
597
|
+
const response = await transport.send(intelligenceToolApproveEvent, payload)
|
|
598
|
+
return assertApiResponse(response, 'Failed to approve intelligence tool')
|
|
599
|
+
},
|
|
600
|
+
|
|
601
|
+
async traceStream(payload) {
|
|
602
|
+
const response = await transport.send(intelligenceTraceStreamEvent, payload)
|
|
603
|
+
return assertApiResponse(response, 'Failed to stream intelligence trace')
|
|
604
|
+
},
|
|
605
|
+
|
|
606
|
+
async traceQuery(payload) {
|
|
607
|
+
const response = await transport.send(intelligenceTraceQueryEvent, payload)
|
|
608
|
+
return assertApiResponse(response, 'Failed to query intelligence trace')
|
|
609
|
+
},
|
|
610
|
+
|
|
611
|
+
async traceExport(payload) {
|
|
612
|
+
const response = await transport.send(intelligenceTraceExportEvent, payload)
|
|
613
|
+
return assertApiResponse(response, 'Failed to export intelligence trace')
|
|
614
|
+
},
|
|
615
|
+
}
|
|
616
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
MarketCheckUpdatesResponse,
|
|
3
|
+
MarketGetPluginRequest,
|
|
4
|
+
MarketGetPluginResponse,
|
|
5
|
+
MarketHttpRequest,
|
|
6
|
+
MarketHttpRequestResponse,
|
|
7
|
+
MarketSearchRequest,
|
|
8
|
+
MarketSearchResponse,
|
|
9
|
+
MarketUpdatesAvailablePayload,
|
|
10
|
+
} from '../../events/types'
|
|
11
|
+
import type { ITuffTransport } from '../../types'
|
|
12
|
+
import { MarketEvents } from '../../events'
|
|
13
|
+
|
|
14
|
+
export interface MarketSdk {
|
|
15
|
+
checkUpdates: () => Promise<MarketCheckUpdatesResponse>
|
|
16
|
+
search: (request: MarketSearchRequest) => Promise<MarketSearchResponse>
|
|
17
|
+
getPlugin: (request: MarketGetPluginRequest) => Promise<MarketGetPluginResponse>
|
|
18
|
+
httpRequest: <T = unknown>(request: MarketHttpRequest) => Promise<MarketHttpRequestResponse<T>>
|
|
19
|
+
featured: (payload?: unknown) => Promise<unknown>
|
|
20
|
+
npmList: () => Promise<unknown>
|
|
21
|
+
onUpdatesAvailable: (handler: (payload: MarketUpdatesAvailablePayload) => void) => () => void
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function createMarketSdk(transport: ITuffTransport): MarketSdk {
|
|
25
|
+
return {
|
|
26
|
+
checkUpdates: async () => transport.send(MarketEvents.api.checkUpdates),
|
|
27
|
+
search: async request => transport.send(MarketEvents.api.search, request),
|
|
28
|
+
getPlugin: async request => transport.send(MarketEvents.api.getPlugin, request),
|
|
29
|
+
httpRequest: async <T = unknown>(request: MarketHttpRequest) =>
|
|
30
|
+
transport.send(MarketEvents.api.httpRequest, request) as Promise<MarketHttpRequestResponse<T>>,
|
|
31
|
+
featured: async payload => transport.send(MarketEvents.api.featured, payload),
|
|
32
|
+
npmList: async () => transport.send(MarketEvents.api.npmList),
|
|
33
|
+
onUpdatesAvailable: handler => transport.on(MarketEvents.push.updatesAvailable, handler),
|
|
34
|
+
}
|
|
35
|
+
}
|