@everfur/sdk 0.1.0 → 0.3.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 (187) hide show
  1. package/CHANGELOG.md +648 -1
  2. package/README.md +58 -23
  3. package/consent/package.json +8 -0
  4. package/dist/Chat-DPUD6dnc.d.cts +128 -0
  5. package/dist/Chat-DwAC2vhB.d.ts +128 -0
  6. package/dist/DepthViews-DNEM96Se.d.ts +16 -0
  7. package/dist/DepthViews-DP0R-DhB.d.cts +19 -0
  8. package/dist/DepthViews-D_3hl4xk.d.ts +19 -0
  9. package/dist/DepthViews-DbFhR4Du.d.cts +16 -0
  10. package/dist/ErrorPolicyPort-CNf4uQZP.d.cts +22 -0
  11. package/dist/ErrorPolicyPort-CwbfmxzJ.d.ts +22 -0
  12. package/dist/{EverfurResult-D92-uL82.d.cts → EverfurResult-DN9pL2Ab.d.cts} +11 -10
  13. package/dist/{EverfurResult-D92-uL82.d.ts → EverfurResult-DN9pL2Ab.d.ts} +11 -10
  14. package/dist/{PhotoController-BItt5M7u.d.cts → PhotoController-3l7MT9jA.d.cts} +1 -1
  15. package/dist/{PhotoController-D8zMTdcW.d.ts → PhotoController-vzY5bfY_.d.ts} +1 -1
  16. package/dist/animations/index.cjs +1 -1997
  17. package/dist/animations/index.d.cts +35 -35
  18. package/dist/animations/index.d.ts +35 -35
  19. package/dist/animations/index.js +1 -1972
  20. package/dist/attachments-5NeobOCd.d.ts +256 -0
  21. package/dist/attachments-Bw3iMQgu.d.ts +146 -0
  22. package/dist/attachments-CQgFrEQ7.d.cts +146 -0
  23. package/dist/attachments-D8T5re7e.d.cts +256 -0
  24. package/dist/casesRepository-ClLv6qMl.d.ts +188 -0
  25. package/dist/casesRepository-DHwtGRYY.d.cts +188 -0
  26. package/dist/chat/index.cjs +1 -1170
  27. package/dist/chat/index.d.cts +31 -53
  28. package/dist/chat/index.d.ts +31 -53
  29. package/dist/chat/index.js +1 -1167
  30. package/dist/client/index.cjs +9 -2315
  31. package/dist/client/index.d.cts +77 -15
  32. package/dist/client/index.d.ts +77 -15
  33. package/dist/client/index.js +9 -2215
  34. package/dist/{config-CiJ0PVBB.d.ts → config-CzTZGlfF.d.cts} +63 -25
  35. package/dist/{config-BSjBdxrZ.d.cts → config-DW60uRb9.d.ts} +63 -25
  36. package/dist/consent/index.cjs +1 -0
  37. package/dist/consent/index.d.cts +33 -0
  38. package/dist/consent/index.d.ts +33 -0
  39. package/dist/consent/index.js +1 -0
  40. package/dist/context-DXhqHlPU.d.ts +159 -0
  41. package/dist/context-XvTzq1tE.d.cts +159 -0
  42. package/dist/copy-Mjoo91aS.d.ts +198 -0
  43. package/dist/copy-bKDNigLb.d.cts +198 -0
  44. package/dist/core/index.cjs +13 -3175
  45. package/dist/core/index.d.cts +58 -12
  46. package/dist/core/index.d.ts +58 -12
  47. package/dist/core/index.js +13 -3163
  48. package/dist/depth-CErXCU8J.d.cts +502 -0
  49. package/dist/depth-DjDcJ6kH.d.ts +502 -0
  50. package/dist/entitlementRepository-DKdXFgTo.d.cts +698 -0
  51. package/dist/entitlementRepository-DSbzuyAW.d.ts +698 -0
  52. package/dist/{identity-DK9zORrG.d.ts → identity-BMx2SUOM.d.ts} +19 -6
  53. package/dist/{identity-Brl-lDd6.d.cts → identity-DI4eVx9S.d.cts} +19 -6
  54. package/dist/{ids-CJ1S6adf.d.cts → ids-B2GAAifq.d.cts} +1 -1
  55. package/dist/{ids-CJ1S6adf.d.ts → ids-B2GAAifq.d.ts} +1 -1
  56. package/dist/index.cjs +12 -4488
  57. package/dist/index.d.cts +29 -121
  58. package/dist/index.d.ts +29 -121
  59. package/dist/index.js +12 -4464
  60. package/dist/models-B-Uh2LTf.d.ts +214 -0
  61. package/dist/models-D2EUxPZY.d.cts +214 -0
  62. package/dist/notifications/index.cjs +2 -0
  63. package/dist/notifications/index.d.cts +17 -0
  64. package/dist/notifications/index.d.ts +17 -0
  65. package/dist/notifications/index.js +2 -0
  66. package/dist/pets-CtQdRpWo.d.ts +92 -0
  67. package/dist/pets-aB8q0JyX.d.cts +92 -0
  68. package/dist/photo/index.cjs +1 -2189
  69. package/dist/photo/index.d.cts +6 -6
  70. package/dist/photo/index.d.ts +6 -6
  71. package/dist/photo/index.js +1 -2186
  72. package/dist/ports-BN6RHF9W.d.cts +48 -0
  73. package/dist/ports-BN6RHF9W.d.ts +48 -0
  74. package/dist/ports-DEBzEhbp.d.cts +386 -0
  75. package/dist/ports-DMolTRzU.d.ts +386 -0
  76. package/dist/profile-CSs1wlXT.d.cts +93 -0
  77. package/dist/profile-CSs1wlXT.d.ts +93 -0
  78. package/dist/records/depth/index.cjs +2 -0
  79. package/dist/records/depth/index.d.cts +13 -0
  80. package/dist/records/depth/index.d.ts +13 -0
  81. package/dist/records/depth/index.js +2 -0
  82. package/dist/records/index.cjs +3 -2839
  83. package/dist/records/index.d.cts +137 -203
  84. package/dist/records/index.d.ts +137 -203
  85. package/dist/records/index.js +3 -2833
  86. package/dist/requestFunnel-CjW7uDuA.d.ts +87 -0
  87. package/dist/requestFunnel-L-BQfi0z.d.cts +87 -0
  88. package/dist/{resolve-Dq_4_agU.d.ts → resolve-D4Ywz5OS.d.cts} +10 -4
  89. package/dist/{resolve-Dq_4_agU.d.cts → resolve-D4Ywz5OS.d.ts} +10 -4
  90. package/dist/{runtime-BgQnA594.d.cts → runtime-B8s-_hv8.d.cts} +134 -59
  91. package/dist/{runtime-CBA-LvdM.d.ts → runtime-BR9ysG0J.d.ts} +134 -59
  92. package/dist/server/events/index.cjs +2 -0
  93. package/dist/server/events/index.d.cts +550 -0
  94. package/dist/server/events/index.d.ts +550 -0
  95. package/dist/server/events/index.js +2 -0
  96. package/dist/server/index.cjs +2 -533
  97. package/dist/server/index.d.cts +73 -18
  98. package/dist/server/index.d.ts +73 -18
  99. package/dist/server/index.js +2 -530
  100. package/dist/species-BXAIMh7I.d.cts +9 -0
  101. package/dist/species-BXAIMh7I.d.ts +9 -0
  102. package/dist/televet/index.cjs +1 -0
  103. package/dist/televet/index.d.cts +60 -0
  104. package/dist/televet/index.d.ts +60 -0
  105. package/dist/televet/index.js +1 -0
  106. package/dist/testing/index.cjs +5 -823
  107. package/dist/testing/index.d.cts +17 -3
  108. package/dist/testing/index.d.ts +17 -3
  109. package/dist/testing/index.js +5 -820
  110. package/dist/testing/rn/index.cjs +1 -449
  111. package/dist/testing/rn/index.d.cts +17 -29
  112. package/dist/testing/rn/index.d.ts +17 -29
  113. package/dist/testing/rn/index.js +1 -444
  114. package/dist/testing/web/index.cjs +1 -0
  115. package/dist/testing/web/index.d.cts +131 -0
  116. package/dist/testing/web/index.d.ts +131 -0
  117. package/dist/testing/web/index.js +1 -0
  118. package/dist/timelineRows-CaohZzXS.d.cts +19 -0
  119. package/dist/timelineRows-DZed6dAM.d.ts +19 -0
  120. package/dist/typeStyle-0TydiZ1w.d.cts +19 -0
  121. package/dist/typeStyle-CWMsoe6b.d.ts +19 -0
  122. package/dist/uploadTransport-D0M0T4hN.d.ts +38 -0
  123. package/dist/uploadTransport-DKJHs3Yj.d.cts +38 -0
  124. package/dist/useRecordsDepth-BHBzJ76R.d.cts +237 -0
  125. package/dist/useRecordsDepth-BU-OhzH6.d.ts +237 -0
  126. package/dist/useVetVisit-Bc84hWUU.d.cts +187 -0
  127. package/dist/useVetVisit-CjmMa896.d.ts +187 -0
  128. package/dist/video/index.cjs +1 -1941
  129. package/dist/video/index.d.cts +4 -4
  130. package/dist/video/index.d.ts +4 -4
  131. package/dist/video/index.js +1 -1938
  132. package/dist/view-C3qPIXGX.d.cts +310 -0
  133. package/dist/view-DtSPYpKa.d.ts +310 -0
  134. package/dist/visitIntent-D7_yVp1I.d.cts +8 -0
  135. package/dist/visitIntent-D7_yVp1I.d.ts +8 -0
  136. package/dist/web/consent/index.cjs +1 -0
  137. package/dist/web/consent/index.d.cts +34 -0
  138. package/dist/web/consent/index.d.ts +34 -0
  139. package/dist/web/consent/index.js +1 -0
  140. package/dist/web/index.cjs +14 -0
  141. package/dist/web/index.d.cts +217 -0
  142. package/dist/web/index.d.ts +217 -0
  143. package/dist/web/index.js +14 -0
  144. package/dist/web/notifications/index.cjs +2 -0
  145. package/dist/web/notifications/index.d.cts +213 -0
  146. package/dist/web/notifications/index.d.ts +213 -0
  147. package/dist/web/notifications/index.js +2 -0
  148. package/dist/web/records/depth/index.cjs +2 -0
  149. package/dist/web/records/depth/index.d.cts +12 -0
  150. package/dist/web/records/depth/index.d.ts +12 -0
  151. package/dist/web/records/depth/index.js +2 -0
  152. package/dist/web/records/index.cjs +4 -0
  153. package/dist/web/records/index.d.cts +194 -0
  154. package/dist/web/records/index.d.ts +194 -0
  155. package/dist/web/records/index.js +4 -0
  156. package/dist/web/televet/index.cjs +1 -0
  157. package/dist/web/televet/index.d.cts +50 -0
  158. package/dist/web/televet/index.d.ts +50 -0
  159. package/dist/web/televet/index.js +1 -0
  160. package/notifications/package.json +8 -0
  161. package/package.json +197 -9
  162. package/records/depth/package.json +8 -0
  163. package/server/events/device-blocked.cjs +15 -0
  164. package/server/events/package.json +9 -0
  165. package/televet/package.json +8 -0
  166. package/testing/web/native-blocked.cjs +12 -0
  167. package/testing/web/package.json +8 -0
  168. package/web/consent/native-blocked.cjs +12 -0
  169. package/web/consent/package.json +8 -0
  170. package/web/native-blocked.cjs +12 -0
  171. package/web/notifications/native-blocked.cjs +12 -0
  172. package/web/notifications/package.json +8 -0
  173. package/web/package.json +8 -0
  174. package/web/records/depth/native-blocked.cjs +12 -0
  175. package/web/records/depth/package.json +8 -0
  176. package/web/records/native-blocked.cjs +12 -0
  177. package/web/records/package.json +8 -0
  178. package/web/televet/native-blocked.cjs +12 -0
  179. package/web/televet/package.json +8 -0
  180. package/dist/ChatController-CKdBvPj2.d.ts +0 -146
  181. package/dist/ChatController-CpUMvvZf.d.cts +0 -146
  182. package/dist/FilePort-BabWrv7I.d.cts +0 -22
  183. package/dist/FilePort-BabWrv7I.d.ts +0 -22
  184. package/dist/petsRepository-BEGb97M9.d.cts +0 -326
  185. package/dist/petsRepository-Bu18r2kK.d.ts +0 -326
  186. package/dist/requestFunnel-DuUH-kAe.d.cts +0 -28
  187. package/dist/requestFunnel-dio5OmR9.d.ts +0 -28
