@andocorp/cli 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.
@@ -0,0 +1,207 @@
1
+ import * as Shared from "@ando/shared";
2
+
3
+ const BASE_DATE = new Date("2026-04-09T12:00:00.000Z");
4
+
5
+ export function createFile(
6
+ overrides: Partial<Shared.Contracts.FileExtended> = {}
7
+ ): Shared.Contracts.FileExtended {
8
+ return {
9
+ id: overrides.id ?? "file-1",
10
+ workspace_id: overrides.workspace_id ?? "workspace-1",
11
+ uploader_member_id: overrides.uploader_member_id ?? "member-1",
12
+ r2_key: overrides.r2_key ?? "files/file-1",
13
+ filename: overrides.filename ?? "notes.txt",
14
+ content_type: overrides.content_type ?? "text/plain",
15
+ size_bytes: overrides.size_bytes ?? 128,
16
+ width: overrides.width ?? null,
17
+ height: overrides.height ?? null,
18
+ thumbnail_r2_key: overrides.thumbnail_r2_key ?? null,
19
+ duration_seconds: overrides.duration_seconds ?? null,
20
+ extracted_text: overrides.extracted_text ?? null,
21
+ description: overrides.description ?? null,
22
+ extraction_status:
23
+ overrides.extraction_status ?? Shared.Models.FileExtractionStatus.UNINITIALIZED,
24
+ created_at: overrides.created_at ?? BASE_DATE,
25
+ updated_at: overrides.updated_at ?? BASE_DATE,
26
+ presigned_url: overrides.presigned_url ?? "https://files.example.com/file-1",
27
+ };
28
+ }
29
+
30
+ export function createMember(
31
+ overrides: Partial<Shared.Contracts.MemberExtended> = {}
32
+ ): Shared.Contracts.MemberExtended {
33
+ return {
34
+ id: overrides.id ?? "member-1",
35
+ stytch_member_id: overrides.stytch_member_id ?? "stytch-member-1",
36
+ email: overrides.email ?? "alex@ando.so",
37
+ display_name: overrides.display_name ?? "Alex",
38
+ profile_image_url: overrides.profile_image_url ?? null,
39
+ profile_image_file_id: overrides.profile_image_file_id ?? null,
40
+ avatar_asset_key: overrides.avatar_asset_key ?? null,
41
+ avatar_width: overrides.avatar_width ?? null,
42
+ avatar_height: overrides.avatar_height ?? null,
43
+ avatar_source_kind: overrides.avatar_source_kind ?? null,
44
+ pinned_membership_ids: overrides.pinned_membership_ids ?? [],
45
+ title: overrides.title ?? null,
46
+ time_zone: overrides.time_zone ?? "America/Chicago",
47
+ workspace_id: overrides.workspace_id ?? "workspace-1",
48
+ member_type: overrides.member_type ?? Shared.Models.MemberType.HUMAN,
49
+ workspace_role: overrides.workspace_role ?? Shared.Models.WorkspaceRole.MEMBER,
50
+ total_unread_count: overrides.total_unread_count ?? 0,
51
+ e164: overrides.e164 ?? null,
52
+ from_e164: overrides.from_e164 ?? null,
53
+ linq_chat_id: overrides.linq_chat_id ?? null,
54
+ archived_at: overrides.archived_at ?? null,
55
+ last_active_at: overrides.last_active_at ?? BASE_DATE,
56
+ last_caught_up_at: overrides.last_caught_up_at ?? BASE_DATE,
57
+ onboarding_completed_at: overrides.onboarding_completed_at ?? null,
58
+ summary_text: overrides.summary_text ?? null,
59
+ last_summary_at: overrides.last_summary_at ?? null,
60
+ buffer_text: overrides.buffer_text ?? null,
61
+ updated_at: overrides.updated_at ?? BASE_DATE,
62
+ created_at: overrides.created_at ?? BASE_DATE,
63
+ color_theme: overrides.color_theme ?? Shared.Models.ColorTheme.AUTO,
64
+ show_thread_trees: overrides.show_thread_trees ?? false,
65
+ profile_image_file: overrides.profile_image_file ?? null,
66
+ };
67
+ }
68
+
69
+ export function createConversation(
70
+ overrides: Partial<Shared.Contracts.ConversationExtended> = {}
71
+ ): Shared.Contracts.ConversationExtended {
72
+ return {
73
+ id: overrides.id ?? "conversation-1",
74
+ name: overrides.name ?? "engineering",
75
+ description: overrides.description ?? null,
76
+ type: overrides.type ?? Shared.Models.ConversationType.CHANNEL,
77
+ origin: overrides.origin ?? Shared.Models.ConversationOrigin.USER,
78
+ access_control_type:
79
+ overrides.access_control_type ?? Shared.Models.ConversationAccessControlType.PUBLIC,
80
+ workspace_id: overrides.workspace_id ?? "workspace-1",
81
+ human_members_count: overrides.human_members_count ?? 2,
82
+ agent_members_count: overrides.agent_members_count ?? 0,
83
+ last_message_at: overrides.last_message_at ?? BASE_DATE,
84
+ preview_member_ids: overrides.preview_member_ids ?? ["member-1"],
85
+ everyone_member_group_id: overrides.everyone_member_group_id ?? "group-1",
86
+ updated_at: overrides.updated_at ?? BASE_DATE,
87
+ created_at: overrides.created_at ?? BASE_DATE,
88
+ summary_text: overrides.summary_text ?? null,
89
+ last_summary_at: overrides.last_summary_at ?? null,
90
+ buffer_text: overrides.buffer_text ?? null,
91
+ archived_at: overrides.archived_at ?? null,
92
+ agent_responding_thread_id: overrides.agent_responding_thread_id ?? null,
93
+ creator_member_id: overrides.creator_member_id ?? "member-1",
94
+ participant_signature: overrides.participant_signature ?? null,
95
+ superseded_by_conversation_id: overrides.superseded_by_conversation_id ?? null,
96
+ preview_members: overrides.preview_members ?? [createMember()],
97
+ creator_member: overrides.creator_member ?? createMember(),
98
+ };
99
+ }
100
+
101
+ export function createMembership(
102
+ overrides: Partial<Shared.Contracts.MembershipExtended> = {}
103
+ ): Shared.Contracts.MembershipExtended {
104
+ return {
105
+ id: overrides.id ?? "membership-1",
106
+ member_id: overrides.member_id ?? "member-1",
107
+ conversation_id: overrides.conversation_id ?? "conversation-1",
108
+ unread_mentions_count: overrides.unread_mentions_count ?? 0,
109
+ last_seen_at: overrides.last_seen_at ?? BASE_DATE,
110
+ updated_at: overrides.updated_at ?? BASE_DATE,
111
+ created_at: overrides.created_at ?? BASE_DATE,
112
+ member: overrides.member ?? createMember(),
113
+ conversation: overrides.conversation ?? createConversation(),
114
+ thread_subscriptions: overrides.thread_subscriptions ?? [],
115
+ };
116
+ }
117
+
118
+ export function createWorkspace(
119
+ overrides: Partial<Shared.Contracts.WorkspaceExtended> = {}
120
+ ): Shared.Contracts.WorkspaceExtended {
121
+ return {
122
+ id: overrides.id ?? "workspace-1",
123
+ stytch_organization_id: overrides.stytch_organization_id ?? "org-1",
124
+ name: overrides.name ?? "Ando",
125
+ slug: overrides.slug ?? "ando",
126
+ image_url: overrides.image_url ?? null,
127
+ icon_image_file_id: overrides.icon_image_file_id ?? null,
128
+ description: overrides.description ?? null,
129
+ invite_link_id: overrides.invite_link_id ?? "invite-1",
130
+ created_at: overrides.created_at ?? BASE_DATE,
131
+ updated_at: overrides.updated_at ?? BASE_DATE,
132
+ workspace_invite_link: overrides.workspace_invite_link ?? {
133
+ id: "invite-1",
134
+ workspace_id: "workspace-1",
135
+ slug: "ando",
136
+ code: "ANDO1234",
137
+ created_at: BASE_DATE,
138
+ },
139
+ };
140
+ }
141
+
142
+ export function createMe(
143
+ overrides: Partial<Shared.Contracts.MeExtended> = {}
144
+ ): Shared.Contracts.MeExtended {
145
+ return {
146
+ ...createMember(overrides),
147
+ workspace: overrides.workspace ?? createWorkspace(),
148
+ };
149
+ }
150
+
151
+ export function createReaction(
152
+ overrides: Partial<Shared.Models.ConversationMessageReaction> = {}
153
+ ): Shared.Models.ConversationMessageReaction {
154
+ return {
155
+ id: overrides.id ?? "reaction-1",
156
+ member_id: overrides.member_id ?? "member-2",
157
+ conversation_id: overrides.conversation_id ?? "conversation-1",
158
+ message_id: overrides.message_id ?? "message-1",
159
+ emoji_text: overrides.emoji_text ?? "👍",
160
+ created_at: overrides.created_at ?? BASE_DATE,
161
+ };
162
+ }
163
+
164
+ export function createMessage(
165
+ overrides: Partial<Shared.Contracts.ConversationMessageExtended> = {}
166
+ ): Shared.Contracts.ConversationMessageExtended {
167
+ return {
168
+ id: overrides.id ?? "message-1",
169
+ client_request_id: overrides.client_request_id ?? null,
170
+ status: overrides.status ?? Shared.Models.ConversationMessageStatus.SENT,
171
+ type: overrides.type ?? Shared.Models.ConversationMessageType.USER,
172
+ system_event_type: overrides.system_event_type ?? null,
173
+ markdown_content: overrides.markdown_content ?? "hello",
174
+ explicit_context_message_ids: overrides.explicit_context_message_ids ?? [],
175
+ image_urls: overrides.image_urls ?? [],
176
+ file_ids: overrides.file_ids ?? [],
177
+ suppressed_link_preview_urls: overrides.suppressed_link_preview_urls ?? [],
178
+ conversation_id: overrides.conversation_id ?? "conversation-1",
179
+ workspace_id: overrides.workspace_id ?? "workspace-1",
180
+ message_reaction_ids: overrides.message_reaction_ids ?? [],
181
+ response_message_ids: overrides.response_message_ids ?? [],
182
+ initiator_id: overrides.initiator_id ?? null,
183
+ author_id: overrides.author_id ?? "member-1",
184
+ thread_root_id: overrides.thread_root_id ?? null,
185
+ agent_output_id: overrides.agent_output_id ?? null,
186
+ agent_session_id: overrides.agent_session_id ?? null,
187
+ call_id: overrides.call_id ?? null,
188
+ call_root_id: overrides.call_root_id ?? null,
189
+ replies_count: overrides.replies_count ?? 0,
190
+ replies_preview_member_ids: overrides.replies_preview_member_ids ?? [],
191
+ pinned_at: overrides.pinned_at ?? null,
192
+ last_reply_at: overrides.last_reply_at ?? null,
193
+ archived_at: overrides.archived_at ?? null,
194
+ created_at: overrides.created_at ?? BASE_DATE,
195
+ updated_at: overrides.updated_at ?? BASE_DATE,
196
+ edited_at: overrides.edited_at ?? null,
197
+ author: overrides.author ?? createMember(),
198
+ agent_output: overrides.agent_output ?? null,
199
+ llm_response_messages: overrides.llm_response_messages ?? [],
200
+ replies_preview_members: overrides.replies_preview_members ?? [],
201
+ latest_reply_at: overrides.latest_reply_at ?? undefined,
202
+ thread_root_message: overrides.thread_root_message ?? null,
203
+ message_reactions: overrides.message_reactions ?? [],
204
+ files: overrides.files ?? [],
205
+ call: overrides.call ?? null,
206
+ };
207
+ }
package/src/types.ts ADDED
@@ -0,0 +1,24 @@
1
+ import * as Shared from "@ando/shared";
2
+
3
+ export type SavedConfig = {
4
+ convexUrl: string;
5
+ sessionToken: string;
6
+ };
7
+
8
+ export type CliConfig = SavedConfig;
9
+
10
+ export type Me = Shared.Contracts.MeExtended;
11
+ export type Membership = Shared.Contracts.MembershipExtended;
12
+ export type Message = Shared.Contracts.ConversationMessageExtended;
13
+ export type DiscoveredWorkspace = Shared.Contracts.DiscoveredWorkspace;
14
+
15
+ export type ConversationPage = {
16
+ items: Message[];
17
+ cursor: string | null;
18
+ hasMore: boolean;
19
+ };
20
+
21
+ export type ParsedArgs = {
22
+ flags: Map<string, string | true>;
23
+ positionals: string[];
24
+ };