@sansavision/yousaid 0.0.0-stage → 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.
@@ -0,0 +1,532 @@
1
+ import { YouSaidProofClient } from "./proof.js";
2
+ import { RoomRealtimeClient, type RoomRealtimeEvent, type RoomRealtimeOptions, type RoomSnapshotFrame } from "./realtime.js";
3
+ export { YouSaidProofClient };
4
+ export { mentionAtCaret, reconnectDelay, RoomRealtimeClient } from "./realtime.js";
5
+ export type { PresenceFrame, RealtimeStatus, RoomRealtimeEvent, RoomRealtimeOptions, RoomSnapshotFrame, SocketFactory } from "./realtime.js";
6
+ export type { ProofEligibility, ProofPromptAction, ProofPromptEvent, ProofPromptPresentation, ProofSession } from "./proof.js";
7
+ export type SignalKind = "support" | "bug" | "feature" | "ux" | "review";
8
+ export declare const YOUSAID_SDK_VERSION = "0.2.0";
9
+ /**
10
+ * Consent-based diagnostic capsule (sent only when the end user opted in).
11
+ * YouSaid strips URL query strings and redacts personal data and secrets
12
+ * before storing it. Build one with `collectDiagnostics()`.
13
+ */
14
+ export type DiagnosticsCapsule = {
15
+ consent: true;
16
+ route?: string;
17
+ referrer?: string;
18
+ appVersion?: string;
19
+ sdkVersion?: string;
20
+ userAgent?: string;
21
+ platform?: string;
22
+ viewport?: string;
23
+ locale?: string;
24
+ timezone?: string;
25
+ featureFlags?: string[];
26
+ breadcrumbs?: Array<{
27
+ at?: string;
28
+ type: string;
29
+ label: string;
30
+ }>;
31
+ errors?: Array<{
32
+ message: string;
33
+ fingerprint?: string;
34
+ requestId?: string;
35
+ }>;
36
+ network?: Array<{
37
+ method: string;
38
+ url: string;
39
+ status?: number;
40
+ requestId?: string;
41
+ durationMs?: number;
42
+ }>;
43
+ correlationIds?: string[];
44
+ annotation?: string;
45
+ };
46
+ /**
47
+ * AppHelm customer context for a signal. Ids and hex hashes only, never emails
48
+ * or names. YouSaid validates it strictly and silently drops the whole object
49
+ * when any field is invalid or unknown; the signal itself is always accepted.
50
+ * A link back to AppHelm is created only when `workspaceId` matches the
51
+ * AppHelm workspace connected to your YouSaid workspace.
52
+ */
53
+ export type AppHelmSignalContext = {
54
+ /** AppHelm workspace id, `^[A-Za-z0-9_-]{1,100}$`. Required. */
55
+ workspaceId: string;
56
+ /** AppHelm product id, `^[A-Za-z0-9_-]{1,100}$`. */
57
+ productId?: string;
58
+ /** Your own user id as AppHelm knows it, `^[A-Za-z0-9._:@+-]{1,200}$`. */
59
+ externalUserId?: string;
60
+ /** Lowercase hex hash of the AppHelm distinct id, 16 to 128 characters. */
61
+ distinctHash?: string;
62
+ /** Lowercase hex hash of the AppHelm session id, 16 to 128 characters. */
63
+ sessionHash?: string;
64
+ };
65
+ export type SignalInput = {
66
+ kind?: SignalKind;
67
+ title: string;
68
+ body: string;
69
+ idempotencyKey?: string;
70
+ context?: {
71
+ route?: string;
72
+ appVersion?: string;
73
+ correlationId?: string;
74
+ /** AppHelm customer and session context; see AppHelmSignalContext. */
75
+ apphelm?: AppHelmSignalContext;
76
+ };
77
+ /** Only include when the end user explicitly agreed to share diagnostics. */
78
+ diagnostics?: DiagnosticsCapsule;
79
+ /** Up to 3 files (PNG, JPEG, WebP, GIF, PDF, text, CSV, JSON), 5 MB each. */
80
+ attachments?: File[];
81
+ /** Optional screenshot captured by the host app. */
82
+ screenshot?: File;
83
+ /** Anonymous visitor id whose earlier history should join this signed user. */
84
+ visitorId?: string;
85
+ };
86
+ export declare const SIGNAL_ATTACHMENT_LIMITS: {
87
+ readonly maxFiles: 3;
88
+ readonly maxFileBytes: number;
89
+ readonly types: readonly ["image/png", "image/jpeg", "image/webp", "image/gif", "application/pdf", "text/plain", "text/csv", "application/json"];
90
+ };
91
+ /**
92
+ * Builds a diagnostic capsule from the current page. Query strings are never
93
+ * included. Pass `consent: true` only after the user saw what will be shared.
94
+ */
95
+ export declare function collectDiagnostics(options: {
96
+ consent: true;
97
+ appVersion?: string;
98
+ featureFlags?: string[];
99
+ breadcrumbs?: DiagnosticsCapsule["breadcrumbs"];
100
+ errors?: DiagnosticsCapsule["errors"];
101
+ network?: DiagnosticsCapsule["network"];
102
+ correlationIds?: string[];
103
+ annotation?: string;
104
+ }): DiagnosticsCapsule;
105
+ /**
106
+ * Installation-scoped pseudonymous visitor id, stored in the host app's
107
+ * localStorage. Append it to hosted YouSaid links as `?visitor=` while the user
108
+ * is anonymous, then call `client.mergeAnonymousHistory()` after sign-in.
109
+ */
110
+ export declare function anonymousVisitorId(): string;
111
+ export type SignalReceipt = {
112
+ signalId: string;
113
+ threadId: string;
114
+ state: "acknowledged";
115
+ receipt: string;
116
+ inboxUrl: string;
117
+ replayed: boolean;
118
+ };
119
+ export type YouSaidClientOptions = {
120
+ /**
121
+ * Signed end-user identity token, or a function that mints one. Prefer a
122
+ * function: every state-changing request consumes the token's nonce, so a
123
+ * static token only works for one write.
124
+ */
125
+ token: string | (() => string | Promise<string>);
126
+ endpoint?: string;
127
+ fetch?: typeof globalThis.fetch;
128
+ };
129
+ /** @experimental */
130
+ export type RoomSummary = {
131
+ id: string;
132
+ template_key: "direct" | "account" | "incident" | "feature" | "topic" | "beta" | "research";
133
+ channel_kind: "outcome" | "forum" | "announcements" | "office_hours";
134
+ space_id: string | null;
135
+ title: string;
136
+ purpose: string;
137
+ outcome_definition: string;
138
+ visibility: string;
139
+ status: string;
140
+ last_event_seq: number;
141
+ updated_at: string;
142
+ last_message: string | null;
143
+ unread_count: number;
144
+ };
145
+ /** @experimental */
146
+ export type RoomMessage = {
147
+ id: string;
148
+ event_seq: number;
149
+ thread_root_id: string | null;
150
+ author_type: "human" | "agent" | "system" | "end_user";
151
+ author_id: string;
152
+ author_label: string;
153
+ body_markdown: string;
154
+ body_plain: string;
155
+ visibility_scope: "external" | "all";
156
+ agent_alias: string | null;
157
+ created_at: string;
158
+ };
159
+ /** @experimental */
160
+ export type RoomDetail = {
161
+ room: RoomSummary & {
162
+ product_name: string;
163
+ notification_profile: string;
164
+ };
165
+ messages: RoomMessage[];
166
+ canvas: {
167
+ version: number;
168
+ content: Record<string, unknown>;
169
+ updated_at: string;
170
+ } | null;
171
+ decisions: Array<Record<string, unknown>>;
172
+ promises: Array<Record<string, unknown>>;
173
+ actions: Array<Record<string, unknown>>;
174
+ approvals: Array<Record<string, unknown>>;
175
+ members: Array<Record<string, unknown>>;
176
+ canonicalAnswer: Record<string, unknown> | null;
177
+ reactions: Array<{
178
+ message_id: string;
179
+ emoji: string;
180
+ count: number;
181
+ }>;
182
+ attachments: Array<{
183
+ id: string;
184
+ message_id: string | null;
185
+ file_name: string;
186
+ content_type: string;
187
+ byte_size: number;
188
+ visibility_scope: string;
189
+ created_at: string;
190
+ }>;
191
+ polls: Array<{
192
+ id: string;
193
+ question: string;
194
+ description: string;
195
+ poll_type: "single" | "multiple" | "ranking" | "yes_no" | "open_question";
196
+ anonymous: boolean;
197
+ status: string;
198
+ options: Array<{
199
+ id: string;
200
+ label: string;
201
+ position: number;
202
+ }>;
203
+ responses: Array<Record<string, unknown>>;
204
+ }>;
205
+ solveSessions: Array<{
206
+ id: string;
207
+ title: string;
208
+ mode: "audio" | "video" | "screen_share";
209
+ state: string;
210
+ scheduled_for: string | null;
211
+ recording_enabled: number;
212
+ transcription_enabled: number;
213
+ }>;
214
+ realtime: {
215
+ token: string;
216
+ url: string;
217
+ };
218
+ };
219
+ export type InboxItem = {
220
+ id: string;
221
+ threadId: string;
222
+ subject: string;
223
+ preview: string;
224
+ createdAt: string;
225
+ readAt: string | null;
226
+ };
227
+ export type InboxPage = {
228
+ unread: number;
229
+ items: InboxItem[];
230
+ nextCursor: string | null;
231
+ };
232
+ export type InboxEvent = {
233
+ type: "ready";
234
+ unread: number;
235
+ } | {
236
+ type: "item";
237
+ item: InboxItem;
238
+ unread: number;
239
+ } | {
240
+ type: "unread";
241
+ unread: number;
242
+ readIds?: string[];
243
+ all?: boolean;
244
+ };
245
+ /**
246
+ * Incremental Server-Sent Events parser. Feed decoded text; returns complete events.
247
+ * @experimental
248
+ */
249
+ export declare function createSseParser(): (chunk: string) => Array<{
250
+ event: string;
251
+ data: string;
252
+ }>;
253
+ /** @experimental */
254
+ export type RoomCanvasView = {
255
+ roomId: string;
256
+ version: number;
257
+ updatedAt: string;
258
+ content: Record<string, unknown>;
259
+ fieldVisibility?: Record<string, "external" | "internal">;
260
+ };
261
+ /** @experimental */
262
+ export type RoomMemberView = {
263
+ principalType: string;
264
+ principalId: string | null;
265
+ role: string;
266
+ visibility: string;
267
+ notificationMode: string;
268
+ joinedAt: string;
269
+ staff: boolean;
270
+ isSelf?: boolean;
271
+ };
272
+ /** @experimental */
273
+ export type HumanHandoff = {
274
+ id: string;
275
+ status: "open" | "acknowledged" | "resolved" | "cancelled";
276
+ requestedAt: string;
277
+ respondBy: string;
278
+ acknowledged: boolean;
279
+ acknowledgedAt: string | null;
280
+ resolvedAt: string | null;
281
+ agentRepliesPaused: boolean;
282
+ message: string;
283
+ created?: boolean;
284
+ };
285
+ /** @experimental */
286
+ export type AgentRunView = {
287
+ id: string;
288
+ roomId: string;
289
+ agent: string;
290
+ status: "queued" | "running" | "approval_needed" | "completed" | "failed" | "cancelled";
291
+ riskTier: number;
292
+ startedAt: string;
293
+ completedAt: string | null;
294
+ output: {
295
+ state: string | null;
296
+ body: string | null;
297
+ sourceIds: string[];
298
+ route: string | null;
299
+ degraded: string | null;
300
+ } | null;
301
+ approval: {
302
+ id?: string;
303
+ status: string | null;
304
+ } | null;
305
+ };
306
+ /** @experimental */
307
+ export type PendingApprovalView = {
308
+ id: string;
309
+ roomId: string;
310
+ roomTitle: string;
311
+ status: string;
312
+ riskTier: number;
313
+ tool: string | null;
314
+ request: string | null;
315
+ createdAt: string;
316
+ message: string;
317
+ };
318
+ /** @experimental */
319
+ export type RoomSearchHit = {
320
+ type: "canonical" | "canvas" | "message";
321
+ id: string;
322
+ roomId: string;
323
+ roomTitle: string;
324
+ excerpt: string;
325
+ updatedAt: string;
326
+ score: number;
327
+ matchedBy: "fts" | "semantic";
328
+ status?: string;
329
+ };
330
+ /** @experimental */
331
+ export type RoomEventsPage = {
332
+ roomId: string;
333
+ afterSequence: number;
334
+ snapshot: RoomSnapshotFrame | null;
335
+ events: RoomRealtimeEvent[];
336
+ nextSequence: number;
337
+ latestSequence?: number;
338
+ hasMore?: boolean;
339
+ };
340
+ /** @experimental */
341
+ export type RoomCreateInput = {
342
+ template?: "direct" | "feature" | "topic" | "office_hours";
343
+ title: string;
344
+ purpose?: string;
345
+ outcome?: string;
346
+ idempotencyKey?: string;
347
+ };
348
+ /**
349
+ * A failed YouSaid API call. `code` is the typed error code when the endpoint returns one.
350
+ * @experimental
351
+ */
352
+ export declare class YouSaidApiError extends Error {
353
+ readonly status: number;
354
+ readonly code: string;
355
+ constructor(message: string, status: number, code?: string);
356
+ }
357
+ export declare class YouSaidClient {
358
+ #private;
359
+ constructor(options: YouSaidClientOptions);
360
+ sendSignal(input: SignalInput): Promise<SignalReceipt>;
361
+ /** Install check: verifies the signed user and records SDK health for the onboarding "verify install" step. */
362
+ verifyInstallation(): Promise<{
363
+ verified: true;
364
+ productId: string;
365
+ endUserId: string;
366
+ verifiedAt: string;
367
+ }>;
368
+ /** Links this browser's anonymous history (hosted forms, surveys) to the signed user. */
369
+ mergeAnonymousHistory(visitorId?: string): Promise<{
370
+ merged: Array<{
371
+ mergeId: string;
372
+ anonymousId: string;
373
+ moved: Record<string, number>;
374
+ }>;
375
+ skipped: Array<{
376
+ anonymousId: string;
377
+ reason: string;
378
+ }>;
379
+ }>;
380
+ /** End-user confirmation after a release: did it resolve their problem? */
381
+ confirmRelease(releaseId: string, outcome: "resolved" | "still_broken", note?: string): Promise<{
382
+ releaseId: string;
383
+ confirmation: string;
384
+ followUpSignalId: string | null;
385
+ }>;
386
+ /** @experimental */
387
+ listRooms(): Promise<RoomSummary[]>;
388
+ /** @experimental */
389
+ createRoom(input: RoomCreateInput): Promise<{
390
+ id: string;
391
+ status: string;
392
+ replayed: boolean;
393
+ createdAt?: string;
394
+ }>;
395
+ /** @experimental */
396
+ getRoom(roomId: string): Promise<RoomDetail>;
397
+ /** @experimental */
398
+ postRoomMessage(roomId: string, body: string, options?: {
399
+ threadRootId?: string | null;
400
+ idempotencyKey?: string;
401
+ }): Promise<{
402
+ id: string;
403
+ sequence: number;
404
+ replayed: boolean;
405
+ agent?: unknown;
406
+ }>;
407
+ /** @experimental */
408
+ editRoomMessage(roomId: string, messageId: string, body: string): Promise<{
409
+ id: string;
410
+ editedAt: string;
411
+ sequence: number;
412
+ }>;
413
+ /** @experimental */
414
+ deleteRoomMessage(roomId: string, messageId: string): Promise<void>;
415
+ /** @experimental */
416
+ uploadRoomAttachment(roomId: string, file: File): Promise<{
417
+ id: string;
418
+ fileName: string;
419
+ downloadUrl: string;
420
+ }>;
421
+ /** @experimental */
422
+ downloadRoomAttachment(roomId: string, attachmentId: string): Promise<Blob>;
423
+ /** @experimental */
424
+ reactToRoomMessage(roomId: string, messageId: string, emoji: "👍" | "❤️" | "🎯" | "👀" | "✅", active?: boolean): Promise<void>;
425
+ /** @experimental */
426
+ updateRoomNotifications(roomId: string, notificationMode: "immediate" | "digest" | "lifecycle_only" | "muted", timezone?: string): Promise<void>;
427
+ /**
428
+ * Catch up by sequence over HTTP. When far behind, `snapshot` carries the collapsed state to rebuild from.
429
+ * @experimental
430
+ */
431
+ roomEvents(roomId: string, afterSequence?: number, limit?: number): Promise<RoomEventsPage>;
432
+ /**
433
+ * A realtime connection that reconnects with backoff and catches up by sequence. Call start() to connect.
434
+ * @experimental
435
+ */
436
+ realtime(roomId: string, options?: Omit<RoomRealtimeOptions, "roomId" | "connect"> & {
437
+ connect?: RoomRealtimeOptions["connect"];
438
+ }): RoomRealtimeClient;
439
+ /** @experimental */
440
+ getRoomCanvas(roomId: string): Promise<RoomCanvasView>;
441
+ /** @experimental */
442
+ listRoomMembers(roomId: string): Promise<{
443
+ members: RoomMemberView[];
444
+ memberCount: number;
445
+ }>;
446
+ /**
447
+ * "Talk to a person": acknowledged immediately, pauses agent replies to you, and notifies the team.
448
+ * @experimental
449
+ */
450
+ requestHuman(roomId: string, reason?: string, idempotencyKey?: string): Promise<HumanHandoff>;
451
+ /** @experimental */
452
+ getHumanHandoff(roomId: string): Promise<HumanHandoff | null>;
453
+ /** @experimental */
454
+ withdrawHumanHandoff(roomId: string): Promise<HumanHandoff>;
455
+ /** @experimental */
456
+ invokeAgent(roomId: string, alias: "support" | "product" | "incident", request: string, idempotencyKey?: string): Promise<{
457
+ runId: string;
458
+ state: string;
459
+ body: string;
460
+ sourceIds: string[];
461
+ approvalId: string | null;
462
+ handoffId: string | null;
463
+ }>;
464
+ /** @experimental */
465
+ getAgentRun(runId: string): Promise<AgentRunView>;
466
+ /** @experimental */
467
+ cancelAgentRun(runId: string): Promise<AgentRunView>;
468
+ /** @experimental */
469
+ listPendingApprovals(roomId?: string): Promise<PendingApprovalView[]>;
470
+ /** @experimental */
471
+ searchRooms(query: string, options?: {
472
+ roomId?: string;
473
+ types?: Array<RoomSearchHit["type"]>;
474
+ limit?: number;
475
+ }): Promise<{
476
+ results: RoomSearchHit[];
477
+ mode: "fts" | "hybrid";
478
+ }>;
479
+ /** @experimental */
480
+ joinRoom(roomId: string, invitationToken?: string): Promise<void>;
481
+ /** @experimental */
482
+ leaveRoom(roomId: string): Promise<void>;
483
+ /** @experimental */
484
+ respondToRoomPoll(roomId: string, pollId: string, input: {
485
+ optionIds?: string[];
486
+ answer?: string | null;
487
+ ranking?: string[];
488
+ }): Promise<void>;
489
+ /** @experimental */
490
+ joinSolveSession(roomId: string, sessionId: string): Promise<{
491
+ sessionId: string;
492
+ authToken: string;
493
+ mode: "audio" | "video" | "screen_share";
494
+ recordingEnabled: boolean;
495
+ }>;
496
+ /** @experimental */
497
+ reportRoomContent(roomId: string, input: {
498
+ messageId?: string | null;
499
+ reportedPrincipalId?: string | null;
500
+ category: "spam" | "secret" | "pii" | "harassment" | "unsafe" | "impersonation" | "off_topic" | "duplicate" | "other";
501
+ reason: string;
502
+ }, idempotencyKey?: string): Promise<{
503
+ caseId: string;
504
+ state: string;
505
+ message: string;
506
+ }>;
507
+ /** @experimental */
508
+ appealModerationCase(roomId: string, caseId: string, statement: string, idempotencyKey?: string): Promise<{
509
+ appealId: string;
510
+ status: string;
511
+ message: string;
512
+ }>;
513
+ listInbox(options?: {
514
+ limit?: number;
515
+ before?: string;
516
+ }): Promise<InboxPage>;
517
+ markInboxRead(ids?: string[]): Promise<{
518
+ unread: number;
519
+ marked: number;
520
+ }>;
521
+ /** Stream live inbox events until `signal` aborts. Resolves when the server closes the stream. */
522
+ streamInbox(onEvent: (event: InboxEvent) => void, signal?: AbortSignal): Promise<void>;
523
+ /**
524
+ * Proof collection (in-app prompt, known-customer sessions, preferences).
525
+ * @experimental
526
+ */
527
+ proof(): YouSaidProofClient;
528
+ }
529
+ export * from "./proof.js";
530
+ export * from "./proof-upload.js";
531
+ export * from "./proof-strings.js";
532
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}