@@ -1,17 +1,23 @@
1
1
  export { K as KvPort } from '../cacheEpoch-DknKn3S0.cjs';
2
- export { C as CapabilityKind, a as CapabilityRegistry, b as CapabilityServices, c as ChatControllerRegistry, d as ChatScope, e as CreateEverfurRuntimeInput, f as CreateRuntimeOptions, E as EntitlementPoller, g as EntitlementPollerDeps, h as EntitlementSnapshot, i as EntitlementStore, j as EverfurRuntime, k as EverfurRuntimeConfig, L as LogLevel, l as LogRecord, m as LogSink, M as MIN_POLL_INTERVAL_SECONDS, N as NULL_SECURE_STORE, P as PollScheduler, R as RuntimeTheme, n as RuntimeUser, S as SecureStorePort, T as TimerHandle, o as createEntitlementPoller, p as createEverfurRuntime } from '../runtime-BgQnA594.cjs';
2
+ export { B as BeforeLogoutContext, e as BeforeLogoutHook, C as CapabilityKind, f as CapabilityRegistry, g as CapabilityServices, h as ChatControllerRegistry, i as ChatScope, j as CreateEverfurRuntimeInput, k as CreateRuntimeOptions, l as EntitlementPoller, m as EntitlementPollerDeps, E as EntitlementSnapshot, n as EntitlementStore, o as EverfurRuntime, p as EverfurRuntimeConfig, L as LogLevel, a as LogRecord, b as LogSink, M as MIN_POLL_INTERVAL_SECONDS, N as NULL_SECURE_STORE, q as PollScheduler, P as PrepareOptions, c as PrepareResult, d as PrepareStatus, R as RuntimeTheme, r as RuntimeUser, S as SecureStorePort, T as TimerHandle, s as createEntitlementPoller, t as createEverfurRuntime } from '../runtime-B8s-_hv8.cjs';
3
3
  export { T as TelemetryPort, n as noopTelemetry } from '../TelemetryPort-BDNr00hu.cjs';
