@senguoyun/dsh-arkme 0.1.66 → 0.1.68
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.
- package/docs/chat-add-long-article.md +39 -0
- package/docs/desktop-direct-recording.md +40 -0
- package/docs/desktop-membership-handoff.md +36 -0
- package/docs/desktop-regression-2026-09-19.md +77 -0
- package/docs/desktop-screenshot.md +59 -0
- package/docs/private-interaction-directory-handoff.md +95 -0
- package/docs/recording-calendar-coverage.md +41 -0
- package/docs/recording-presence-handoff.md +155 -0
- package/lib/client.js +49843 -45148
- package/lib/client.js.map +1 -1
- package/lib/harness-model-client.js +8 -0
- package/lib/harness-native-selection-client.js +72 -5
- package/lib/harness-sidebar-client.js +46 -2
- package/lib/index.js +28 -4
- package/lib/persistent-extension.js +1 -1
- package/lib/{persistent-runtime-0Nu1lyFv.js → persistent-runtime-DlJzDZlE.js} +852 -98
- package/lib/sdk.js +8 -0
- package/lib/types/arkme-service.d.ts +19 -2
- package/lib/types/arkme-service.d.ts.map +1 -1
- package/lib/types/call-record-presentation.d.ts +2 -0
- package/lib/types/call-record-presentation.d.ts.map +1 -1
- package/lib/types/client/ArkmeArticlePicker.d.ts +10 -0
- package/lib/types/client/ArkmeArticlePicker.d.ts.map +1 -0
- package/lib/types/client/ArkmeCallDetailContent.d.ts.map +1 -1
- package/lib/types/client/ArkmeCallRecordContent.d.ts.map +1 -1
- package/lib/types/client/ArkmeCallSurface.d.ts +3 -1
- package/lib/types/client/ArkmeCallSurface.d.ts.map +1 -1
- package/lib/types/client/ArkmeChatMemberActions.d.ts +2 -0
- package/lib/types/client/ArkmeChatMemberActions.d.ts.map +1 -1
- package/lib/types/client/ArkmeComposerScreenshotButton.d.ts +13 -0
- package/lib/types/client/ArkmeComposerScreenshotButton.d.ts.map +1 -0
- package/lib/types/client/ArkmeComposerSendButton.d.ts.map +1 -1
- package/lib/types/client/ArkmeDetailShell.d.ts +2 -1
- package/lib/types/client/ArkmeDetailShell.d.ts.map +1 -1
- package/lib/types/client/ArkmeDshMenu.d.ts +2 -0
- package/lib/types/client/ArkmeDshMenu.d.ts.map +1 -1
- package/lib/types/client/ArkmeEmojiPicker.d.ts.map +1 -1
- package/lib/types/client/ArkmeFileViewer.d.ts.map +1 -1
- package/lib/types/client/ArkmeGroupChatControls.d.ts +32 -0
- package/lib/types/client/ArkmeGroupChatControls.d.ts.map +1 -1
- package/lib/types/client/ArkmeLinkQuickView.d.ts +8 -0
- package/lib/types/client/ArkmeLinkQuickView.d.ts.map +1 -0
- package/lib/types/client/ArkmeLongArticleDialog.d.ts +6 -3
- package/lib/types/client/ArkmeLongArticleDialog.d.ts.map +1 -1
- package/lib/types/client/ArkmeLongArticleQuickView.d.ts +6 -0
- package/lib/types/client/ArkmeLongArticleQuickView.d.ts.map +1 -0
- package/lib/types/client/ArkmeMarkdownBody.d.ts +4 -1
- package/lib/types/client/ArkmeMarkdownBody.d.ts.map +1 -1
- package/lib/types/client/ArkmeMembershipDialog.d.ts +14 -0
- package/lib/types/client/ArkmeMembershipDialog.d.ts.map +1 -0
- package/lib/types/client/ArkmeMessageReadReceipt.d.ts.map +1 -1
- package/lib/types/client/ArkmeNoteDetails.d.ts +1 -1
- package/lib/types/client/ArkmeNoteDetails.d.ts.map +1 -1
- package/lib/types/client/ArkmeProductNavigation.d.ts.map +1 -1
- package/lib/types/client/ArkmeQuickAdd.d.ts +2 -1
- package/lib/types/client/ArkmeQuickAdd.d.ts.map +1 -1
- package/lib/types/client/ArkmeReadReceiptIcon.d.ts +7 -0
- package/lib/types/client/ArkmeReadReceiptIcon.d.ts.map +1 -0
- package/lib/types/client/ArkmeRecordingSurface.d.ts +3 -1
- package/lib/types/client/ArkmeRecordingSurface.d.ts.map +1 -1
- package/lib/types/client/ArkmeRichContent.d.ts.map +1 -1
- package/lib/types/client/ArkmeRichText.d.ts +6 -2
- package/lib/types/client/ArkmeRichText.d.ts.map +1 -1
- package/lib/types/client/ArkmeRightPanelHeader.d.ts +3 -1
- package/lib/types/client/ArkmeRightPanelHeader.d.ts.map +1 -1
- package/lib/types/client/ArkmeScreenshotCropDialog.d.ts +9 -0
- package/lib/types/client/ArkmeScreenshotCropDialog.d.ts.map +1 -0
- package/lib/types/client/ArkmeSearchSurface.d.ts.map +1 -1
- package/lib/types/client/ArkmeSidebar.d.ts +9 -0
- package/lib/types/client/ArkmeSidebar.d.ts.map +1 -1
- package/lib/types/client/ArkmeSourceBreadcrumb.d.ts.map +1 -1
- package/lib/types/client/ArkmeVoiceprintSurface.d.ts.map +1 -1
- package/lib/types/client/ArkmeWideConversation.d.ts.map +1 -1
- package/lib/types/client/api.d.ts +1 -1
- package/lib/types/client/api.d.ts.map +1 -1
- package/lib/types/client/arkme-membership.d.ts +15 -0
- package/lib/types/client/arkme-membership.d.ts.map +1 -0
- package/lib/types/client/browser-screenshot.d.ts +27 -0
- package/lib/types/client/browser-screenshot.d.ts.map +1 -0
- package/lib/types/client/chat-directory-store.d.ts.map +1 -1
- package/lib/types/client/composer-article-store.d.ts +35 -0
- package/lib/types/client/composer-article-store.d.ts.map +1 -0
- package/lib/types/client/composer-paste-focus.d.ts +21 -0
- package/lib/types/client/composer-paste-focus.d.ts.map +1 -0
- package/lib/types/client/composer-selection-request.d.ts +2 -0
- package/lib/types/client/composer-selection-request.d.ts.map +1 -1
- package/lib/types/client/conversation-menu-layer.d.ts +9 -2
- package/lib/types/client/conversation-menu-layer.d.ts.map +1 -1
- package/lib/types/client/conversation-selector-style.d.ts +2 -2
- package/lib/types/client/conversation-selector-style.d.ts.map +1 -1
- package/lib/types/client/directory-search-layout.d.ts +1 -1
- package/lib/types/client/directory-search-layout.d.ts.map +1 -1
- package/lib/types/client/file-send-tasks.d.ts +1 -1
- package/lib/types/client/file-send-tasks.d.ts.map +1 -1
- package/lib/types/client/harness-session-hover.d.ts.map +1 -1
- package/lib/types/client/mention-read-status.d.ts +10 -0
- package/lib/types/client/mention-read-status.d.ts.map +1 -0
- package/lib/types/client/menu-hover-region.d.ts +5 -0
- package/lib/types/client/menu-hover-region.d.ts.map +1 -0
- package/lib/types/client/recordings/ArkmeDirectRecording.d.ts +10 -0
- package/lib/types/client/recordings/ArkmeDirectRecording.d.ts.map +1 -0
- package/lib/types/client/recordings/ArkmeRecordingNavigationHint.d.ts +9 -0
- package/lib/types/client/recordings/ArkmeRecordingNavigationHint.d.ts.map +1 -0
- package/lib/types/client/recordings/ArkmeRecordingTimeline.d.ts +4 -2
- package/lib/types/client/recordings/ArkmeRecordingTimeline.d.ts.map +1 -1
- package/lib/types/client/recordings/direct-recording-capture.d.ts +14 -0
- package/lib/types/client/recordings/direct-recording-capture.d.ts.map +1 -0
- package/lib/types/client/recordings/direct-recording-journal.d.ts +33 -0
- package/lib/types/client/recordings/direct-recording-journal.d.ts.map +1 -0
- package/lib/types/client/recordings/direct-recording-store.d.ts +68 -0
- package/lib/types/client/recordings/direct-recording-store.d.ts.map +1 -0
- package/lib/types/client/recordings/recording-breath.d.ts +6 -0
- package/lib/types/client/recordings/recording-breath.d.ts.map +1 -0
- package/lib/types/client/recordings/recording-coverage.d.ts +6 -0
- package/lib/types/client/recordings/recording-coverage.d.ts.map +1 -0
- package/lib/types/client/redesign/styles.d.ts.map +1 -1
- package/lib/types/client/search-source-rows.d.ts +9 -0
- package/lib/types/client/search-source-rows.d.ts.map +1 -0
- package/lib/types/client/self-topic-menu-bridge.d.ts +2 -6
- package/lib/types/client/self-topic-menu-bridge.d.ts.map +1 -1
- package/lib/types/client/self-topic-menu-hover.d.ts.map +1 -1
- package/lib/types/client/text-link-parser.d.ts +1 -9
- package/lib/types/client/text-link-parser.d.ts.map +1 -1
- package/lib/types/client/text-link-tlds.d.ts +1 -1
- package/lib/types/client/text-link-tlds.d.ts.map +1 -1
- package/lib/types/client/use-conversation-name-search.d.ts +9 -0
- package/lib/types/client/use-conversation-name-search.d.ts.map +1 -0
- package/lib/types/client/use-resizable-note-detail.d.ts +3 -3
- package/lib/types/client/use-resizable-note-detail.d.ts.map +1 -1
- package/lib/types/desktop-screenshot-contract.d.ts +14 -0
- package/lib/types/desktop-screenshot-contract.d.ts.map +1 -0
- package/lib/types/desktop-screenshot.d.ts +22 -0
- package/lib/types/desktop-screenshot.d.ts.map +1 -0
- package/lib/types/host-api.d.ts.map +1 -1
- package/lib/types/markdown.d.ts +6 -1
- package/lib/types/markdown.d.ts.map +1 -1
- package/lib/types/recording-coverage.d.ts +12 -0
- package/lib/types/recording-coverage.d.ts.map +1 -0
- package/lib/types/sdk/index.d.ts +6 -0
- package/lib/types/sdk/index.d.ts.map +1 -1
- package/lib/types/search-record-links.d.ts +3 -0
- package/lib/types/search-record-links.d.ts.map +1 -0
- package/lib/types/services/background-sound-membership-service.d.ts +5 -0
- package/lib/types/services/background-sound-membership-service.d.ts.map +1 -1
- package/lib/types/services/call-history-service.d.ts +1 -1
- package/lib/types/services/call-history-service.d.ts.map +1 -1
- package/lib/types/services/chat-service.d.ts +9 -2
- package/lib/types/services/chat-service.d.ts.map +1 -1
- package/lib/types/services/membership-service.d.ts +13 -0
- package/lib/types/services/membership-service.d.ts.map +1 -0
- package/lib/types/services/record-service.d.ts +1 -1
- package/lib/types/services/record-service.d.ts.map +1 -1
- package/lib/types/services/recording-service.d.ts.map +1 -1
- package/lib/types/services/search-service.d.ts.map +1 -1
- package/lib/types/services/service.d.ts +1 -1
- package/lib/types/services/service.d.ts.map +1 -1
- package/lib/types/services/source-service.d.ts +7 -1
- package/lib/types/services/source-service.d.ts.map +1 -1
- package/lib/types/state-store.d.ts +1 -1
- package/lib/types/state-store.d.ts.map +1 -1
- package/lib/types/text-link-parser.d.ts +10 -0
- package/lib/types/text-link-parser.d.ts.map +1 -0
- package/lib/types/text-link-tlds.d.ts +2 -0
- package/lib/types/text-link-tlds.d.ts.map +1 -0
- package/lib/types/types.d.ts +53 -3
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export type ConversationMenuAnchor = Pick<DOMRect, 'left' | 'right' | 'top' | 'bottom'>;
|
|
2
|
+
export interface ConversationMenuPoint {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
/** Only the narrow shared edge is traversable, not the space below the card. */
|
|
7
|
+
export declare function conversationMenuHoverBridge(anchor: ConversationMenuAnchor, menu: ConversationMenuAnchor): ConversationMenuAnchor | undefined;
|
|
2
8
|
/** One document-level host, outside workspace clipping and without its own stacking context. */
|
|
3
9
|
export declare function conversationMenuLayer(doc: Document): HTMLElement;
|
|
4
10
|
export declare function conversationMenuPosition(anchor: ConversationMenuAnchor, width: number, height: number, viewport: {
|
|
@@ -11,8 +17,7 @@ export declare function conversationMenuPosition(anchor: ConversationMenuAnchor,
|
|
|
11
17
|
export interface ConversationMenuHoverRequest {
|
|
12
18
|
focusMenu: boolean;
|
|
13
19
|
anchor(): ConversationMenuAnchor;
|
|
14
|
-
|
|
15
|
-
scheduleClose(): void;
|
|
20
|
+
checkPointer(target: EventTarget | null, point?: ConversationMenuPoint): void;
|
|
16
21
|
onClose(focus?: boolean): void;
|
|
17
22
|
}
|
|
18
23
|
interface ConversationMenuHoverAdapter {
|
|
@@ -20,6 +25,8 @@ interface ConversationMenuHoverAdapter {
|
|
|
20
25
|
close(): void;
|
|
21
26
|
position(): void;
|
|
22
27
|
contains(target: EventTarget | null): boolean;
|
|
28
|
+
/** Visible menu layers in the anchor document's viewport coordinates; main menu first. */
|
|
29
|
+
bounds(): ConversationMenuAnchor[];
|
|
23
30
|
}
|
|
24
31
|
/** Timing, dismissal, keyboard entry and mutual exclusion are identical for both lists. */
|
|
25
32
|
export declare function watchConversationMenuHover(anchor: HTMLElement, adapter: ConversationMenuHoverAdapter): () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-menu-layer.d.ts","sourceRoot":"","sources":["../../../src/client/conversation-menu-layer.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"conversation-menu-layer.d.ts","sourceRoot":"","sources":["../../../src/client/conversation-menu-layer.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAA;AACvF,MAAM,WAAW,qBAAqB;IAAG,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;AAE/D,gFAAgF;AAChF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,SAAS,CAM5I;AAMD,gGAAgG;AAChG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAShE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;;;EAQlJ;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,IAAI,sBAAsB,CAAA;IAChC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC7E,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B;AAED,UAAU,4BAA4B;IACpC,IAAI,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAA;IACpD,KAAK,IAAI,IAAI,CAAA;IACb,QAAQ,IAAI,IAAI,CAAA;IAChB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAA;IAC7C,0FAA0F;IAC1F,MAAM,IAAI,sBAAsB,EAAE,CAAA;CACnC;AAID,2FAA2F;AAC3F,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,4BAA4B,GAAG,MAAM,IAAI,CAwFjH"}
|
|
@@ -20,8 +20,8 @@ export declare const CONVERSATION_MENU_LAYOUT: {
|
|
|
20
20
|
};
|
|
21
21
|
/** Keep the current selection distinct from a transient hover in both menus. */
|
|
22
22
|
export declare const CONVERSATION_MENU_COLORS: {
|
|
23
|
-
readonly selected: "#
|
|
24
|
-
readonly hover: "var(--dsw-alias-interactive-bg-hover,
|
|
23
|
+
readonly selected: "var(--dsw-alias-state-business-tertiary, #f1f2f6)";
|
|
24
|
+
readonly hover: "var(--dsw-alias-interactive-bg-hover, rgba(38, 49, 72, 0.06))";
|
|
25
25
|
};
|
|
26
26
|
export declare const CONVERSATION_MENU_SURFACE: {
|
|
27
27
|
readonly background: "var(--dsw-specific-sidebar-fill, #f9fafb)";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-selector-style.d.ts","sourceRoot":"","sources":["../../../src/client/conversation-selector-style.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversation-selector-style.d.ts","sourceRoot":"","sources":["../../../src/client/conversation-selector-style.ts"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;CAkB3B,CAAA;AAEV,gFAAgF;AAChF,eAAO,MAAM,wBAAwB;;;CAG3B,CAAA;AAEV,eAAO,MAAM,yBAAyB;;;;;CAK5B,CAAA;AAEV,8FAA8F;AAC9F,eAAO,MAAM,yBAAyB,QAwFrC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory-search-layout.d.ts","sourceRoot":"","sources":["../../../src/client/directory-search-layout.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"directory-search-layout.d.ts","sourceRoot":"","sources":["../../../src/client/directory-search-layout.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBO,CAAA"}
|
|
@@ -2,7 +2,7 @@ import type { ArkmeFileSendTask, ArkmeLocalFile } from '../file-transfer-contrac
|
|
|
2
2
|
import type { ArkmeContentBlock, ArkmeTimelineItem } from '../types.js';
|
|
3
3
|
export declare function localFileBlock(file: ArkmeLocalFile, sortOrder?: number): ArkmeContentBlock;
|
|
4
4
|
export declare function fileTaskHasOnlyBackgroundFiles(task: ArkmeFileSendTask): boolean;
|
|
5
|
-
/** Active supplemental capture
|
|
5
|
+
/** Active supplemental capture has no visible per-message status. */
|
|
6
6
|
export declare function fileTaskShowsInlineStatus(task: ArkmeFileSendTask): boolean;
|
|
7
7
|
export declare function fileTaskTimelineItem(task: ArkmeFileSendTask): ArkmeTimelineItem;
|
|
8
8
|
export declare function fileTaskConversationPreview(task: ArkmeFileSendTask): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-send-tasks.d.ts","sourceRoot":"","sources":["../../../src/client/file-send-tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,SAAI,GAAG,iBAAiB,CAErF;AAKD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAI/E;AACD,
|
|
1
|
+
{"version":3,"file":"file-send-tasks.d.ts","sourceRoot":"","sources":["../../../src/client/file-send-tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,SAAI,GAAG,iBAAiB,CAErF;AAKD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAI/E;AACD,qEAAqE;AACrE,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAE1E;AACD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAU/E;AACD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAM3E;AACD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,iBAAiB,CAoBtH;AAKD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAAG,OAAO,CAG1F;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAClC,KAAK,EAAE,SAAS,iBAAiB,EAAE,GAClC,OAAO,CAET;AAKD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,UAAO;;;mBA6DG,iBAAiB;EAMnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-session-hover.d.ts","sourceRoot":"","sources":["../../../src/client/harness-session-hover.ts"],"names":[],"mappings":"AAGA,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"harness-session-hover.d.ts","sourceRoot":"","sources":["../../../src/client/harness-session-hover.ts"],"names":[],"mappings":"AAGA,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAsE7G"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
2
|
+
import type { ArkmeSourceItem, ArkmeTimelineItem } from '../types.js';
|
|
3
|
+
export declare function useReadMentionMembers(itemUid: string | undefined, sourceRef: string | undefined): ReadonlySet<string>;
|
|
4
|
+
export declare function ArkmeMentionReadProvider(props: {
|
|
5
|
+
source: ArkmeSourceItem;
|
|
6
|
+
item: ArkmeTimelineItem;
|
|
7
|
+
elementRef: RefObject<HTMLElement>;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=mention-read-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mention-read-status.d.ts","sourceRoot":"","sources":["../../../src/client/mention-read-status.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiF,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACrI,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAQrE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAIrH;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,iBAAiB,CAAA;IACvB,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACpB,+BAOA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
type Rect = Pick<DOMRect, 'left' | 'right' | 'top' | 'bottom'>;
|
|
2
|
+
/** The trigger, portaled menu and their narrow crossing gap are one hover target. */
|
|
3
|
+
export declare function inMenuHoverRegion(x: number, y: number, anchor: Rect, menu: Rect): boolean;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=menu-hover-region.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-hover-region.d.ts","sourceRoot":"","sources":["../../../src/client/menu-hover-region.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAA;AAE9D,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAWzF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function recordingClock(millis: number): string;
|
|
2
|
+
export declare function useDirectRecordingOwner(accountKey: string | undefined, userId: number | undefined, importPath: string, enabled: boolean, onAccepted: () => void): void;
|
|
3
|
+
export declare function ArkmeDirectRecordingButton({ onStart }: {
|
|
4
|
+
onStart(): void;
|
|
5
|
+
}): import("react").JSX.Element;
|
|
6
|
+
export declare function ArkmeDirectRecordingStatus({ floating, onShowTasks }: {
|
|
7
|
+
floating?: boolean;
|
|
8
|
+
onShowTasks?(): void;
|
|
9
|
+
}): import("react").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=ArkmeDirectRecording.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArkmeDirectRecording.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/ArkmeDirectRecording.tsx"],"names":[],"mappings":"AAYA,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AACD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,QA6C/J;AAED,wBAAgB,0BAA0B,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,IAAI,IAAI,CAAA;CAAE,+BAO1E;AAED,wBAAgB,0BAA0B,CAAC,EAAE,QAAgB,EAAE,WAAW,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,IAAI,IAAI,CAAA;CAAE,sCAyCzH"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
/** A read-only hint; clicking the navigation button still opens Recordings. */
|
|
3
|
+
export declare function ArkmeRecordingNavigationHint({ anchor, elapsedMillis, startedAt, id }: {
|
|
4
|
+
anchor: RefObject<HTMLButtonElement>;
|
|
5
|
+
elapsedMillis: number;
|
|
6
|
+
startedAt: number;
|
|
7
|
+
id: string;
|
|
8
|
+
}): import("react").ReactPortal | null;
|
|
9
|
+
//# sourceMappingURL=ArkmeRecordingNavigationHint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArkmeRecordingNavigationHint.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/ArkmeRecordingNavigationHint.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMjE,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE;IACrF,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX,sCAqCA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ArkmeRecordingWorkbenchItem } from '../../types.js';
|
|
1
|
+
import type { ArkmeRecordingCoverageInterval, ArkmeRecordingWorkbenchItem } from '../../types.js';
|
|
2
2
|
export declare const RECORDING_TIMELINE_ZOOM_LEVELS_SECONDS: readonly [86400, 43200, 21600, 10800, 7200, 3600, 1800, 900, 600, 300, 180, 60, 30, 15, 10, 5];
|
|
3
3
|
export declare function recordingTimelineDayBounds(items: readonly Pick<ArkmeRecordingWorkbenchItem, 'startAtMillis'>[]): {
|
|
4
4
|
start: number;
|
|
@@ -38,8 +38,10 @@ export interface ArkmeVisibleTimelineItem {
|
|
|
38
38
|
export declare function recordingTimelineSpeakerIdentity(item: ArkmeRecordingWorkbenchItem): string;
|
|
39
39
|
export declare function recordingVisibleTimelineItems(items: readonly ArkmeRecordingWorkbenchItem[], windowStart: number, windowEnd: number, maxNodes?: number): ArkmeVisibleTimelineItem[];
|
|
40
40
|
export declare function recordingTimelineTickTimes(windowStart: number, windowEnd: number): number[];
|
|
41
|
-
export declare function ArkmeRecordingTimeline({ items, dayStartMillis, playheadMillis, isPlaying, playbackLoading, loading, emptyState, onEditSpeaker, onImportAudio, onSelectAtMillis, onTogglePlayback }: {
|
|
41
|
+
export declare function ArkmeRecordingTimeline({ items: allItems, coverage, coverageState, dayStartMillis, playheadMillis, isPlaying, playbackLoading, loading, emptyState, onEditSpeaker, onImportAudio, onSelectAtMillis, onTogglePlayback }: {
|
|
42
42
|
items: ArkmeRecordingWorkbenchItem[];
|
|
43
|
+
coverage?: readonly ArkmeRecordingCoverageInterval[];
|
|
44
|
+
coverageState?: 'ready' | 'partial' | 'error';
|
|
43
45
|
dayStartMillis?: number;
|
|
44
46
|
playheadMillis?: number;
|
|
45
47
|
isPlaying: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkmeRecordingTimeline.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/ArkmeRecordingTimeline.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"ArkmeRecordingTimeline.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/ArkmeRecordingTimeline.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface MicrophoneCapture {
|
|
2
|
+
stop(): Promise<void>;
|
|
3
|
+
}
|
|
4
|
+
export interface MicrophoneCaptureOptions {
|
|
5
|
+
signal: AbortSignal;
|
|
6
|
+
maxMillis: number;
|
|
7
|
+
onReady(sampleRate: number): Promise<void>;
|
|
8
|
+
onChunk(pcm: ArrayBuffer, level: number): void;
|
|
9
|
+
onInterrupted(message: string): void;
|
|
10
|
+
}
|
|
11
|
+
/** PCM, not MediaRecorder WebM: existing Audio imports accept WAV/MP3/M4A only. */
|
|
12
|
+
export declare const microphoneWorkletSource = "\nclass ArkmePcmJournal extends AudioWorkletProcessor {\n constructor(options) {\n super(); this.samples = new Int16Array(sampleRate); this.used = 0; this.peak = 0;\n this.frames = 0; this.maxFrames = Math.floor(sampleRate * options.processorOptions.maxMillis / 1000);\n this.stopped = false;\n this.port.onmessage = () => { this.stopped = true; this.flush(); this.port.postMessage({ stopped: true }); };\n }\n flush() {\n if (!this.used) return;\n const pcm = new ArrayBuffer(this.used * 2); const view = new DataView(pcm);\n for (let i = 0; i < this.used; i++) view.setInt16(i * 2, this.samples[i], true);\n this.port.postMessage({ pcm, level: this.peak }, [pcm]); this.used = 0; this.peak = 0;\n }\n process(inputs) {\n if (this.stopped) return true;\n const input = inputs[0] && inputs[0][0]; if (!input) return true;\n for (let i = 0; i < input.length; i++) {\n if (this.frames >= this.maxFrames) {\n this.stopped = true; this.flush(); this.port.postMessage({ limit: true }); break;\n }\n const value = Math.max(-1, Math.min(1, input[i]));\n this.samples[this.used++] = Math.round(value * (value < 0 ? 32768 : 32767));\n this.peak = Math.max(this.peak, Math.abs(value)); this.frames++;\n if (this.used === this.samples.length) this.flush();\n }\n return true;\n }\n}\nregisterProcessor('arkme-pcm-journal', ArkmePcmJournal);\n";
|
|
13
|
+
export declare function captureMicrophone(options: MicrophoneCaptureOptions): Promise<MicrophoneCapture>;
|
|
14
|
+
//# sourceMappingURL=direct-recording-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-recording-capture.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/direct-recording-capture.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AACD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,WAAW,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC;AAED,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,04CA8BnC,CAAA;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkErG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Origin-local, account-partitioned PCM journal. A committed chunk and its index are atomic. */
|
|
2
|
+
export interface LocalMicrophoneRecording {
|
|
3
|
+
id: string;
|
|
4
|
+
accountKey: string;
|
|
5
|
+
userId: number;
|
|
6
|
+
startedAt: number;
|
|
7
|
+
sampleRate: number;
|
|
8
|
+
bytes: number;
|
|
9
|
+
chunks: number;
|
|
10
|
+
finished: boolean;
|
|
11
|
+
fileName: string;
|
|
12
|
+
}
|
|
13
|
+
export interface MicrophoneJournal {
|
|
14
|
+
list(accountKey: string): Promise<LocalMicrophoneRecording[]>;
|
|
15
|
+
create(record: LocalMicrophoneRecording): Promise<void>;
|
|
16
|
+
append(id: string, pcm: ArrayBuffer): Promise<void>;
|
|
17
|
+
finish(id: string): Promise<void>;
|
|
18
|
+
file(id: string, tail?: readonly ArrayBuffer[]): Promise<File>;
|
|
19
|
+
remove(id: string): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare function pcmWaveHeader(bytes: number, sampleRate: number): ArrayBuffer;
|
|
22
|
+
export declare class IndexedMicrophoneJournal implements MicrophoneJournal {
|
|
23
|
+
private database;
|
|
24
|
+
private open;
|
|
25
|
+
private transaction;
|
|
26
|
+
list(accountKey: string): Promise<LocalMicrophoneRecording[]>;
|
|
27
|
+
create(record: LocalMicrophoneRecording): Promise<void>;
|
|
28
|
+
append(id: string, pcm: ArrayBuffer): Promise<void>;
|
|
29
|
+
finish(id: string): Promise<void>;
|
|
30
|
+
file(id: string, tail?: readonly ArrayBuffer[]): Promise<File>;
|
|
31
|
+
remove(id: string): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=direct-recording-journal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-recording-journal.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/direct-recording-journal.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAA;IAC7D,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAW5E;AAED,qBAAa,wBAAyB,YAAW,iBAAiB;IAChE,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,IAAI;YAaE,WAAW;IAWnB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAM7D,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAGvD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,SAAS,WAAW,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOxC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { ArkmeMembership } from '../../types.js';
|
|
2
|
+
import { uploadArkmeRecording } from '../api.js';
|
|
3
|
+
import { type MicrophoneCapture, type MicrophoneCaptureOptions } from './direct-recording-capture.js';
|
|
4
|
+
import { type LocalMicrophoneRecording, type MicrophoneJournal } from './direct-recording-journal.js';
|
|
5
|
+
export interface DirectRecordingAccount {
|
|
6
|
+
key: string;
|
|
7
|
+
userId: number;
|
|
8
|
+
importPath: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DirectRecordingSnapshot {
|
|
11
|
+
accountKey?: string;
|
|
12
|
+
phase: 'idle' | 'starting' | 'recording' | 'saving' | 'uploading';
|
|
13
|
+
elapsedMillis: number;
|
|
14
|
+
maxMillis: number;
|
|
15
|
+
levels: readonly number[];
|
|
16
|
+
pending: readonly LocalMicrophoneRecording[];
|
|
17
|
+
/** Account-local handoff metadata until the cloud day index catches up; contains no audio. */
|
|
18
|
+
submitted?: readonly LocalMicrophoneRecording[];
|
|
19
|
+
message: string;
|
|
20
|
+
error: string;
|
|
21
|
+
progress: number;
|
|
22
|
+
acceptedRevision: number;
|
|
23
|
+
startedAt: number;
|
|
24
|
+
volatile: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface DirectRecordingDependencies {
|
|
27
|
+
journal: MicrophoneJournal;
|
|
28
|
+
capture(options: MicrophoneCaptureOptions): Promise<MicrophoneCapture>;
|
|
29
|
+
membership(userId: number, signal: AbortSignal): Promise<ArkmeMembership>;
|
|
30
|
+
upload: typeof uploadArkmeRecording;
|
|
31
|
+
lock(): Promise<() => void>;
|
|
32
|
+
now(): number;
|
|
33
|
+
id(): string;
|
|
34
|
+
}
|
|
35
|
+
/** Same limits as Flutter AudioLongRecordingManager: free / VIP / SVIP. */
|
|
36
|
+
export declare function directRecordingLimit(member: ArkmeMembership, now: number): number;
|
|
37
|
+
export declare function lockDirectRecording(): Promise<() => void>;
|
|
38
|
+
/** Lives above recording/conversation routes; changing pages never owns microphone lifetime. */
|
|
39
|
+
export declare class DirectRecordingStore {
|
|
40
|
+
private readonly deps;
|
|
41
|
+
private state;
|
|
42
|
+
private listeners;
|
|
43
|
+
private account;
|
|
44
|
+
private generation;
|
|
45
|
+
private scope;
|
|
46
|
+
private session;
|
|
47
|
+
private emergency;
|
|
48
|
+
private storageReady;
|
|
49
|
+
readonly getSnapshot: () => DirectRecordingSnapshot;
|
|
50
|
+
readonly subscribe: (listener: () => void) => () => void;
|
|
51
|
+
confirmSubmittedCoverage(accountKey: string, intervals: readonly {
|
|
52
|
+
startAtMillis: number;
|
|
53
|
+
endAtMillis: number;
|
|
54
|
+
}[]): void;
|
|
55
|
+
constructor(deps: DirectRecordingDependencies);
|
|
56
|
+
private publish;
|
|
57
|
+
configure(account: DirectRecordingAccount | undefined): void;
|
|
58
|
+
private valid;
|
|
59
|
+
private refresh;
|
|
60
|
+
start(): Promise<void>;
|
|
61
|
+
private chunk;
|
|
62
|
+
stop(): Promise<void>;
|
|
63
|
+
private finishSession;
|
|
64
|
+
upload(id: string): Promise<void>;
|
|
65
|
+
download(id: string): Promise<File | undefined>;
|
|
66
|
+
}
|
|
67
|
+
export declare const directRecordingStore: DirectRecordingStore;
|
|
68
|
+
//# sourceMappingURL=direct-recording-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-recording-store.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/direct-recording-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
export declare const RECORDING_BREATH_PERIOD_MS = 2000;
|
|
3
|
+
/** Align newly mounted hints with the recording's existing visual rhythm. */
|
|
4
|
+
export declare function recordingBreathStyle(startedAt: number, now: number): CSSProperties;
|
|
5
|
+
export declare function useRecordingBreathStyle(active: boolean, startedAt: number): CSSProperties;
|
|
6
|
+
//# sourceMappingURL=recording-breath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-breath.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/recording-breath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAEzE,eAAO,MAAM,0BAA0B,OAAO,CAAA;AAW9C,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAGlF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAKzF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ArkmeRecordingCoverageInterval } from '../../types.js';
|
|
2
|
+
import { type DirectRecordingSnapshot } from './direct-recording-store.js';
|
|
3
|
+
export declare function localRecordingCoverage(snapshot: DirectRecordingSnapshot, accountKey: string | undefined, dayStart: number): ArkmeRecordingCoverageInterval[];
|
|
4
|
+
export declare function useLocalRecordingCoverage(accountKey: string | undefined, dayStart: number, cloud: readonly ArkmeRecordingCoverageInterval[] | undefined): ArkmeRecordingCoverageInterval[];
|
|
5
|
+
export declare const coverageStatusLabel: Record<ArkmeRecordingCoverageInterval['status'], string>;
|
|
6
|
+
//# sourceMappingURL=recording-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-coverage.d.ts","sourceRoot":"","sources":["../../../../src/client/recordings/recording-coverage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EAAwB,KAAK,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAEhG,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,8BAA8B,EAAE,CAgB5J;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,8BAA8B,EAAE,GAAG,SAAS,oCAIvJ;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,8BAA8B,CAAC,QAAQ,CAAC,EAAE,MAAM,CAExF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/client/redesign/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/client/redesign/styles.ts"],"names":[],"mappings":"AAWA,qFAAqF;AACrF,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAYvD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArkmeSearchSourceAggregate, ArkmeSearchSourceMatch } from '../types.js';
|
|
2
|
+
export type SearchSourceRow = ArkmeSearchSourceMatch & {
|
|
3
|
+
matchedRecordCount?: number;
|
|
4
|
+
matchedRecordCountExact?: boolean;
|
|
5
|
+
nameMatched?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/** Keep authoritative content counts while prioritizing viewer-visible name matches. */
|
|
8
|
+
export declare function searchSourceRows(aggregates: ArkmeSearchSourceAggregate[], names: ArkmeSearchSourceMatch[]): SearchSourceRow[];
|
|
9
|
+
//# sourceMappingURL=search-source-rows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-source-rows.d.ts","sourceRoot":"","sources":["../../../src/client/search-source-rows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAErF,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,GAAG,eAAe,EAAE,CAU7H"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ConversationMenuHoverRequest } from './conversation-menu-layer.js';
|
|
1
2
|
/** Private presentation bridge that lets every trigger open the one self-topic menu owner. */
|
|
2
3
|
export declare const SELF_TOPIC_MENU_OPEN = "arkme:self-topic-menu-open";
|
|
3
4
|
export declare const SELF_TOPIC_MENU_CLOSE = "arkme:self-topic-menu-close";
|
|
@@ -8,13 +9,8 @@ export interface SelfTopicMenuAnchor {
|
|
|
8
9
|
top: number;
|
|
9
10
|
bottom: number;
|
|
10
11
|
}
|
|
11
|
-
export interface SelfTopicMenuRequest {
|
|
12
|
+
export interface SelfTopicMenuRequest extends ConversationMenuHoverRequest {
|
|
12
13
|
accepted: boolean;
|
|
13
|
-
focusMenu: boolean;
|
|
14
|
-
anchor(): SelfTopicMenuAnchor;
|
|
15
|
-
keepOpen(): void;
|
|
16
|
-
scheduleClose(): void;
|
|
17
|
-
onClose(focus: boolean): void;
|
|
18
14
|
onSelect(): void;
|
|
19
15
|
}
|
|
20
16
|
//# sourceMappingURL=self-topic-menu-bridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-topic-menu-bridge.d.ts","sourceRoot":"","sources":["../../../src/client/self-topic-menu-bridge.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAChE,eAAO,MAAM,qBAAqB,gCAAgC,CAAA;AAClE,eAAO,MAAM,wBAAwB,mCAAmC,CAAA;AAExE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"self-topic-menu-bridge.d.ts","sourceRoot":"","sources":["../../../src/client/self-topic-menu-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;AAEhF,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAChE,eAAO,MAAM,qBAAqB,gCAAgC,CAAA;AAClE,eAAO,MAAM,wBAAwB,mCAAmC,CAAA;AAExE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAqB,SAAQ,4BAA4B;IACxE,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,IAAI,IAAI,CAAA;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-topic-menu-hover.d.ts","sourceRoot":"","sources":["../../../src/client/self-topic-menu-hover.ts"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"self-topic-menu-hover.d.ts","sourceRoot":"","sources":["../../../src/client/self-topic-menu-hover.ts"],"names":[],"mappings":"AAGA,sFAAsF;AACtF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAiB7F"}
|
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
export type TextLinkRun
|
|
2
|
-
kind: 'text';
|
|
3
|
-
text: string;
|
|
4
|
-
}> | Readonly<{
|
|
5
|
-
kind: 'link';
|
|
6
|
-
text: string;
|
|
7
|
-
href: string;
|
|
8
|
-
}>;
|
|
9
|
-
export declare function textLinkRuns(text: string): readonly TextLinkRun[];
|
|
1
|
+
export { textLinkRuns, type TextLinkRun } from '../text-link-parser.js';
|
|
10
2
|
//# sourceMappingURL=text-link-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-link-parser.d.ts","sourceRoot":"","sources":["../../../src/client/text-link-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"text-link-parser.d.ts","sourceRoot":"","sources":["../../../src/client/text-link-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { isValidLinkTld } from '../text-link-tlds.js';
|
|
2
2
|
//# sourceMappingURL=text-link-tlds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-link-tlds.d.ts","sourceRoot":"","sources":["../../../src/client/text-link-tlds.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"text-link-tlds.d.ts","sourceRoot":"","sources":["../../../src/client/text-link-tlds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ArkmeSearchSourceMatch } from '../types.js';
|
|
2
|
+
/** Name lookup is independent of message search, with progressive, cancellable directory paging. */
|
|
3
|
+
export declare function useConversationNameSearch(query: string, enabled: boolean): {
|
|
4
|
+
items: ArkmeSearchSourceMatch[];
|
|
5
|
+
error: string;
|
|
6
|
+
loading: boolean;
|
|
7
|
+
retry: () => void;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=use-conversation-name-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-conversation-name-search.d.ts","sourceRoot":"","sources":["../../../src/client/use-conversation-name-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAG5F,oGAAoG;AACpG,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;;;;;EAsCxE"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { type RefObject } from 'react';
|
|
2
2
|
export declare const NOTE_DETAIL_WIDTH_KEY = "arkme:note-detail-width:v1";
|
|
3
3
|
export declare const DEFAULT_NOTE_DETAIL_WIDTH = 405;
|
|
4
|
-
export declare function noteDetailWidthBounds(available: number): {
|
|
4
|
+
export declare function noteDetailWidthBounds(available: number, defaultWidth?: number): {
|
|
5
5
|
min: number;
|
|
6
6
|
max: number;
|
|
7
7
|
};
|
|
8
|
-
export declare function clampNoteDetailWidth(width: number, available: number): number;
|
|
8
|
+
export declare function clampNoteDetailWidth(width: number, available: number, defaultWidth?: number): number;
|
|
9
9
|
/** Shared local-only layout preference for right-hand quick-note drawers. */
|
|
10
|
-
export declare function useResizableNoteDetail(panel: RefObject<HTMLElement>, preferenceKey?: string, label?: string): {
|
|
10
|
+
export declare function useResizableNoteDetail(panel: RefObject<HTMLElement>, preferenceKey?: string, label?: string, defaultWidth?: number): {
|
|
11
11
|
style: {
|
|
12
12
|
width: number;
|
|
13
13
|
maxWidth: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-resizable-note-detail.d.ts","sourceRoot":"","sources":["../../../src/client/use-resizable-note-detail.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,eAAO,MAAM,qBAAqB,+BAA+B,CAAA;AACjE,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAC5C,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM;;;
|
|
1
|
+
{"version":3,"file":"use-resizable-note-detail.d.ts","sourceRoot":"","sources":["../../../src/client/use-resizable-note-detail.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,eAAO,MAAM,qBAAqB,+BAA+B,CAAA;AACjE,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAC5C,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,SAA4B;;;EAIhG;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,SAA4B,UAG9G;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,aAAa,SAAwB,EAAE,KAAK,SAAa,EAAE,YAAY,SAA4B;;;;;;EA6ExK"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Local, explicit composer action. Never exposed as an agent tool. */
|
|
2
|
+
export interface ArkmeDesktopScreenshotCapability {
|
|
3
|
+
available: boolean;
|
|
4
|
+
reason?: string;
|
|
5
|
+
}
|
|
6
|
+
export type ArkmeDesktopScreenshotResult = {
|
|
7
|
+
status: 'cancelled';
|
|
8
|
+
} | {
|
|
9
|
+
status: 'captured';
|
|
10
|
+
fileName: string;
|
|
11
|
+
mimeType: 'image/png';
|
|
12
|
+
contentBase64: string;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=desktop-screenshot-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop-screenshot-contract.d.ts","sourceRoot":"","sources":["../../src/desktop-screenshot-contract.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,4BAA4B,GACpC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ArkmeDesktopScreenshotCapability, ArkmeDesktopScreenshotResult } from './desktop-screenshot-contract.js';
|
|
2
|
+
type CaptureProcess = (path: string, signal: AbortSignal) => Promise<{
|
|
3
|
+
code: number;
|
|
4
|
+
stderr: string;
|
|
5
|
+
}>;
|
|
6
|
+
export declare class ArkmeDesktopScreenshot {
|
|
7
|
+
private readonly options;
|
|
8
|
+
private active;
|
|
9
|
+
constructor(options: {
|
|
10
|
+
currentUser: () => Promise<number>;
|
|
11
|
+
maxImageBytes: () => number;
|
|
12
|
+
platform?: string;
|
|
13
|
+
executableAvailable?: () => Promise<boolean>;
|
|
14
|
+
capture?: CaptureProcess;
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
});
|
|
17
|
+
capability(): Promise<ArkmeDesktopScreenshotCapability>;
|
|
18
|
+
cancel(): void;
|
|
19
|
+
capture(expectedUserId: number, requestSignal?: AbortSignal): Promise<ArkmeDesktopScreenshotResult>;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=desktop-screenshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop-screenshot.d.ts","sourceRoot":"","sources":["../../src/desktop-screenshot.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gCAAgC,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAA;AAItH,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAWtG,qBAAa,sBAAsB;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO;IADpC,OAAO,CAAC,MAAM,CAA6B;gBACd,OAAO,EAAE;QACpC,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;QAClC,aAAa,EAAE,MAAM,MAAM,CAAA;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,CAAC,EAAE,cAAc,CAAA;QACxB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB;IAEK,UAAU,IAAI,OAAO,CAAC,gCAAgC,CAAC;IAQ7D,MAAM,IAAI,IAAI;IAER,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,4BAA4B,CAAC;CAmD1G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../../src/host-api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAoB,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAA0B,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,KAAK,EAMV,kBAAkB,EAInB,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAA;AACnF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAMzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAWhE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAozBjE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CACjE,CAAA;IACD,gBAAgB,CAAC,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAA;IAC1D,qBAAqB,CAAC,EAAE,MAAM,0BAA0B,GAAG,SAAS,CAAA;IACpE,uBAAuB,CAAC,EAAE,MAAM,4BAA4B,GAAG,SAAS,CAAA;IACxE,UAAU,CAAC,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAA;IAClD,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAA;IACtC,iBAAiB,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAA;IACvG,oBAAoB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAA;IAC5E,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,IACtE,KAAK,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"host-api.d.ts","sourceRoot":"","sources":["../../src/host-api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAoB,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAA0B,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAErF,OAAO,KAAK,EAMV,kBAAkB,EAInB,MAAM,YAAY,CAAA;AAGnB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAA;AACnF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAA;AAMzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAWhE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAozBjE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;IACzB,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CACjE,CAAA;IACD,gBAAgB,CAAC,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAA;IAC1D,qBAAqB,CAAC,EAAE,MAAM,0BAA0B,GAAG,SAAS,CAAA;IACpE,uBAAuB,CAAC,EAAE,MAAM,4BAA4B,GAAG,SAAS,CAAA;IACxE,UAAU,CAAC,EAAE,MAAM,mBAAmB,GAAG,SAAS,CAAA;IAClD,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAA;IACtC,iBAAiB,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAA;IACvG,oBAAoB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAA;IAC5E,WAAW,CAAC,EAAE,eAAe,CAAA;CAC9B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,IACtE,KAAK,eAAe,EAAE,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CA0FxE;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,aAAa,CAAC,EAAE,IAAI,CAClB,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,CACjE,EACD,gBAAgB,CAAC,EAAE,qBAAqB,EACxC,qBAAqB,CAAC,EAAE,0BAA0B,EAClD,uBAAuB,CAAC,EAAE,4BAA4B,EACtD,aAAa,CAAC,EAAE,WAAW,EAC3B,UAAU,CAAC,EAAE,mBAAmB,EAChC,iBAAiB,CAAC,EAAE,IAAI,CAAC,+BAA+B,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC,EACvG,oBAAoB,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,QAAQ,GAAG,OAAO,CAAC,EAC5E,WAAW,CAAC,EAAE,eAAe,EAC7B,uBAAuB,CAAC,EAAE,MAAM,MAAM,GACrC,OAAO,CAAC,OAAO,CAAC,CAm9ClB"}
|
package/lib/types/markdown.d.ts
CHANGED
|
@@ -41,7 +41,12 @@ export declare function arkmeLiteralMarkdownNodes(options?: {
|
|
|
41
41
|
value?: unknown;
|
|
42
42
|
}) => void;
|
|
43
43
|
/** Tag activation follows source text nodes, so escaped hashes and code never become links. */
|
|
44
|
-
export declare function arkmeMarkdownBusinessNodes(
|
|
44
|
+
export declare function arkmeMarkdownBusinessNodes(options?: {
|
|
45
|
+
mentions?: readonly {
|
|
46
|
+
startIndex: number;
|
|
47
|
+
length: number;
|
|
48
|
+
}[];
|
|
49
|
+
}): (tree: MarkdownNode, file: {
|
|
45
50
|
value?: unknown;
|
|
46
51
|
}) => void;
|
|
47
52
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEzE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,CAAA;AAElD,oEAAoE;AACpE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAYrE;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAA;IACpG,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS,CAAA;CACxG;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAE9D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,qGAAqG;AACrG,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,MAAM,CAgBvF;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAaxF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAK9E;AAgCD,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa7D;AAED,+FAA+F;AAC/F,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,IACrE,MAAM,YAAY,EAAE,MAAM;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,UAetD;AAED,+FAA+F;AAC/F,wBAAgB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEzE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,CAAA;AAElD,oEAAoE;AACpE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAYrE;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAA;IACpG,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS,CAAA;CACxG;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAE9D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,qGAAqG;AACrG,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,MAAM,CAgBvF;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAaxF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAK9E;AAgCD,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa7D;AAED,+FAA+F;AAC/F,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,IACrE,MAAM,YAAY,EAAE,MAAM;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,UAetD;AAED,+FAA+F;AAC/F,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,IAC3G,MAAM,YAAY,EAAE,MAAM;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,UA6CtD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ArkmeRecordingCoverage, ArkmeRecordingCoverageInterval } from './types.js';
|
|
2
|
+
/** Upload ownership and speaker identity are not the recording's explicit memory attribution. */
|
|
3
|
+
export declare function recordingBelongsToViewer(session: unknown, viewerUserId: number): boolean;
|
|
4
|
+
/** Adjacent physical children may jointly cover one uploaded file; never bridge a gap. */
|
|
5
|
+
export declare function recordingCoverageContains(intervals: readonly {
|
|
6
|
+
startAtMillis: number;
|
|
7
|
+
endAtMillis: number;
|
|
8
|
+
}[], start: number, end: number): boolean;
|
|
9
|
+
export declare function clipRecordingCoverage(interval: ArkmeRecordingCoverageInterval, start: number, end: number): ArkmeRecordingCoverageInterval | undefined;
|
|
10
|
+
/** Use physical audio children, never first/last speech or a session envelope spanning gaps. */
|
|
11
|
+
export declare function projectRecordingCoverage(response: unknown, dayStart: number, dayEnd: number, viewerUserId: number): ArkmeRecordingCoverage;
|
|
12
|
+
//# sourceMappingURL=recording-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-coverage.d.ts","sourceRoot":"","sources":["../../src/recording-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAMxF,iGAAiG;AACjG,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAExF;AAED,0FAA0F;AAC1F,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,SAAS;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAUnJ;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,8BAA8B,GAAG,SAAS,CAKtJ;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,sBAAsB,CA0C1I"}
|