@tuturuuu/internal-api 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/ai-memory.d.ts +76 -0
  2. package/dist/ai-memory.d.ts.map +1 -0
  3. package/dist/ai-memory.js +59 -0
  4. package/dist/ai.d.ts +67 -3
  5. package/dist/ai.d.ts.map +1 -1
  6. package/dist/ai.js +121 -0
  7. package/dist/auth.d.ts +121 -1
  8. package/dist/auth.d.ts.map +1 -1
  9. package/dist/auth.js +111 -0
  10. package/dist/calendar.d.ts +17 -1
  11. package/dist/calendar.d.ts.map +1 -1
  12. package/dist/calendar.js +9 -0
  13. package/dist/chat-conversations.d.ts +81 -0
  14. package/dist/chat-conversations.d.ts.map +1 -0
  15. package/dist/chat-conversations.js +384 -0
  16. package/dist/chat-internal.d.ts +11 -0
  17. package/dist/chat-internal.d.ts.map +1 -0
  18. package/dist/chat-internal.js +39 -0
  19. package/dist/chat-legacy.d.ts +23 -0
  20. package/dist/chat-legacy.d.ts.map +1 -0
  21. package/dist/chat-legacy.js +68 -0
  22. package/dist/chat-types.d.ts +262 -0
  23. package/dist/chat-types.d.ts.map +1 -0
  24. package/dist/chat-types.js +2 -0
  25. package/dist/chat.d.ts +3 -45
  26. package/dist/chat.d.ts.map +1 -1
  27. package/dist/chat.js +17 -65
  28. package/dist/client.d.ts +5 -0
  29. package/dist/client.d.ts.map +1 -1
  30. package/dist/client.js +50 -5
  31. package/dist/education.d.ts +288 -2
  32. package/dist/education.d.ts.map +1 -1
  33. package/dist/education.js +176 -0
  34. package/dist/external-project-team.d.ts +51 -0
  35. package/dist/external-project-team.d.ts.map +1 -0
  36. package/dist/external-project-team.js +137 -0
  37. package/dist/external-projects.d.ts +98 -10
  38. package/dist/external-projects.d.ts.map +1 -1
  39. package/dist/external-projects.js +92 -33
  40. package/dist/finance.d.ts +491 -3
  41. package/dist/finance.d.ts.map +1 -1
  42. package/dist/finance.js +611 -1
  43. package/dist/hive.d.ts +739 -0
  44. package/dist/hive.d.ts.map +1 -0
  45. package/dist/hive.js +333 -0
  46. package/dist/index.d.ts +31 -17
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +350 -8
  49. package/dist/infrastructure.d.ts +955 -1
  50. package/dist/infrastructure.d.ts.map +1 -1
  51. package/dist/infrastructure.js +595 -0
  52. package/dist/inventory.d.ts +355 -0
  53. package/dist/inventory.d.ts.map +1 -0
  54. package/dist/inventory.js +268 -0
  55. package/dist/mail.d.ts +125 -0
  56. package/dist/mail.d.ts.map +1 -1
  57. package/dist/mail.js +112 -1
  58. package/dist/meet.d.ts +54 -0
  59. package/dist/meet.d.ts.map +1 -0
  60. package/dist/meet.js +37 -0
  61. package/dist/mind.d.ts +55 -0
  62. package/dist/mind.d.ts.map +1 -0
  63. package/dist/mind.js +84 -0
  64. package/dist/posts.d.ts +33 -0
  65. package/dist/posts.d.ts.map +1 -1
  66. package/dist/posts.js +42 -0
  67. package/dist/promotions.d.ts +54 -0
  68. package/dist/promotions.d.ts.map +1 -1
  69. package/dist/promotions.js +52 -0
  70. package/dist/settings.d.ts +28 -1
  71. package/dist/settings.d.ts.map +1 -1
  72. package/dist/settings.js +68 -0
  73. package/dist/storage.d.ts +32 -21
  74. package/dist/storage.d.ts.map +1 -1
  75. package/dist/storage.js +52 -32
  76. package/dist/tasks.d.ts +224 -4
  77. package/dist/tasks.d.ts.map +1 -1
  78. package/dist/tasks.js +204 -0
  79. package/dist/teach.d.ts +130 -0
  80. package/dist/teach.d.ts.map +1 -0
  81. package/dist/teach.js +110 -0
  82. package/dist/topic-announcements.d.ts +235 -0
  83. package/dist/topic-announcements.d.ts.map +1 -0
  84. package/dist/topic-announcements.js +182 -0
  85. package/dist/tulearn.d.ts +223 -0
  86. package/dist/tulearn.d.ts.map +1 -0
  87. package/dist/tulearn.js +97 -0
  88. package/dist/tutoring.d.ts +152 -0
  89. package/dist/tutoring.d.ts.map +1 -0
  90. package/dist/tutoring.js +58 -0
  91. package/dist/user-group-activity.d.ts +54 -0
  92. package/dist/user-group-activity.d.ts.map +1 -0
  93. package/dist/user-group-activity.js +11 -0
  94. package/dist/user-groups.d.ts +35 -0
  95. package/dist/user-groups.d.ts.map +1 -0
  96. package/dist/user-groups.js +84 -0
  97. package/dist/users.d.ts +83 -1
  98. package/dist/users.d.ts.map +1 -1
  99. package/dist/users.js +137 -0
  100. package/dist/workspace-configs.d.ts +2 -0
  101. package/dist/workspace-configs.d.ts.map +1 -1
  102. package/dist/workspace-configs.js +3 -1
  103. package/dist/workspace-user-audit.d.ts +1 -0
  104. package/dist/workspace-user-audit.d.ts.map +1 -1
  105. package/dist/workspaces.d.ts +57 -0
  106. package/dist/workspaces.d.ts.map +1 -1
  107. package/dist/workspaces.js +58 -1
  108. package/package.json +59 -6
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listWorkspaceChatChannels = listWorkspaceChatChannels;
4
+ exports.createWorkspaceChatChannel = createWorkspaceChatChannel;
5
+ exports.listWorkspaceChatMessages = listWorkspaceChatMessages;
6
+ exports.createWorkspaceChatMessage = createWorkspaceChatMessage;
7
+ exports.listWorkspaceChatParticipants = listWorkspaceChatParticipants;
8
+ exports.upsertWorkspaceChatParticipant = upsertWorkspaceChatParticipant;
9
+ exports.upsertWorkspaceChatTyping = upsertWorkspaceChatTyping;
10
+ exports.deleteWorkspaceChatTyping = deleteWorkspaceChatTyping;
11
+ const chat_internal_1 = require("./chat-internal");
12
+ const client_1 = require("./client");
13
+ async function listWorkspaceChatChannels(workspaceId, options) {
14
+ const client = (0, client_1.getInternalApiClient)(options);
15
+ const payload = await client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels`, { cache: 'no-store' });
16
+ return payload.channels ?? [];
17
+ }
18
+ async function createWorkspaceChatChannel(workspaceId, name, options) {
19
+ const client = (0, client_1.getInternalApiClient)(options);
20
+ return client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels`, {
21
+ body: JSON.stringify({ name }),
22
+ cache: 'no-store',
23
+ headers: { 'Content-Type': 'application/json' },
24
+ method: 'POST',
25
+ });
26
+ }
27
+ async function listWorkspaceChatMessages(workspaceId, channelId, options) {
28
+ const client = (0, client_1.getInternalApiClient)(options);
29
+ const payload = await client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels/${(0, client_1.encodePathSegment)(channelId)}/messages`, { cache: 'no-store' });
30
+ return payload.messages ?? [];
31
+ }
32
+ async function createWorkspaceChatMessage(workspaceId, channelId, content, options) {
33
+ const client = (0, client_1.getInternalApiClient)(options);
34
+ return client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels/${(0, client_1.encodePathSegment)(channelId)}/messages`, {
35
+ body: JSON.stringify({ content }),
36
+ cache: 'no-store',
37
+ headers: { 'Content-Type': 'application/json' },
38
+ method: 'POST',
39
+ });
40
+ }
41
+ async function listWorkspaceChatParticipants(workspaceId, channelId, options) {
42
+ const client = (0, client_1.getInternalApiClient)(options);
43
+ const payload = await client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels/${(0, client_1.encodePathSegment)(channelId)}/participants`, { cache: 'no-store' });
44
+ return payload.participants ?? [];
45
+ }
46
+ async function upsertWorkspaceChatParticipant(workspaceId, channelId, payload, options) {
47
+ const client = (0, client_1.getInternalApiClient)(options);
48
+ return client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels/${(0, client_1.encodePathSegment)(channelId)}/participants`, {
49
+ body: JSON.stringify(payload),
50
+ cache: 'no-store',
51
+ headers: { 'Content-Type': 'application/json' },
52
+ method: 'POST',
53
+ });
54
+ }
55
+ async function upsertWorkspaceChatTyping(workspaceId, channelId, options) {
56
+ const client = (0, client_1.getInternalApiClient)(options);
57
+ return client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels/${(0, client_1.encodePathSegment)(channelId)}/typing`, {
58
+ cache: 'no-store',
59
+ method: 'POST',
60
+ });
61
+ }
62
+ async function deleteWorkspaceChatTyping(workspaceId, channelId, options) {
63
+ const client = (0, client_1.getInternalApiClient)(options);
64
+ return client.json(`${(0, chat_internal_1.chatBasePath)(workspaceId)}/channels/${(0, client_1.encodePathSegment)(channelId)}/typing`, {
65
+ cache: 'no-store',
66
+ method: 'DELETE',
67
+ });
68
+ }
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/chat.d.ts CHANGED
@@ -1,46 +1,4 @@
1
- import { type InternalApiClientOptions } from './client';
2
- export interface WorkspaceChatChannel {
3
- id: string;
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
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,wBAAwB,mCAQnC;AAED,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,wBAAwB;aAGJ,oBAAoB;GASnD;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB,mCAQnC;AAED,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB;aAGJ,oBAAoB;GASnD;AAED,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB,uCAUnC;AAED,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EAClC,OAAO,CAAC,EAAE,wBAAwB;aAGJ,IAAI;GASnC;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB;aAGJ,IAAI;GAOnC;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB;aAGJ,IAAI;GAOnC"}
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.listWorkspaceChatChannels = listWorkspaceChatChannels;
4
- exports.createWorkspaceChatChannel = createWorkspaceChatChannel;
5
- exports.listWorkspaceChatMessages = listWorkspaceChatMessages;
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;
@@ -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+B3C,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;AAsBD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,wBAA6B;kBAEf,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;EA2B3E;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,cAAc,EAAE,cAAc,EAC9B,OAAO,GAAE,wBAA6B,GACrC,wBAAwB,CAqF1B;AAED,eAAO,MAAM,iBAAiB;kBA3IL,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;CA2HlB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,wBAAwB;kBA7I9C,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;EA+H3E"}
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;AA8CD,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,CAuF1B;AAED,eAAO,MAAM,iBAAiB;kBA3JL,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;CA2IlB,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,wBAAwB;kBA7J9C,MAAM,SAAQ,oBAAoB;SAgB5C,CAAC,QAAQ,MAAM,SAAQ,oBAAoB,GAAQ,OAAO,CAAC,CAAC,CAAC;EA+I3E"}
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
- : 'http://localhost:7803'));
95
+ : 'https://tuturuuu.localhost'));
83
96
  }
84
97
  function resolveInternalApiUrl(path, baseUrl) {
85
98
  const normalizedPath = normalizePath(path);
@@ -109,6 +122,25 @@ 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 sanitizeForwardedCookieHeader(cookieHeader) {
134
+ if (!cookieHeader || !hasAppSessionCookie(cookieHeader)) {
135
+ return cookieHeader;
136
+ }
137
+ const cookies = cookieHeader
138
+ .split(';')
139
+ .map((part) => part.trim())
140
+ .filter(Boolean)
141
+ .filter((part) => !SUPABASE_AUTH_COOKIE_PATTERN.test(getCookieName(part)));
142
+ return cookies.length > 0 ? cookies.join('; ') : null;
143
+ }
112
144
  function createInternalApiClient(options = {}) {
113
145
  const doFetch = (path, init = {}) => {
114
146
  const fetchImpl = options.fetch ?? globalThis.fetch;
@@ -127,15 +159,28 @@ function createInternalApiClient(options = {}) {
127
159
  const response = await doFetch(path, init);
128
160
  if (!response.ok) {
129
161
  const fallbackMessage = `Internal API request failed: ${response.status}`;
162
+ let code;
130
163
  let message;
131
164
  try {
132
165
  const data = (await response.json());
133
- message = data.message || data.error || fallbackMessage;
166
+ code = data.code;
167
+ const challenge = response.headers?.get?.('x-abuse-challenge');
168
+ if (data.code === 'ABUSE_CHALLENGE_REQUIRED' || challenge) {
169
+ message = [
170
+ data.message ||
171
+ 'Additional verification is required before retrying.',
172
+ 'This API request needs a browser verification challenge that the CLI cannot complete automatically.',
173
+ 'Open Tuturuuu in a browser to complete verification, then retry the CLI command.',
174
+ ].join(' ');
175
+ }
176
+ else {
177
+ message = data.message || data.error || fallbackMessage;
178
+ }
134
179
  }
135
180
  catch {
136
181
  message = fallbackMessage;
137
182
  }
138
- throw new Error(message);
183
+ throw new InternalApiError(message, response.status, code);
139
184
  }
140
185
  if (response.status === 204) {
141
186
  return undefined;
@@ -149,7 +194,7 @@ function createInternalApiClient(options = {}) {
149
194
  * from an incoming request context (for example `next/headers()` in RSC).
150
195
  */
151
196
  function withForwardedInternalApiAuth(requestHeaders, options = {}) {
152
- const cookieHeader = requestHeaders.get('cookie');
197
+ const cookieHeader = sanitizeForwardedCookieHeader(requestHeaders.get('cookie'));
153
198
  const authorizationHeader = requestHeaders.get('authorization');
154
199
  if (!cookieHeader && !authorizationHeader) {
155
200
  return options;