4
- import { S as SuggestedPromptCategory, C as ChatController } from '../ChatController-CpUMvvZf.cjs';
5
- export { a as ChatControllerDeps, b as ChatHandlers, c as ChatMessage, d as ChatSnapshot, e as ChatStatus, f as Citation, E as ErrorPolicyPort, M as MESSAGE_MAX_CHARS, g as SendOptions, T as Timers, h as createChatController, i as defaultErrorPolicy } from '../ChatController-CpUMvvZf.cjs';
4
+ export { E as ErrorPolicyPort, d as defaultErrorPolicy } from '../ErrorPolicyPort-CNf4uQZP.cjs';
6
5
  export { C as CameraPort, a as CaptureOptions, M as MediaSource, u as unavailableCamera } from '../CameraPort-Cv31Pz7g.cjs';
7
- export { F as FileHandle, a as FilePort } from '../FilePort-BabWrv7I.cjs';
8
- import { P as PetRef, a as ConversationId } from '../ids-CJ1S6adf.cjs';
9
- import '../resolve-Dq_4_agU.cjs';
10
- import '../petsRepository-BEGb97M9.cjs';
11
- import '../EverfurResult-D92-uL82.cjs';
12
- import '../requestFunnel-DuUH-kAe.cjs';
13
- import '../config-BSjBdxrZ.cjs';
14
- import '../identity-Brl-lDd6.cjs';
6
+ export { F as FileHandle, b as FilePort } from '../ports-BN6RHF9W.cjs';
7
+ import { l as SuggestedPromptCategory, m as ChatController } from '../ports-DEBzEhbp.cjs';
8
+ export { n as CHAT_FEEDBACK_TYPES, o as CHECKIN_ANSWERABLE_STATUS, C as ChatCheckin, a as ChatCheckinTarget, p as ChatControllerDeps, b as ChatConversation, c as ChatConversationListOptions, d as ChatConversationPage, e as ChatFeedbackReceipt, f as ChatFeedbackType, q as ChatHandlers, g as ChatHistoryOptions, i as ChatMessage, h as ChatMessagePage, r as ChatSnapshot, j as ChatStatus, k as Citation, F as FEEDBACK_NOTES_MAX_CHARS, M as MAX_IMAGE_KEYS_PER_MESSAGE, s as MESSAGE_MAX_CHARS, S as SendOptions, t as Timers, u as createChatController, v as isCheckinSettled } from '../ports-DEBzEhbp.cjs';
9
+ import { E as EverfurError } from '../EverfurResult-DN9pL2Ab.cjs';
10
+ import { P as PetRef, C as ConversationId } from '../ids-B2GAAifq.cjs';
11
+ export { f as ATTACHMENT_ACCEPT, g as ATTACHMENT_BACKOFF_MS, h as ATTACHMENT_INITIATE_PATH, i as ATTACHMENT_MAX_ATTEMPTS, j as ATTACHMENT_MIME_TYPES, k as ATTACHMENT_QUEUE_CONCURRENCY, A as AttachmentError, a as AttachmentErrorCode, b as AttachmentOutcome, c as AttachmentQueue, l as AttachmentQueueDeps, m as AttachmentQueueSnapshot, d as AttachmentState, e as AttachmentStatus, n as AttachmentUploadPolicy, M as MAX_ATTACHMENTS_PER_MESSAGE, o as MAX_ATTACHMENT_BYTES, p as MAX_FILENAME_LENGTH, V as ValidatedAttachment, q as attachmentSize, r as createAttachmentQueue, s as formatBytes, t as initiateAttachmentUpload, u as isAttachmentMime, v as sanitizeFilename, w as uploadAttachmentBytes, x as validateAttachment } from '../attachments-CQgFrEQ7.cjs';
12
+ export { G as SdkPlatform } from '../config-CzTZGlfF.cjs';
13
+ export { c as EverfurThemeInput } from '../entitlementRepository-DKdXFgTo.cjs';
14
+ export { C as CreateClinicRequestBatchInput, F as FACT_FIELD_BY_KIND, v as FACT_VALUE_FIELD, w as FactFieldValue, x as FactValueKind, H as HttpRecordsClinicRepositoryDeps, y as HttpRecordsRepositoryDeps, z as RECORDS_CLINIC_BATCH_MAX, R as RecordClinicianNote, a as RecordClinicianNoteSection, b as RecordCompleteness, c as RecordConflict, d as RecordConflictCandidate, e as RecordDepthView, f as RecordDocumentContributionsView, g as RecordEncounter, h as RecordExamSystem, A as RecordFactEditInput, B as RecordFactRemoveInput, i as RecordLabMarker, j as RecordLabPoint, D as RecordMarker, E as RecordMarkerLatest, G as RecordMarkerPoint, I as RecordMarkerSummary, J as RecordMarkersView, K as RecordPdfLink, k as RecordPhysicalExam, L as RecordShare, M as RecordShareLink, N as RecordsAuthorizationSignature, O as RecordsClinicBatch, P as RecordsClinicBatchClient, Q as RecordsClinicBatchItem, S as RecordsClinicBatchResult, T as RecordsClinicTarget, m as RecordsDepthClient, U as RecordsSignatureSuggestion, n as RecordsTimelineMedication, o as RecordsTimelineVaccine, p as RecordsTimelineView, q as RecordsTimelineVisit, r as RecordsTimelineWeight, V as createRecordsClinicBatchClient, W as createRecordsDepthClient, X as factCorrectionFor, Y as factValueCorrection, Z as inferFactValueKind, _ as isFactReviewerLocked, s as mapDocumentContributions, t as mapRecordDepth, $ as mapRecordMarkers, a0 as mapRecordPdfLink, a1 as mapRecordShareLink, a2 as mapRecordShareList, u as mapRecordsTimeline, a3 as mapSignatureSuggestions, a4 as resolveShareUrl } from '../depth-CErXCU8J.cjs';
15
+ export { R as RecordDocumentMeta, a as RecordEntity, b as RecordOrigin, f as RecordsRequestGroupView, d as RecordsRequestView } from '../models-D2EUxPZY.cjs';
16
+ export { C as CheckinAnswer, a as CheckinOutcome, W as WatchCase } from '../casesRepository-DHwtGRYY.cjs';
17
+ import '../resolve-D4Ywz5OS.cjs';
18
+ import '../identity-DI4eVx9S.cjs';
19
+ import '../requestFunnel-L-BQfi0z.cjs';
20
+ import '../profile-CSs1wlXT.cjs';
15
21
 
