@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.
Files changed (114) 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 +143 -1
  8. package/dist/auth.d.ts.map +1 -1
  9. package/dist/auth.js +143 -0
  10. package/dist/calendar.d.ts +60 -1
  11. package/dist/calendar.d.ts.map +1 -1
  12. package/dist/calendar.js +27 -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 +109 -8
  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 +89 -9
  38. package/dist/external-projects.d.ts.map +1 -1
  39. package/dist/external-projects.js +80 -31
  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 +33 -19
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +361 -8
  49. package/dist/infrastructure.d.ts +1085 -1
  50. package/dist/infrastructure.d.ts.map +1 -1
  51. package/dist/infrastructure.js +652 -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 +33 -21
  74. package/dist/storage.d.ts.map +1 -1
  75. package/dist/storage.js +53 -32
  76. package/dist/tasks-scheduling.d.ts +29 -0
  77. package/dist/tasks-scheduling.d.ts.map +1 -1
  78. package/dist/tasks-scheduling.js +20 -0
  79. package/dist/tasks.d.ts +239 -4
  80. package/dist/tasks.d.ts.map +1 -1
  81. package/dist/tasks.js +213 -0
  82. package/dist/teach.d.ts +130 -0
  83. package/dist/teach.d.ts.map +1 -0
  84. package/dist/teach.js +110 -0
  85. package/dist/topic-announcements.d.ts +235 -0
  86. package/dist/topic-announcements.d.ts.map +1 -0
  87. package/dist/topic-announcements.js +182 -0
  88. package/dist/tulearn.d.ts +223 -0
  89. package/dist/tulearn.d.ts.map +1 -0
  90. package/dist/tulearn.js +97 -0
  91. package/dist/tutoring.d.ts +152 -0
  92. package/dist/tutoring.d.ts.map +1 -0
  93. package/dist/tutoring.js +58 -0
  94. package/dist/user-group-activity.d.ts +54 -0
  95. package/dist/user-group-activity.d.ts.map +1 -0
  96. package/dist/user-group-activity.js +11 -0
  97. package/dist/user-groups.d.ts +35 -0
  98. package/dist/user-groups.d.ts.map +1 -0
  99. package/dist/user-groups.js +84 -0
  100. package/dist/users.d.ts +101 -1
  101. package/dist/users.d.ts.map +1 -1
  102. package/dist/users.js +178 -0
  103. package/dist/workspace-config-ids.d.ts +9 -0
  104. package/dist/workspace-config-ids.d.ts.map +1 -0
  105. package/dist/workspace-config-ids.js +11 -0
  106. package/dist/workspace-configs.d.ts +1 -7
  107. package/dist/workspace-configs.d.ts.map +1 -1
  108. package/dist/workspace-configs.js +14 -10
  109. package/dist/workspace-user-audit.d.ts +1 -0
  110. package/dist/workspace-user-audit.d.ts.map +1 -1
  111. package/dist/workspaces.d.ts +57 -0
  112. package/dist/workspaces.d.ts.map +1 -1
  113. package/dist/workspaces.js +58 -1
  114. 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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"}
@@ -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;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
- : 'http://localhost:7803'));
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
- message = data.message || data.error || fallbackMessage;
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 Error(message);
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;