@tuturuuu/internal-api 0.0.2 → 0.2.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.
- package/dist/ai-memory.d.ts +76 -0
- package/dist/ai-memory.d.ts.map +1 -0
- package/dist/ai-memory.js +59 -0
- package/dist/ai.d.ts +67 -3
- package/dist/ai.d.ts.map +1 -1
- package/dist/ai.js +121 -0
- package/dist/auth.d.ts +143 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +143 -0
- package/dist/calendar.d.ts +60 -1
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +27 -0
- package/dist/chat-conversations.d.ts +81 -0
- package/dist/chat-conversations.d.ts.map +1 -0
- package/dist/chat-conversations.js +384 -0
- package/dist/chat-internal.d.ts +11 -0
- package/dist/chat-internal.d.ts.map +1 -0
- package/dist/chat-internal.js +39 -0
- package/dist/chat-legacy.d.ts +23 -0
- package/dist/chat-legacy.d.ts.map +1 -0
- package/dist/chat-legacy.js +68 -0
- package/dist/chat-types.d.ts +262 -0
- package/dist/chat-types.d.ts.map +1 -0
- package/dist/chat-types.js +2 -0
- package/dist/chat.d.ts +3 -45
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +17 -65
- package/dist/client.d.ts +5 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +109 -8
- package/dist/education.d.ts +288 -2
- package/dist/education.d.ts.map +1 -1
- package/dist/education.js +176 -0
- package/dist/external-project-team.d.ts +51 -0
- package/dist/external-project-team.d.ts.map +1 -0
- package/dist/external-project-team.js +137 -0
- package/dist/external-projects.d.ts +89 -9
- package/dist/external-projects.d.ts.map +1 -1
- package/dist/external-projects.js +80 -31
- package/dist/finance.d.ts +491 -3
- package/dist/finance.d.ts.map +1 -1
- package/dist/finance.js +611 -1
- package/dist/hive.d.ts +739 -0
- package/dist/hive.d.ts.map +1 -0
- package/dist/hive.js +333 -0
- package/dist/index.d.ts +33 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +361 -8
- package/dist/infrastructure.d.ts +1085 -1
- package/dist/infrastructure.d.ts.map +1 -1
- package/dist/infrastructure.js +652 -0
- package/dist/inventory.d.ts +355 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +268 -0
- package/dist/mail.d.ts +125 -0
- package/dist/mail.d.ts.map +1 -1
- package/dist/mail.js +112 -1
- package/dist/meet.d.ts +54 -0
- package/dist/meet.d.ts.map +1 -0
- package/dist/meet.js +37 -0
- package/dist/mind.d.ts +55 -0
- package/dist/mind.d.ts.map +1 -0
- package/dist/mind.js +84 -0
- package/dist/posts.d.ts +33 -0
- package/dist/posts.d.ts.map +1 -1
- package/dist/posts.js +42 -0
- package/dist/promotions.d.ts +54 -0
- package/dist/promotions.d.ts.map +1 -1
- package/dist/promotions.js +52 -0
- package/dist/settings.d.ts +28 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +68 -0
- package/dist/storage.d.ts +33 -21
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +53 -32
- package/dist/tasks-scheduling.d.ts +29 -0
- package/dist/tasks-scheduling.d.ts.map +1 -1
- package/dist/tasks-scheduling.js +20 -0
- package/dist/tasks.d.ts +239 -4
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +213 -0
- package/dist/teach.d.ts +130 -0
- package/dist/teach.d.ts.map +1 -0
- package/dist/teach.js +110 -0
- package/dist/topic-announcements.d.ts +235 -0
- package/dist/topic-announcements.d.ts.map +1 -0
- package/dist/topic-announcements.js +182 -0
- package/dist/tulearn.d.ts +223 -0
- package/dist/tulearn.d.ts.map +1 -0
- package/dist/tulearn.js +97 -0
- package/dist/tutoring.d.ts +152 -0
- package/dist/tutoring.d.ts.map +1 -0
- package/dist/tutoring.js +58 -0
- package/dist/user-group-activity.d.ts +54 -0
- package/dist/user-group-activity.d.ts.map +1 -0
- package/dist/user-group-activity.js +11 -0
- package/dist/user-groups.d.ts +35 -0
- package/dist/user-groups.d.ts.map +1 -0
- package/dist/user-groups.js +84 -0
- package/dist/users.d.ts +101 -1
- package/dist/users.d.ts.map +1 -1
- package/dist/users.js +178 -0
- package/dist/workspace-config-ids.d.ts +9 -0
- package/dist/workspace-config-ids.d.ts.map +1 -0
- package/dist/workspace-config-ids.js +11 -0
- package/dist/workspace-configs.d.ts +1 -7
- package/dist/workspace-configs.d.ts.map +1 -1
- package/dist/workspace-configs.js +14 -10
- package/dist/workspace-user-audit.d.ts +1 -0
- package/dist/workspace-user-audit.d.ts.map +1 -1
- package/dist/workspaces.d.ts +57 -0
- package/dist/workspaces.d.ts.map +1 -1
- package/dist/workspaces.js +58 -1
- package/package.json +65 -7
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
export type ChatConversationType = 'ai' | 'channel' | 'direct' | 'group';
|
|
2
|
+
export type ChatMessageKind = 'assistant' | 'system' | 'user';
|
|
3
|
+
export type ChatAiCreditSource = 'personal' | 'workspace';
|
|
4
|
+
export type ChatAiThinkingMode = 'fast' | 'thinking';
|
|
5
|
+
export interface ChatUserProfile {
|
|
6
|
+
avatarUrl: string | null;
|
|
7
|
+
displayName: string;
|
|
8
|
+
handle: string | null;
|
|
9
|
+
id: string;
|
|
10
|
+
}
|
|
11
|
+
export type ChatFriendRequestStatus = 'accepted' | 'declined' | 'pending';
|
|
12
|
+
export interface ChatFriendRequest {
|
|
13
|
+
createdAt: string;
|
|
14
|
+
id: string;
|
|
15
|
+
recipient: ChatUserProfile;
|
|
16
|
+
recipientUserId: string;
|
|
17
|
+
requester: ChatUserProfile;
|
|
18
|
+
requesterUserId: string;
|
|
19
|
+
respondedAt: string | null;
|
|
20
|
+
status: ChatFriendRequestStatus;
|
|
21
|
+
updatedAt: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ChatFriendRequests {
|
|
24
|
+
accepted: ChatFriendRequest[];
|
|
25
|
+
incoming: ChatFriendRequest[];
|
|
26
|
+
outgoing: ChatFriendRequest[];
|
|
27
|
+
}
|
|
28
|
+
export interface ChatConversationMember {
|
|
29
|
+
archivedAt: string | null;
|
|
30
|
+
conversationId: string;
|
|
31
|
+
id: string;
|
|
32
|
+
joinedAt: string;
|
|
33
|
+
lastReadAt: string | null;
|
|
34
|
+
mutedAt: string | null;
|
|
35
|
+
pinnedAt: string | null;
|
|
36
|
+
role: 'admin' | 'assistant' | 'member' | 'owner';
|
|
37
|
+
user: ChatUserProfile;
|
|
38
|
+
userId: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ChatAttachment {
|
|
41
|
+
contentType: string | null;
|
|
42
|
+
conversationId: string;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
filename: string;
|
|
45
|
+
fullPath: string | null;
|
|
46
|
+
id: string;
|
|
47
|
+
messageId: string | null;
|
|
48
|
+
sizeBytes: number | null;
|
|
49
|
+
storageWsId: string | null;
|
|
50
|
+
storagePath: string;
|
|
51
|
+
uploaderId: string | null;
|
|
52
|
+
}
|
|
53
|
+
export interface ChatAttachmentDraft {
|
|
54
|
+
contentType: string | null;
|
|
55
|
+
filename: string;
|
|
56
|
+
fullPath: string | null;
|
|
57
|
+
path: string;
|
|
58
|
+
sizeBytes: number | null;
|
|
59
|
+
storageWsId?: string | null;
|
|
60
|
+
}
|
|
61
|
+
export interface ChatReactionSummary {
|
|
62
|
+
count: number;
|
|
63
|
+
emoji: string;
|
|
64
|
+
userIds: string[];
|
|
65
|
+
}
|
|
66
|
+
export interface ChatMessage {
|
|
67
|
+
attachments: ChatAttachment[];
|
|
68
|
+
content: string;
|
|
69
|
+
conversationId: string;
|
|
70
|
+
createdAt: string;
|
|
71
|
+
deletedAt: string | null;
|
|
72
|
+
editedAt: string | null;
|
|
73
|
+
id: string;
|
|
74
|
+
kind: ChatMessageKind;
|
|
75
|
+
metadata: Record<string, unknown>;
|
|
76
|
+
reactions: ChatReactionSummary[];
|
|
77
|
+
replyToMessageId: string | null;
|
|
78
|
+
sender: ChatUserProfile | null;
|
|
79
|
+
senderId: string | null;
|
|
80
|
+
updatedAt: string | null;
|
|
81
|
+
}
|
|
82
|
+
export interface ChatLinkPreview {
|
|
83
|
+
description: string | null;
|
|
84
|
+
error?: string | null;
|
|
85
|
+
imageUrl: string | null;
|
|
86
|
+
siteName: string | null;
|
|
87
|
+
title: string | null;
|
|
88
|
+
url: string;
|
|
89
|
+
}
|
|
90
|
+
export interface ChatSharedLink {
|
|
91
|
+
conversationId: string;
|
|
92
|
+
createdAt: string;
|
|
93
|
+
messageId: string;
|
|
94
|
+
sender: ChatUserProfile | null;
|
|
95
|
+
url: string;
|
|
96
|
+
}
|
|
97
|
+
export interface ChatSharedContent {
|
|
98
|
+
files: ChatAttachment[];
|
|
99
|
+
links: ChatSharedLink[];
|
|
100
|
+
photos: ChatAttachment[];
|
|
101
|
+
}
|
|
102
|
+
export interface ChatAiSettings {
|
|
103
|
+
autoReply: boolean;
|
|
104
|
+
conversationId: string;
|
|
105
|
+
creditSource: ChatAiCreditSource;
|
|
106
|
+
creditWsId: string | null;
|
|
107
|
+
enabled: boolean;
|
|
108
|
+
modelId: string | null;
|
|
109
|
+
personalWorkspaceId: string | null;
|
|
110
|
+
systemPrompt: string | null;
|
|
111
|
+
thinkingMode: ChatAiThinkingMode;
|
|
112
|
+
updatedAt: string | null;
|
|
113
|
+
}
|
|
114
|
+
export interface UpdateChatAiSettingsPayload {
|
|
115
|
+
creditSource?: ChatAiCreditSource;
|
|
116
|
+
creditWsId?: string | null;
|
|
117
|
+
modelId?: string | null;
|
|
118
|
+
systemPrompt?: string | null;
|
|
119
|
+
thinkingMode?: ChatAiThinkingMode;
|
|
120
|
+
}
|
|
121
|
+
export interface ChatAiTokenUsage {
|
|
122
|
+
cachedInputTokens: number;
|
|
123
|
+
cachedOutputTokens: number;
|
|
124
|
+
costUsd: number;
|
|
125
|
+
imageInputCount: number;
|
|
126
|
+
imageOutputCount: number;
|
|
127
|
+
inputTokens: number;
|
|
128
|
+
outputTokens: number;
|
|
129
|
+
reasoningTokens: number;
|
|
130
|
+
searchCount: number;
|
|
131
|
+
totalTokens: number;
|
|
132
|
+
}
|
|
133
|
+
export interface ChatAiContextBreakdownEntry {
|
|
134
|
+
chars: number;
|
|
135
|
+
id: string;
|
|
136
|
+
kind: ChatMessageKind;
|
|
137
|
+
label: string;
|
|
138
|
+
tokensEstimate: number;
|
|
139
|
+
}
|
|
140
|
+
export interface ChatAiMessageUsage {
|
|
141
|
+
contentPreview: string;
|
|
142
|
+
contextBreakdown: ChatAiContextBreakdownEntry[];
|
|
143
|
+
createdAt: string;
|
|
144
|
+
exact: boolean;
|
|
145
|
+
id: string;
|
|
146
|
+
model: string | null;
|
|
147
|
+
role: string;
|
|
148
|
+
usage: ChatAiTokenUsage;
|
|
149
|
+
}
|
|
150
|
+
export interface ChatAiObservability {
|
|
151
|
+
contextBreakdown: ChatAiContextBreakdownEntry[];
|
|
152
|
+
messages: ChatAiMessageUsage[];
|
|
153
|
+
totals: ChatAiTokenUsage & {
|
|
154
|
+
messageCount: number;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export interface ChatConversation {
|
|
158
|
+
aiEnabled: boolean;
|
|
159
|
+
archivedAt: string | null;
|
|
160
|
+
createdAt: string;
|
|
161
|
+
createdBy: string | null;
|
|
162
|
+
description: string | null;
|
|
163
|
+
id: string;
|
|
164
|
+
latestMessage: ChatMessage | null;
|
|
165
|
+
memberCount: number;
|
|
166
|
+
members: ChatConversationMember[];
|
|
167
|
+
metadata: Record<string, unknown>;
|
|
168
|
+
title: string | null;
|
|
169
|
+
type: ChatConversationType;
|
|
170
|
+
unreadCount: number;
|
|
171
|
+
updatedAt: string;
|
|
172
|
+
wsId: string;
|
|
173
|
+
}
|
|
174
|
+
export interface ChatConversationPage {
|
|
175
|
+
conversations: ChatConversation[];
|
|
176
|
+
nextOffset: number | null;
|
|
177
|
+
}
|
|
178
|
+
export interface CreateChatConversationPayload {
|
|
179
|
+
aiEnabled?: boolean;
|
|
180
|
+
autoReply?: boolean;
|
|
181
|
+
description?: string | null;
|
|
182
|
+
metadata?: Record<string, unknown>;
|
|
183
|
+
modelId?: string | null;
|
|
184
|
+
participantUserIds?: string[];
|
|
185
|
+
systemPrompt?: string | null;
|
|
186
|
+
title?: string | null;
|
|
187
|
+
type: ChatConversationType;
|
|
188
|
+
}
|
|
189
|
+
export interface DeleteChatConversationResult {
|
|
190
|
+
conversationId: string;
|
|
191
|
+
mode: 'archived' | 'left';
|
|
192
|
+
type: ChatConversationType;
|
|
193
|
+
}
|
|
194
|
+
export interface GenerateChatConversationTitleResult {
|
|
195
|
+
conversation: ChatConversation;
|
|
196
|
+
title: string;
|
|
197
|
+
}
|
|
198
|
+
export interface UpdateChatConversationPayload {
|
|
199
|
+
description?: string | null;
|
|
200
|
+
pinned?: boolean;
|
|
201
|
+
title?: string | null;
|
|
202
|
+
}
|
|
203
|
+
export interface SendChatMessagePayload {
|
|
204
|
+
attachments?: ChatAttachmentDraft[];
|
|
205
|
+
content: string;
|
|
206
|
+
kind?: ChatMessageKind;
|
|
207
|
+
replyToMessageId?: string | null;
|
|
208
|
+
}
|
|
209
|
+
export interface SendChatMessageResult {
|
|
210
|
+
assistantError?: string;
|
|
211
|
+
message: ChatMessage;
|
|
212
|
+
messages?: ChatMessage[];
|
|
213
|
+
}
|
|
214
|
+
export type ChatMessageStreamEvent = {
|
|
215
|
+
message: ChatMessage;
|
|
216
|
+
type: 'message';
|
|
217
|
+
} | {
|
|
218
|
+
delta: string;
|
|
219
|
+
type: 'assistant_delta';
|
|
220
|
+
} | {
|
|
221
|
+
part: Record<string, unknown>;
|
|
222
|
+
type: 'assistant_part';
|
|
223
|
+
} | {
|
|
224
|
+
messages: ChatMessage[];
|
|
225
|
+
type: 'messages';
|
|
226
|
+
} | {
|
|
227
|
+
type: 'done';
|
|
228
|
+
} | {
|
|
229
|
+
message: string;
|
|
230
|
+
type: 'error';
|
|
231
|
+
};
|
|
232
|
+
export interface SendChatMessageStreamHandlers {
|
|
233
|
+
onAssistantDelta?: (delta: string) => void;
|
|
234
|
+
onAssistantPart?: (part: Record<string, unknown>) => void;
|
|
235
|
+
onMessage?: (message: ChatMessage) => void;
|
|
236
|
+
onMessages?: (messages: ChatMessage[]) => void;
|
|
237
|
+
}
|
|
238
|
+
export interface WorkspaceChatChannel {
|
|
239
|
+
created_at: string | null;
|
|
240
|
+
created_by: string | null;
|
|
241
|
+
description?: string | null;
|
|
242
|
+
id: string;
|
|
243
|
+
is_private?: boolean | null;
|
|
244
|
+
name: string;
|
|
245
|
+
updated_at?: string | null;
|
|
246
|
+
ws_id: string;
|
|
247
|
+
}
|
|
248
|
+
export interface WorkspaceChatMessage {
|
|
249
|
+
channel_id: string;
|
|
250
|
+
content: string;
|
|
251
|
+
created_at: string;
|
|
252
|
+
deleted_at: string | null;
|
|
253
|
+
id: string;
|
|
254
|
+
updated_at: string | null;
|
|
255
|
+
user_id: string;
|
|
256
|
+
}
|
|
257
|
+
export interface WorkspaceChatParticipant {
|
|
258
|
+
channel_id: string;
|
|
259
|
+
last_read_at: string | null;
|
|
260
|
+
user_id: string;
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=chat-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-types.d.ts","sourceRoot":"","sources":["../src/chat-types.ts"],"names":[],"mappings":"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"}
|
package/dist/chat.d.ts
CHANGED
|
@@ -1,46 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
ws_id: string;
|
|
5
|
-
name: string;
|
|
6
|
-
created_at: string | null;
|
|
7
|
-
created_by: string | null;
|
|
8
|
-
updated_at?: string | null;
|
|
9
|
-
description?: string | null;
|
|
10
|
-
is_private?: boolean | null;
|
|
11
|
-
}
|
|
12
|
-
export interface WorkspaceChatMessage {
|
|
13
|
-
id: string;
|
|
14
|
-
channel_id: string;
|
|
15
|
-
user_id: string;
|
|
16
|
-
content: string;
|
|
17
|
-
created_at: string;
|
|
18
|
-
updated_at: string | null;
|
|
19
|
-
deleted_at: string | null;
|
|
20
|
-
}
|
|
21
|
-
export interface WorkspaceChatParticipant {
|
|
22
|
-
channel_id: string;
|
|
23
|
-
user_id: string;
|
|
24
|
-
last_read_at: string | null;
|
|
25
|
-
}
|
|
26
|
-
export declare function listWorkspaceChatChannels(workspaceId: string, options?: InternalApiClientOptions): Promise<WorkspaceChatChannel[]>;
|
|
27
|
-
export declare function createWorkspaceChatChannel(workspaceId: string, name: string, options?: InternalApiClientOptions): Promise<{
|
|
28
|
-
channel: WorkspaceChatChannel;
|
|
29
|
-
}>;
|
|
30
|
-
export declare function listWorkspaceChatMessages(workspaceId: string, channelId: string, options?: InternalApiClientOptions): Promise<WorkspaceChatMessage[]>;
|
|
31
|
-
export declare function createWorkspaceChatMessage(workspaceId: string, channelId: string, content: string, options?: InternalApiClientOptions): Promise<{
|
|
32
|
-
message: WorkspaceChatMessage;
|
|
33
|
-
}>;
|
|
34
|
-
export declare function listWorkspaceChatParticipants(workspaceId: string, channelId: string, options?: InternalApiClientOptions): Promise<WorkspaceChatParticipant[]>;
|
|
35
|
-
export declare function upsertWorkspaceChatParticipant(workspaceId: string, channelId: string, payload: {
|
|
36
|
-
last_read_at?: string;
|
|
37
|
-
}, options?: InternalApiClientOptions): Promise<{
|
|
38
|
-
success: true;
|
|
39
|
-
}>;
|
|
40
|
-
export declare function upsertWorkspaceChatTyping(workspaceId: string, channelId: string, options?: InternalApiClientOptions): Promise<{
|
|
41
|
-
success: true;
|
|
42
|
-
}>;
|
|
43
|
-
export declare function deleteWorkspaceChatTyping(workspaceId: string, channelId: string, options?: InternalApiClientOptions): Promise<{
|
|
44
|
-
success: true;
|
|
45
|
-
}>;
|
|
1
|
+
export * from './chat-conversations';
|
|
2
|
+
export * from './chat-legacy';
|
|
3
|
+
export * from './chat-types';
|
|
46
4
|
//# sourceMappingURL=chat.d.ts.map
|
package/dist/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
package/dist/chat.js
CHANGED
|
@@ -1,67 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports
|
|
4
|
-
exports
|
|
5
|
-
exports
|
|
6
|
-
exports.createWorkspaceChatMessage = createWorkspaceChatMessage;
|
|
7
|
-
exports.listWorkspaceChatParticipants = listWorkspaceChatParticipants;
|
|
8
|
-
exports.upsertWorkspaceChatParticipant = upsertWorkspaceChatParticipant;
|
|
9
|
-
exports.upsertWorkspaceChatTyping = upsertWorkspaceChatTyping;
|
|
10
|
-
exports.deleteWorkspaceChatTyping = deleteWorkspaceChatTyping;
|
|
11
|
-
const client_1 = require("./client");
|
|
12
|
-
async function listWorkspaceChatChannels(workspaceId, options) {
|
|
13
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
14
|
-
const payload = await client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels`, { cache: 'no-store' });
|
|
15
|
-
return payload.channels ?? [];
|
|
16
|
-
}
|
|
17
|
-
async function createWorkspaceChatChannel(workspaceId, name, options) {
|
|
18
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
19
|
-
return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels`, {
|
|
20
|
-
method: 'POST',
|
|
21
|
-
headers: { 'Content-Type': 'application/json' },
|
|
22
|
-
body: JSON.stringify({ name }),
|
|
23
|
-
cache: 'no-store',
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
async function listWorkspaceChatMessages(workspaceId, channelId, options) {
|
|
27
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
28
|
-
const payload = await client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels/${(0, client_1.encodePathSegment)(channelId)}/messages`, { cache: 'no-store' });
|
|
29
|
-
return payload.messages ?? [];
|
|
30
|
-
}
|
|
31
|
-
async function createWorkspaceChatMessage(workspaceId, channelId, content, options) {
|
|
32
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
33
|
-
return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels/${(0, client_1.encodePathSegment)(channelId)}/messages`, {
|
|
34
|
-
method: 'POST',
|
|
35
|
-
headers: { 'Content-Type': 'application/json' },
|
|
36
|
-
body: JSON.stringify({ content }),
|
|
37
|
-
cache: 'no-store',
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
async function listWorkspaceChatParticipants(workspaceId, channelId, options) {
|
|
41
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
42
|
-
const payload = await client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels/${(0, client_1.encodePathSegment)(channelId)}/participants`, { cache: 'no-store' });
|
|
43
|
-
return payload.participants ?? [];
|
|
44
|
-
}
|
|
45
|
-
async function upsertWorkspaceChatParticipant(workspaceId, channelId, payload, options) {
|
|
46
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
47
|
-
return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels/${(0, client_1.encodePathSegment)(channelId)}/participants`, {
|
|
48
|
-
method: 'POST',
|
|
49
|
-
headers: { 'Content-Type': 'application/json' },
|
|
50
|
-
body: JSON.stringify(payload),
|
|
51
|
-
cache: 'no-store',
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
async function upsertWorkspaceChatTyping(workspaceId, channelId, options) {
|
|
55
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
56
|
-
return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels/${(0, client_1.encodePathSegment)(channelId)}/typing`, {
|
|
57
|
-
method: 'POST',
|
|
58
|
-
cache: 'no-store',
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
async function deleteWorkspaceChatTyping(workspaceId, channelId, options) {
|
|
62
|
-
const client = (0, client_1.getInternalApiClient)(options);
|
|
63
|
-
return client.json(`/api/v1/workspaces/${(0, client_1.encodePathSegment)(workspaceId)}/chat/channels/${(0, client_1.encodePathSegment)(channelId)}/typing`, {
|
|
64
|
-
method: 'DELETE',
|
|
65
|
-
cache: 'no-store',
|
|
66
|
-
});
|
|
67
|
-
}
|
|
17
|
+
__exportStar(require("./chat-conversations"), exports);
|
|
18
|
+
__exportStar(require("./chat-legacy"), exports);
|
|
19
|
+
__exportStar(require("./chat-types"), exports);
|
package/dist/client.d.ts
CHANGED
|
@@ -11,6 +11,11 @@ export type InternalApiClientOptions = {
|
|
|
11
11
|
fetch?: typeof fetch;
|
|
12
12
|
};
|
|
13
13
|
type HeaderAccessor = Pick<Headers, 'get'>;
|
|
14
|
+
export declare class InternalApiError extends Error {
|
|
15
|
+
readonly status: number;
|
|
16
|
+
readonly code?: string | undefined;
|
|
17
|
+
constructor(message: string, status: number, code?: string | undefined);
|
|
18
|
+
}
|
|
14
19
|
export declare function encodePathSegment(value: string): string;
|
|
15
20
|
export declare function getConfiguredInternalApiBaseUrl(): string;
|
|
16
21
|
export declare function resolveInternalApiUrl(path: string, baseUrl?: string): string;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAI3C,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,MAAM,EAAE,MAAM;aACd,IAAI,CAAC,EAAE,MAAM;gBAF7B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,YAAA;CAKhC;AA+BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,UAE9C;AAiDD,wBAAgB,+BAA+B,WAY9C;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,UAkBnE;AAyHD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAA6B;kBAEf,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;EAyC3E;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE,wBAA6B,GACrC,wBAAwB,CA+F1B;AAED,eAAO,MAAM,iBAAiB;kBAnKL,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;CAmJlB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,wBAAwB;kBArK9C,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;EAuJ3E"}
|
package/dist/client.js
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.internalApiClient = void 0;
|
|
3
|
+
exports.internalApiClient = exports.InternalApiError = void 0;
|
|
4
4
|
exports.encodePathSegment = encodePathSegment;
|
|
5
5
|
exports.getConfiguredInternalApiBaseUrl = getConfiguredInternalApiBaseUrl;
|
|
6
6
|
exports.resolveInternalApiUrl = resolveInternalApiUrl;
|
|
7
7
|
exports.createInternalApiClient = createInternalApiClient;
|
|
8
8
|
exports.withForwardedInternalApiAuth = withForwardedInternalApiAuth;
|
|
9
9
|
exports.getInternalApiClient = getInternalApiClient;
|
|
10
|
+
const APP_SESSION_COOKIE_NAME = 'tuturuuu_app_session';
|
|
11
|
+
const SUPABASE_AUTH_COOKIE_PATTERN = /^sb-[a-z0-9-]+-auth-token(?:\.\d+)?$/i;
|
|
12
|
+
class InternalApiError extends Error {
|
|
13
|
+
status;
|
|
14
|
+
code;
|
|
15
|
+
constructor(message, status, code) {
|
|
16
|
+
super(message);
|
|
17
|
+
this.status = status;
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.name = 'InternalApiError';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.InternalApiError = InternalApiError;
|
|
10
23
|
function tryParseAbsoluteUrl(value) {
|
|
11
24
|
try {
|
|
12
25
|
return new URL(value);
|
|
@@ -79,7 +92,7 @@ function getConfiguredInternalApiBaseUrl() {
|
|
|
79
92
|
resolveConfiguredOrigin(process.env.COOLIFY_FQDN) ||
|
|
80
93
|
(isProductionDeployment()
|
|
81
94
|
? 'https://tuturuuu.com'
|
|
82
|
-
: '
|
|
95
|
+
: 'https://tuturuuu.localhost'));
|
|
83
96
|
}
|
|
84
97
|
function resolveInternalApiUrl(path, baseUrl) {
|
|
85
98
|
const normalizedPath = normalizePath(path);
|
|
@@ -109,6 +122,76 @@ function mergeHeaders(defaultHeaders, requestHeaders) {
|
|
|
109
122
|
}
|
|
110
123
|
return headers;
|
|
111
124
|
}
|
|
125
|
+
function getCookieName(cookiePart) {
|
|
126
|
+
return cookiePart.trim().split('=')[0]?.trim() ?? '';
|
|
127
|
+
}
|
|
128
|
+
function hasAppSessionCookie(cookieHeader) {
|
|
129
|
+
return cookieHeader
|
|
130
|
+
.split(';')
|
|
131
|
+
.some((part) => getCookieName(part) === APP_SESSION_COOKIE_NAME);
|
|
132
|
+
}
|
|
133
|
+
function getSupabaseAuthStorageKey(url) {
|
|
134
|
+
return `sb-${new URL(url).hostname.split('.')[0]}-auth-token`;
|
|
135
|
+
}
|
|
136
|
+
function getConfiguredSupabaseAuthStorageKeys() {
|
|
137
|
+
return [
|
|
138
|
+
process.env.NEXT_PUBLIC_SUPABASE_URL,
|
|
139
|
+
process.env.SUPABASE_SERVER_URL,
|
|
140
|
+
process.env.SUPABASE_URL,
|
|
141
|
+
]
|
|
142
|
+
.flatMap((url) => {
|
|
143
|
+
if (!url) {
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
try {
|
|
147
|
+
return [getSupabaseAuthStorageKey(url)];
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return [];
|
|
151
|
+
}
|
|
152
|
+
})
|
|
153
|
+
.filter((value, index, values) => values.indexOf(value) === index);
|
|
154
|
+
}
|
|
155
|
+
function isSupabaseAuthCookieChunkForStorageKey(cookieName, storageKey) {
|
|
156
|
+
if (cookieName === storageKey) {
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
if (!cookieName.startsWith(`${storageKey}.`)) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
return /^\d+$/u.test(cookieName.slice(storageKey.length + 1));
|
|
163
|
+
}
|
|
164
|
+
function isSharedSupabaseCookieHostname(hostname) {
|
|
165
|
+
return (hostname === 'tuturuuu.com' ||
|
|
166
|
+
hostname.endsWith('.tuturuuu.com') ||
|
|
167
|
+
hostname === 'tuturuuu.localhost' ||
|
|
168
|
+
hostname.endsWith('.tuturuuu.localhost'));
|
|
169
|
+
}
|
|
170
|
+
function shouldPreserveSupabaseAuthCookie(cookieName, targetOrigin) {
|
|
171
|
+
if (!targetOrigin) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
const targetUrl = tryParseAbsoluteUrl(targetOrigin);
|
|
175
|
+
if (!targetUrl || !isSharedSupabaseCookieHostname(targetUrl.hostname)) {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
return getConfiguredSupabaseAuthStorageKeys().some((storageKey) => isSupabaseAuthCookieChunkForStorageKey(cookieName, storageKey));
|
|
179
|
+
}
|
|
180
|
+
function sanitizeForwardedCookieHeader(cookieHeader, targetOrigin) {
|
|
181
|
+
if (!cookieHeader || !hasAppSessionCookie(cookieHeader)) {
|
|
182
|
+
return cookieHeader;
|
|
183
|
+
}
|
|
184
|
+
const cookies = cookieHeader
|
|
185
|
+
.split(';')
|
|
186
|
+
.map((part) => part.trim())
|
|
187
|
+
.filter(Boolean)
|
|
188
|
+
.filter((part) => {
|
|
189
|
+
const cookieName = getCookieName(part);
|
|
190
|
+
return (!SUPABASE_AUTH_COOKIE_PATTERN.test(cookieName) ||
|
|
191
|
+
shouldPreserveSupabaseAuthCookie(cookieName, targetOrigin));
|
|
192
|
+
});
|
|
193
|
+
return cookies.length > 0 ? cookies.join('; ') : null;
|
|
194
|
+
}
|
|
112
195
|
function createInternalApiClient(options = {}) {
|
|
113
196
|
const doFetch = (path, init = {}) => {
|
|
114
197
|
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
@@ -127,15 +210,28 @@ function createInternalApiClient(options = {}) {
|
|
|
127
210
|
const response = await doFetch(path, init);
|
|
128
211
|
if (!response.ok) {
|
|
129
212
|
const fallbackMessage = `Internal API request failed: ${response.status}`;
|
|
213
|
+
let code;
|
|
130
214
|
let message;
|
|
131
215
|
try {
|
|
132
216
|
const data = (await response.json());
|
|
133
|
-
|
|
217
|
+
code = data.code;
|
|
218
|
+
const challenge = response.headers?.get?.('x-abuse-challenge');
|
|
219
|
+
if (data.code === 'ABUSE_CHALLENGE_REQUIRED' || challenge) {
|
|
220
|
+
message = [
|
|
221
|
+
data.message ||
|
|
222
|
+
'Additional verification is required before retrying.',
|
|
223
|
+
'This API request needs a browser verification challenge that the CLI cannot complete automatically.',
|
|
224
|
+
'Open Tuturuuu in a browser to complete verification, then retry the CLI command.',
|
|
225
|
+
].join(' ');
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
message = data.message || data.error || fallbackMessage;
|
|
229
|
+
}
|
|
134
230
|
}
|
|
135
231
|
catch {
|
|
136
232
|
message = fallbackMessage;
|
|
137
233
|
}
|
|
138
|
-
throw new
|
|
234
|
+
throw new InternalApiError(message, response.status, code);
|
|
139
235
|
}
|
|
140
236
|
if (response.status === 204) {
|
|
141
237
|
return undefined;
|
|
@@ -149,11 +245,7 @@ function createInternalApiClient(options = {}) {
|
|
|
149
245
|
* from an incoming request context (for example `next/headers()` in RSC).
|
|
150
246
|
*/
|
|
151
247
|
function withForwardedInternalApiAuth(requestHeaders, options = {}) {
|
|
152
|
-
const cookieHeader = requestHeaders.get('cookie');
|
|
153
248
|
const authorizationHeader = requestHeaders.get('authorization');
|
|
154
|
-
if (!cookieHeader && !authorizationHeader) {
|
|
155
|
-
return options;
|
|
156
|
-
}
|
|
157
249
|
const allowedOrigins = new Set();
|
|
158
250
|
if (options.baseUrl) {
|
|
159
251
|
const parsed = tryParseAbsoluteUrl(normalizeBaseUrl(options.baseUrl));
|
|
@@ -165,6 +257,15 @@ function withForwardedInternalApiAuth(requestHeaders, options = {}) {
|
|
|
165
257
|
if (configuredBaseUrl) {
|
|
166
258
|
allowedOrigins.add(configuredBaseUrl.origin);
|
|
167
259
|
}
|
|
260
|
+
const targetOrigin = (options.baseUrl
|
|
261
|
+
? tryParseAbsoluteUrl(normalizeBaseUrl(options.baseUrl))?.origin
|
|
262
|
+
: null) ??
|
|
263
|
+
configuredBaseUrl?.origin ??
|
|
264
|
+
null;
|
|
265
|
+
const cookieHeader = sanitizeForwardedCookieHeader(requestHeaders.get('cookie'), targetOrigin);
|
|
266
|
+
if (!cookieHeader && !authorizationHeader) {
|
|
267
|
+
return options;
|
|
268
|
+
}
|
|
168
269
|
const runtimeLocation = typeof globalThis === 'object' && 'location' in globalThis
|
|
169
270
|
? globalThis.location
|
|
170
271
|
: undefined;
|