16
22
  /** The settled outcome of a guarded optional-module load. Never a throw. */
17
23
  type OptionalModule<T> = {
@@ -56,6 +62,11 @@ interface ChatBootstrapResult {
56
62
  readonly error: string | null;
57
63
  /** SAFE display copy: conversation not pre-initialized; the first send retries */
58
64
  readonly warning: string | null;
65
+ /**
66
+ * The typed error behind `error` or `warning` (the auth block, else the conversation-init failure), null
67
+ * when the conversation was primed. `runtime.prepare()` reports it as the chat step's outcome.
68
+ */
69
+ readonly cause: EverfurError | null;
59
70
  readonly diagnostics: ChatBootstrapDiagnostics;
60
71
  }
61
72
  /**
@@ -67,4 +78,39 @@ declare function bootstrapChat(input: ChatBootstrapInput, deps: {
67
78
  readonly controller: ChatController;
68
79
  }): Promise<ChatBootstrapResult>;
69
80
 
70
- export { type ChatBootstrapDiagnostics, type ChatBootstrapInput, type ChatBootstrapResult, ChatController, type OptionalModule, SuggestedPromptCategory, bootstrapChat, optionalModule };
81
+ /**
82
+ * How long `logout()` waits for the before-logout hooks before it proceeds without them. The device unregistration
83
+ * the notifications hook issues is one request; a partner's sign-out screen must never hang on a slow network.
84
+ */
85
+ declare const LOGOUT_HOOK_BUDGET_MS = 3000;
86
+
87
+ /** The pad's fixed canvas, in bitmap pixels (a 3:1 signature strip). */
88
+ declare const SIGNATURE_CANVAS: Readonly<{
89
+ width: 360;
90
+ height: 120;
91
+ }>;
92
+ /** A one-bit bitmap: `pixels[y * width + x]` is 1 for ink, 0 for paper. */
93
+ interface SignatureBitmap {
94
+ readonly width: number;
95
+ readonly height: number;
96
+ readonly pixels: Uint8Array;
97
+ }
98
+ type SignaturePoint = readonly [number, number];
99
+ /**
100
+ * The pen strokes of the pad (each a polyline in canvas pixels) as ink. A single point is a dot; a stroke that
101
+ * leaves the canvas is clipped, never wrapped. A non-finite point is skipped, every coordinate is clamped near
102
+ * the canvas, and one stroke plots at most `MAX_STEPS_PER_STROKE` steps, so no input can pin the JS thread.
103
+ */
104
+ declare function rasterizeStrokes(strokes: readonly (readonly SignaturePoint[])[], penRadius?: number): SignatureBitmap;
105
+ /**
106
+ * A typed name as ink, centred, shrunk to fit (the web pad's shrink-to-fit rule). The scale is the largest that
107
+ * fits the name on one line; a name too long even at scale 1 is clipped at the canvas edge rather than wrapped.
108
+ */
109
+ declare function rasterizeTypedName(name: string): SignatureBitmap;
110
+ /**
111
+ * Encode a bitmap as a 1-bit grayscale PNG (ink is black on white), base64 for `signaturePngBase64`. The rows
112
+ * use filter type 0; the image data is one zlib stream (header, fixed-Huffman DEFLATE, Adler-32).
113
+ */
114
+ declare function encodeSignaturePng(bitmap: SignatureBitmap): string;
115
+
116
+ export { type ChatBootstrapDiagnostics, type ChatBootstrapInput, type ChatBootstrapResult, ChatController, LOGOUT_HOOK_BUDGET_MS, type OptionalModule, SIGNATURE_CANVAS, type SignatureBitmap, type SignaturePoint, SuggestedPromptCategory, bootstrapChat, encodeSignaturePng, optionalModule, rasterizeStrokes, rasterizeTypedName };
@@ -1,17 +1,23 @@
1
1
  export { K as KvPort } from '../cacheEpoch-DknKn3S0.js';
2
- export { C as CapabilityKind, a as CapabilityRegistry, b as CapabilityServices, c as ChatControllerRegistry, d as ChatScope, e as CreateEverfurRuntimeInput, f as CreateRuntimeOptions, E as EntitlementPoller, g as EntitlementPollerDeps, h as EntitlementSnapshot, i as EntitlementStore, j as EverfurRuntime, k as EverfurRuntimeConfig, L as LogLevel, l as LogRecord, m as LogSink, M as MIN_POLL_INTERVAL_SECONDS, N as NULL_SECURE_STORE, P as PollScheduler, R as RuntimeTheme, n as RuntimeUser, S as SecureStorePort, T as TimerHandle, o as createEntitlementPoller, p as createEverfurRuntime } from '../runtime-CBA-LvdM.js';
2
+ export { B as BeforeLogoutContext, e as BeforeLogoutHook, C as CapabilityKind, f as CapabilityRegistry, g as CapabilityServices, h as ChatControllerRegistry, i as ChatScope, j as CreateEverfurRuntimeInput, k as CreateRuntimeOptions, l as EntitlementPoller, m as EntitlementPollerDeps, E as EntitlementSnapshot, n as EntitlementStore, o as EverfurRuntime, p as EverfurRuntimeConfig, L as LogLevel, a as LogRecord, b as LogSink, M as MIN_POLL_INTERVAL_SECONDS, N as NULL_SECURE_STORE, q as PollScheduler, P as PrepareOptions, c as PrepareResult, d as PrepareStatus, R as RuntimeTheme, r as RuntimeUser, S as SecureStorePort, T as TimerHandle, s as createEntitlementPoller, t as createEverfurRuntime } from '../runtime-BR9ysG0J.js';
3
3
  export { T as TelemetryPort, n as noopTelemetry } from '../TelemetryPort-BDNr00hu.js';
4
- import { S as SuggestedPromptCategory, C as ChatController } from '../ChatController-CKdBvPj2.js';
5
- export { a as ChatControllerDeps, b as ChatHandlers, c as ChatMessage, d as ChatSnapshot, e as ChatStatus, f as Citation, E as ErrorPolicyPort, M as MESSAGE_MAX_CHARS, g as SendOptions, T as Timers, h as createChatController, i as defaultErrorPolicy } from '../ChatController-CKdBvPj2.js';
4
+ export { E as ErrorPolicyPort, d as defaultErrorPolicy } from '../ErrorPolicyPort-CwbfmxzJ.js';
6
5
  export { C as CameraPort, a as CaptureOptions, M as MediaSource, u as unavailableCamera } from '../CameraPort-Cv31Pz7g.js';
7
- export { F as FileHandle, a as FilePort } from '../FilePort-BabWrv7I.js';
8
- import { P as PetRef, a as ConversationId } from '../ids-CJ1S6adf.js';
9
- import '../resolve-Dq_4_agU.js';
10
- import '../petsRepository-Bu18r2kK.js';
11
- import '../EverfurResult-D92-uL82.js';
12
- import '../requestFunnel-dio5OmR9.js';
13
- import '../config-CiJ0PVBB.js';
14
- import '../identity-DK9zORrG.js';
6
+ export { F as FileHandle, b as FilePort } from '../ports-BN6RHF9W.js';
7
+ import { l as SuggestedPromptCategory, m as ChatController } from '../ports-DMolTRzU.js';
8
+ export { n as CHAT_FEEDBACK_TYPES, o as CHECKIN_ANSWERABLE_STATUS, C as ChatCheckin, a as ChatCheckinTarget, p as ChatControllerDeps, b as ChatConversation, c as ChatConversationListOptions, d as ChatConversationPage, e as ChatFeedbackReceipt, f as ChatFeedbackType, q as ChatHandlers, g as ChatHistoryOptions, i as ChatMessage, h as ChatMessagePage, r as ChatSnapshot, j as ChatStatus, k as Citation, F as FEEDBACK_NOTES_MAX_CHARS, M as MAX_IMAGE_KEYS_PER_MESSAGE, s as MESSAGE_MAX_CHARS, S as SendOptions, t as Timers, u as createChatController, v as isCheckinSettled } from '../ports-DMolTRzU.js';
9
+ import { E as EverfurError } from '../EverfurResult-DN9pL2Ab.js';
10
+ import { P as PetRef, C as ConversationId } from '../ids-B2GAAifq.js';
11
+ export { f as ATTACHMENT_ACCEPT, g as ATTACHMENT_BACKOFF_MS, h as ATTACHMENT_INITIATE_PATH, i as ATTACHMENT_MAX_ATTEMPTS, j as ATTACHMENT_MIME_TYPES, k as ATTACHMENT_QUEUE_CONCURRENCY, A as AttachmentError, a as AttachmentErrorCode, b as AttachmentOutcome, c as AttachmentQueue, l as AttachmentQueueDeps, m as AttachmentQueueSnapshot, d as AttachmentState, e as AttachmentStatus, n as AttachmentUploadPolicy, M as MAX_ATTACHMENTS_PER_MESSAGE, o as MAX_ATTACHMENT_BYTES, p as MAX_FILENAME_LENGTH, V as ValidatedAttachment, q as attachmentSize, r as createAttachmentQueue, s as formatBytes, t as initiateAttachmentUpload, u as isAttachmentMime, v as sanitizeFilename, w as uploadAttachmentBytes, x as validateAttachment } from '../attachments-Bw3iMQgu.js';
12
+ export { G as SdkPlatform } from '../config-DW60uRb9.js';
13
+ export { c as EverfurThemeInput } from '../entitlementRepository-DSbzuyAW.js';
14
+ export { C as CreateClinicRequestBatchInput, F as FACT_FIELD_BY_KIND, v as FACT_VALUE_FIELD, w as FactFieldValue, x as FactValueKind, H as HttpRecordsClinicRepositoryDeps, y as HttpRecordsRepositoryDeps, z as RECORDS_CLINIC_BATCH_MAX, R as RecordClinicianNote, a as RecordClinicianNoteSection, b as RecordCompleteness, c as RecordConflict, d as RecordConflictCandidate, e as RecordDepthView, f as RecordDocumentContributionsView, g as RecordEncounter, h as RecordExamSystem, A as RecordFactEditInput, B as RecordFactRemoveInput, i as RecordLabMarker, j as RecordLabPoint, D as RecordMarker, E as RecordMarkerLatest, G as RecordMarkerPoint, I as RecordMarkerSummary, J as RecordMarkersView, K as RecordPdfLink, k as RecordPhysicalExam, L as RecordShare, M as RecordShareLink, N as RecordsAuthorizationSignature, O as RecordsClinicBatch, P as RecordsClinicBatchClient, Q as RecordsClinicBatchItem, S as RecordsClinicBatchResult, T as RecordsClinicTarget, m as RecordsDepthClient, U as RecordsSignatureSuggestion, n as RecordsTimelineMedication, o as RecordsTimelineVaccine, p as RecordsTimelineView, q as RecordsTimelineVisit, r as RecordsTimelineWeight, V as createRecordsClinicBatchClient, W as createRecordsDepthClient, X as factCorrectionFor, Y as factValueCorrection, Z as inferFactValueKind, _ as isFactReviewerLocked, s as mapDocumentContributions, t as mapRecordDepth, $ as mapRecordMarkers, a0 as mapRecordPdfLink, a1 as mapRecordShareLink, a2 as mapRecordShareList, u as mapRecordsTimeline, a3 as mapSignatureSuggestions, a4 as resolveShareUrl } from '../depth-DjDcJ6kH.js';
15
+ export { R as RecordDocumentMeta, a as RecordEntity, b as RecordOrigin, f as RecordsRequestGroupView, d as RecordsRequestView } from '../models-B-Uh2LTf.js';
16
+ export { C as CheckinAnswer, a as CheckinOutcome, W as WatchCase } from '../casesRepository-ClLv6qMl.js';
17
+ import '../resolve-D4Ywz5OS.js';
18
+ import '../identity-BMx2SUOM.js';
19
+ import '../requestFunnel-CjW7uDuA.js';
20
+ import '../profile-CSs1wlXT.js';
15
21
 
16
22
  /** The settled outcome of a guarded optional-module load. Never a throw. */
17
23
  type OptionalModule<T> = {
@@ -56,6 +62,11 @@ interface ChatBootstrapResult {
56
62
  readonly error: string | null;
57
63
  /** SAFE display copy: conversation not pre-initialized; the first send retries */
58
64
  readonly warning: string | null;
65
+ /**
66
+ * The typed error behind `error` or `warning` (the auth block, else the conversation-init failure), null
67
+ * when the conversation was primed. `runtime.prepare()` reports it as the chat step's outcome.
68
+ */
69
+ readonly cause: EverfurError | null;
59
70
  readonly diagnostics: ChatBootstrapDiagnostics;
60
71
  }
61
72
  /**
@@ -67,4 +78,39 @@ declare function bootstrapChat(input: ChatBootstrapInput, deps: {
67
78
  readonly controller: ChatController;
68
79
  }): Promise<ChatBootstrapResult>;
69
80
 
70
- export { type ChatBootstrapDiagnostics, type ChatBootstrapInput, type ChatBootstrapResult, ChatController, type OptionalModule, SuggestedPromptCategory, bootstrapChat, optionalModule };
81
+ /**
82
+ * How long `logout()` waits for the before-logout hooks before it proceeds without them. The device unregistration
83
+ * the notifications hook issues is one request; a partner's sign-out screen must never hang on a slow network.
84
+ */
85
+ declare const LOGOUT_HOOK_BUDGET_MS = 3000;
86
+
87
+ /** The pad's fixed canvas, in bitmap pixels (a 3:1 signature strip). */
88
+ declare const SIGNATURE_CANVAS: Readonly<{
89
+ width: 360;
90
+ height: 120;
91
+ }>;
92
+ /** A one-bit bitmap: `pixels[y * width + x]` is 1 for ink, 0 for paper. */
93
+ interface SignatureBitmap {
94
+ readonly width: number;
95
+ readonly height: number;
96
+ readonly pixels: Uint8Array;
97
+ }
98
+ type SignaturePoint = readonly [number, number];
99
+ /**
100
+ * The pen strokes of the pad (each a polyline in canvas pixels) as ink. A single point is a dot; a stroke that
101
+ * leaves the canvas is clipped, never wrapped. A non-finite point is skipped, every coordinate is clamped near
102
+ * the canvas, and one stroke plots at most `MAX_STEPS_PER_STROKE` steps, so no input can pin the JS thread.
103
+ */
104
+ declare function rasterizeStrokes(strokes: readonly (readonly SignaturePoint[])[], penRadius?: number): SignatureBitmap;
105
+ /**
106
+ * A typed name as ink, centred, shrunk to fit (the web pad's shrink-to-fit rule). The scale is the largest that
107
+ * fits the name on one line; a name too long even at scale 1 is clipped at the canvas edge rather than wrapped.
108
+ */
109
+ declare function rasterizeTypedName(name: string): SignatureBitmap;
110
+ /**
111
+ * Encode a bitmap as a 1-bit grayscale PNG (ink is black on white), base64 for `signaturePngBase64`. The rows
112
+ * use filter type 0; the image data is one zlib stream (header, fixed-Huffman DEFLATE, Adler-32).
113
+ */
114
+ declare function encodeSignaturePng(bitmap: SignatureBitmap): string;
115
+
116
+ export { type ChatBootstrapDiagnostics, type ChatBootstrapInput, type ChatBootstrapResult, ChatController, LOGOUT_HOOK_BUDGET_MS, type OptionalModule, SIGNATURE_CANVAS, type SignatureBitmap, type SignaturePoint, SuggestedPromptCategory, bootstrapChat, encodeSignaturePng, optionalModule, rasterizeStrokes, rasterizeTypedName };