@feedmepos/mf-remy-panel 0.19.0-dev.1 → 0.19.0-dev.10
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/dist/{HomeView-631d218c.js → HomeView-fa2f1505.js} +38 -38
- package/dist/RemyButton-bdb522d2.js +30 -0
- package/dist/api/dreamer.d.ts +0 -2
- package/dist/api/memory.d.ts +2 -1
- package/dist/app-11c50fd6.js +52095 -0
- package/dist/app.d.ts +1 -0
- package/dist/app.js +9 -8
- package/dist/components/avatar/RemyAvatar.vue.d.ts +49 -0
- package/dist/components/avatar/RemyAvatarLegacy.vue.d.ts +48 -0
- package/dist/components/avatar/remyAvatarState.d.ts +11 -0
- package/dist/components/chatPanel/ChatInput.vue.d.ts +28 -1
- package/dist/components/chatPanel/MemoryActionBadge.vue.d.ts +15 -0
- package/dist/components/chatPanel/actionCards/McpAppCard.vue.d.ts +5 -13
- package/dist/components/chatPanel/memoryActionFeedback.d.ts +14 -0
- package/dist/components/memory/memoryCategories.d.ts +5 -1
- package/dist/stores/chatStore.d.ts +2 -1
- package/dist/stores/previewStore.d.ts +1 -1
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/package.json +6 -1
- package/dist/RemyButton-7009c850.js +0 -30
- package/dist/app-752d4bda.js +0 -31938
- package/dist/components/chatPanel/DreamerMonitor.vue.d.ts +0 -2
- /package/dist/components/memory/{EpisodeTimeline.vue.d.ts → DreamerTab.vue.d.ts} +0 -0
package/dist/app.d.ts
CHANGED
|
@@ -17,3 +17,4 @@ export declare const RemyButton: import("vue").DefineComponent<{}, {}, {}, {}, {
|
|
|
17
17
|
}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
18
18
|
onClick?: (() => any) | undefined;
|
|
19
19
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
20
|
+
export { default as RemyAvatar } from './components/avatar/RemyAvatar.vue';
|
package/dist/app.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import "vue";
|
|
2
|
-
import { C as
|
|
2
|
+
import { C as m, A as o, R as p, c as n, i as u, d as A, r as C, u as R, b as l } from "./app-11c50fd6.js";
|
|
3
3
|
import "pinia";
|
|
4
4
|
import "@feedmepos/mf-common";
|
|
5
5
|
import "vue-router";
|
|
6
6
|
export {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
n as
|
|
11
|
-
u as
|
|
7
|
+
m as ChatPanel,
|
|
8
|
+
o as FmApp,
|
|
9
|
+
p as RemyAvatar,
|
|
10
|
+
n as RemyButton,
|
|
11
|
+
u as i18nMessages,
|
|
12
|
+
A as initializeRemyChat,
|
|
12
13
|
C as router,
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
R as useAppStore,
|
|
15
|
+
l as useClientEvent
|
|
15
16
|
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import '@bible-strong/avatar-react/styles.css';
|
|
2
|
+
import { type RemyAvatarAnimation } from './remyAvatarState';
|
|
3
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
4
|
+
animation?: RemyAvatarAnimation | undefined;
|
|
5
|
+
expression?: "neutral" | "upward-side-glance" | "downward-gaze" | "skeptical-right" | "small-attentive" | "wide-downward-gaze" | "surprised-left" | "sleepy-squint" | "angry-right" | "curious-left" | "asymmetric-down-right" | "attentive-left" | "joyful-wide" | "eyes-closed" | "joyful-down-right" | "skeptical-left" | "far-right-glance" | "angry-left" | "playful-right" | "asymmetric-up-left" | "gentle-downward-gaze" | "wide-down-left" | "surprised-wide-left" | "drowsy-closed" | "suspicious-right" | "shy-downward" | "angry-brows" | "uneasy-left" | undefined;
|
|
6
|
+
size?: string | number | undefined;
|
|
7
|
+
ariaLabel?: string | undefined;
|
|
8
|
+
}>, {
|
|
9
|
+
animation: string;
|
|
10
|
+
size: number;
|
|
11
|
+
ariaLabel: string;
|
|
12
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
animationEnd: (animation: RemyAvatarAnimation) => void;
|
|
14
|
+
error: (message: string) => void;
|
|
15
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
16
|
+
animation?: RemyAvatarAnimation | undefined;
|
|
17
|
+
expression?: "neutral" | "upward-side-glance" | "downward-gaze" | "skeptical-right" | "small-attentive" | "wide-downward-gaze" | "surprised-left" | "sleepy-squint" | "angry-right" | "curious-left" | "asymmetric-down-right" | "attentive-left" | "joyful-wide" | "eyes-closed" | "joyful-down-right" | "skeptical-left" | "far-right-glance" | "angry-left" | "playful-right" | "asymmetric-up-left" | "gentle-downward-gaze" | "wide-down-left" | "surprised-wide-left" | "drowsy-closed" | "suspicious-right" | "shy-downward" | "angry-brows" | "uneasy-left" | undefined;
|
|
18
|
+
size?: string | number | undefined;
|
|
19
|
+
ariaLabel?: string | undefined;
|
|
20
|
+
}>, {
|
|
21
|
+
animation: string;
|
|
22
|
+
size: number;
|
|
23
|
+
ariaLabel: string;
|
|
24
|
+
}>>> & Readonly<{
|
|
25
|
+
onError?: ((message: string) => any) | undefined;
|
|
26
|
+
onAnimationEnd?: ((animation: RemyAvatarAnimation) => any) | undefined;
|
|
27
|
+
}>, {
|
|
28
|
+
size: number | string;
|
|
29
|
+
animation: RemyAvatarAnimation;
|
|
30
|
+
ariaLabel: string;
|
|
31
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
32
|
+
export default _default;
|
|
33
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
34
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
35
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
36
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
37
|
+
} : {
|
|
38
|
+
type: import('vue').PropType<T[K]>;
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
type __VLS_WithDefaults<P, D> = {
|
|
43
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
44
|
+
default: D[K];
|
|
45
|
+
}> : P[K];
|
|
46
|
+
};
|
|
47
|
+
type __VLS_Prettify<T> = {
|
|
48
|
+
[K in keyof T]: T[K];
|
|
49
|
+
} & {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type RemyAvatarAnimation } from './remyAvatarState';
|
|
2
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
3
|
+
animation?: RemyAvatarAnimation | undefined;
|
|
4
|
+
expression?: "neutral" | "upward-side-glance" | "downward-gaze" | "skeptical-right" | "small-attentive" | "wide-downward-gaze" | "surprised-left" | "sleepy-squint" | "angry-right" | "curious-left" | "asymmetric-down-right" | "attentive-left" | "joyful-wide" | "eyes-closed" | "joyful-down-right" | "skeptical-left" | "far-right-glance" | "angry-left" | "playful-right" | "asymmetric-up-left" | "gentle-downward-gaze" | "wide-down-left" | "surprised-wide-left" | "drowsy-closed" | "suspicious-right" | "shy-downward" | "angry-brows" | "uneasy-left" | undefined;
|
|
5
|
+
size?: string | number | undefined;
|
|
6
|
+
ariaLabel?: string | undefined;
|
|
7
|
+
}>, {
|
|
8
|
+
animation: string;
|
|
9
|
+
size: number;
|
|
10
|
+
ariaLabel: string;
|
|
11
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
|
+
animationEnd: (animation: RemyAvatarAnimation) => void;
|
|
13
|
+
error: (message: string) => void;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
15
|
+
animation?: RemyAvatarAnimation | undefined;
|
|
16
|
+
expression?: "neutral" | "upward-side-glance" | "downward-gaze" | "skeptical-right" | "small-attentive" | "wide-downward-gaze" | "surprised-left" | "sleepy-squint" | "angry-right" | "curious-left" | "asymmetric-down-right" | "attentive-left" | "joyful-wide" | "eyes-closed" | "joyful-down-right" | "skeptical-left" | "far-right-glance" | "angry-left" | "playful-right" | "asymmetric-up-left" | "gentle-downward-gaze" | "wide-down-left" | "surprised-wide-left" | "drowsy-closed" | "suspicious-right" | "shy-downward" | "angry-brows" | "uneasy-left" | undefined;
|
|
17
|
+
size?: string | number | undefined;
|
|
18
|
+
ariaLabel?: string | undefined;
|
|
19
|
+
}>, {
|
|
20
|
+
animation: string;
|
|
21
|
+
size: number;
|
|
22
|
+
ariaLabel: string;
|
|
23
|
+
}>>> & Readonly<{
|
|
24
|
+
onError?: ((message: string) => any) | undefined;
|
|
25
|
+
onAnimationEnd?: ((animation: RemyAvatarAnimation) => any) | undefined;
|
|
26
|
+
}>, {
|
|
27
|
+
size: number | string;
|
|
28
|
+
animation: RemyAvatarAnimation;
|
|
29
|
+
ariaLabel: string;
|
|
30
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
31
|
+
export default _default;
|
|
32
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
33
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
34
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
35
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
36
|
+
} : {
|
|
37
|
+
type: import('vue').PropType<T[K]>;
|
|
38
|
+
required: true;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
type __VLS_WithDefaults<P, D> = {
|
|
42
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
43
|
+
default: D[K];
|
|
44
|
+
}> : P[K];
|
|
45
|
+
};
|
|
46
|
+
type __VLS_Prettify<T> = {
|
|
47
|
+
[K in keyof T]: T[K];
|
|
48
|
+
} & {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type RemyAvatarAnimation = 'showcase' | 'sleeping' | 'waking' | 'idle' | 'listening' | 'thinking' | 'searching' | 'working' | 'excited' | 'bored' | 'suspicious' | 'angry' | 'drowsy' | 'happy' | 'curious' | 'confused' | 'surprised' | 'proud' | 'shy' | 'sad' | 'laughing' | 'scared' | 'playful' | 'celebrate';
|
|
2
|
+
export declare const REMY_AVATAR_SHOWCASE_EXPRESSIONS: readonly ["neutral", "upward-side-glance", "downward-gaze", "skeptical-right", "small-attentive", "wide-downward-gaze", "surprised-left", "sleepy-squint", "angry-right", "curious-left", "asymmetric-down-right", "attentive-left", "joyful-wide", "eyes-closed", "joyful-down-right", "skeptical-left", "far-right-glance", "angry-left", "playful-right", "asymmetric-up-left", "gentle-downward-gaze", "wide-down-left", "surprised-wide-left", "drowsy-closed", "suspicious-right"];
|
|
3
|
+
export interface RemyAvatarContext {
|
|
4
|
+
isStreaming: boolean;
|
|
5
|
+
hasError?: boolean;
|
|
6
|
+
toolNames?: string[];
|
|
7
|
+
memoryRecalled?: boolean;
|
|
8
|
+
toolCompleted?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/** Deterministic UI state only. Model output never chooses Remy's expression. */
|
|
11
|
+
export declare function selectRemyAvatarAnimation(context: RemyAvatarContext): RemyAvatarAnimation;
|
|
@@ -1,2 +1,29 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<
|
|
1
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
2
|
+
compact?: boolean | undefined;
|
|
3
|
+
}>, {
|
|
4
|
+
compact: boolean;
|
|
5
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
6
|
+
compact?: boolean | undefined;
|
|
7
|
+
}>, {
|
|
8
|
+
compact: boolean;
|
|
9
|
+
}>>> & Readonly<{}>, {
|
|
10
|
+
compact: boolean;
|
|
11
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
12
|
export default _default;
|
|
13
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
14
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
15
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
16
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
17
|
+
} : {
|
|
18
|
+
type: import('vue').PropType<T[K]>;
|
|
19
|
+
required: true;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
type __VLS_WithDefaults<P, D> = {
|
|
23
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
24
|
+
default: D[K];
|
|
25
|
+
}> : P[K];
|
|
26
|
+
};
|
|
27
|
+
type __VLS_Prettify<T> = {
|
|
28
|
+
[K in keyof T]: T[K];
|
|
29
|
+
} & {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ToolCall } from '@/types/chat';
|
|
2
|
+
interface Props {
|
|
3
|
+
toolCall: ToolCall;
|
|
4
|
+
}
|
|
5
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
export default _default;
|
|
7
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
8
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
9
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
10
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
11
|
+
} : {
|
|
12
|
+
type: import('vue').PropType<T[K]>;
|
|
13
|
+
required: true;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Renders a tool call's MCP Apps (SEP-1865) UI resource.
|
|
2
|
+
* Renders a tool call's MCP Apps (SEP-1865) UI resource in a sandboxed iframe.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* The card runs its own scripts, so an MCP server ships its own interactive UI
|
|
5
|
+
* and no client needs a component per tool.
|
|
5
6
|
*
|
|
6
|
-
* - `allow-
|
|
7
|
-
*
|
|
8
|
-
* Chrome blocks any download started from a sandboxed frame.
|
|
9
|
-
* - `allow-same-origin` — lets THIS component read `contentDocument` to
|
|
10
|
-
* measure the card, so the frame fits its content instead of padding every
|
|
11
|
-
* card out to a fixed height.
|
|
12
|
-
*
|
|
13
|
-
* NEVER add `allow-scripts`. Together with `allow-same-origin` it lets the
|
|
14
|
-
* framed document reach this origin's storage and script context — the two
|
|
15
|
-
* tokens are safe only apart. Measuring from the parent is what buys us
|
|
16
|
-
* auto-height without granting the card any script at all.
|
|
7
|
+
* NEVER add `allow-same-origin`: with `allow-scripts` it lets the card run as
|
|
8
|
+
* this origin. Apart, both are safe.
|
|
17
9
|
*/
|
|
18
10
|
import type { ToolCall } from '@/types/chat';
|
|
19
11
|
interface Props {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ToolCall } from '@/types/chat';
|
|
2
|
+
export type MemoryAction = 'recall' | 'remember' | 'correct' | 'forget';
|
|
3
|
+
export type MemoryActionTone = 'pending' | 'success' | 'error';
|
|
4
|
+
export interface MemoryActionFeedback {
|
|
5
|
+
action: MemoryAction;
|
|
6
|
+
label: string;
|
|
7
|
+
tone: MemoryActionTone;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Converts the streamed memoryTool state into honest, action-specific UI copy.
|
|
11
|
+
* Tool outputs return rejected/error as normal data, so output-available alone
|
|
12
|
+
* must not be presented as a successful memory change.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getMemoryActionFeedback(toolCall: ToolCall): MemoryActionFeedback | null;
|
|
@@ -19,13 +19,17 @@ export declare const MEMORY_CATEGORY_META: {
|
|
|
19
19
|
readonly label: "Concerns";
|
|
20
20
|
readonly color: "#f59e0b";
|
|
21
21
|
};
|
|
22
|
+
readonly misc: {
|
|
23
|
+
readonly label: "Misc";
|
|
24
|
+
readonly color: "#64748b";
|
|
25
|
+
};
|
|
22
26
|
readonly experience: {
|
|
23
27
|
readonly label: "Learned tool lessons";
|
|
24
28
|
readonly color: "#ec4899";
|
|
25
29
|
};
|
|
26
30
|
};
|
|
27
31
|
export type ManagedMemoryCategory = keyof typeof MEMORY_CATEGORY_META;
|
|
28
|
-
export declare const MANAGED_MEMORY_CATEGORIES: ("profile" | "concern" | "preference" | "workflow" | "goal" | "experience")[];
|
|
32
|
+
export declare const MANAGED_MEMORY_CATEGORIES: ("profile" | "concern" | "preference" | "workflow" | "goal" | "misc" | "experience")[];
|
|
29
33
|
export declare function buildMemoryCategoryGroups<T extends {
|
|
30
34
|
category: string;
|
|
31
35
|
status: string;
|
|
@@ -21,6 +21,7 @@ interface ChatStoreSetup {
|
|
|
21
21
|
composerGeneration: Ref<number>;
|
|
22
22
|
messages: Ref<ChatMessage[]>;
|
|
23
23
|
isStreaming: ComputedRef<boolean>;
|
|
24
|
+
hasError: ComputedRef<boolean>;
|
|
24
25
|
mcpPromptCommands: Ref<SlashCommand[]>;
|
|
25
26
|
currentConversationId: Ref<string | null>;
|
|
26
27
|
conversations: Ref<Conversation[]>;
|
|
@@ -47,5 +48,5 @@ interface ChatStoreSetup {
|
|
|
47
48
|
deleteCurrentConversation: () => Promise<void>;
|
|
48
49
|
lastContextSnapshot: Ref<ContextSnapshot | null>;
|
|
49
50
|
}
|
|
50
|
-
export declare const useChatStore: import("pinia").StoreDefinition<"chat", Pick<ChatStoreSetup, "inputText" | "pendingCommand" | "pendingImages" | "pendingAttachments" | "composerGeneration" | "messages" | "mcpPromptCommands" | "currentConversationId" | "conversations" | "isLoadingConversation" | "isLoadingConversations" | "isLoadingMoreConversations" | "hasMoreConversations" | "isLoadingMoreMessages" | "hasMoreMessages" | "lastContextSnapshot">, Pick<ChatStoreSetup, "isStreaming">, Pick<ChatStoreSetup, "initializeChatTransport" | "sendMessage" | "stopStreaming" | "clearConversation" | "updateMessageFeedback" | "addLocalAssistantMessage" | "loadMcpPrompts" | "loadConversations" | "loadMoreConversations" | "createNewConversation" | "createConversationAndSendMessage" | "loadConversation" | "loadMoreMessages" | "switchConversation" | "deleteCurrentConversation">>;
|
|
51
|
+
export declare const useChatStore: import("pinia").StoreDefinition<"chat", Pick<ChatStoreSetup, "inputText" | "pendingCommand" | "pendingImages" | "pendingAttachments" | "composerGeneration" | "messages" | "mcpPromptCommands" | "currentConversationId" | "conversations" | "isLoadingConversation" | "isLoadingConversations" | "isLoadingMoreConversations" | "hasMoreConversations" | "isLoadingMoreMessages" | "hasMoreMessages" | "lastContextSnapshot">, Pick<ChatStoreSetup, "isStreaming" | "hasError">, Pick<ChatStoreSetup, "initializeChatTransport" | "sendMessage" | "stopStreaming" | "clearConversation" | "updateMessageFeedback" | "addLocalAssistantMessage" | "loadMcpPrompts" | "loadConversations" | "loadMoreConversations" | "createNewConversation" | "createConversationAndSendMessage" | "loadConversation" | "loadMoreMessages" | "switchConversation" | "deleteCurrentConversation">>;
|
|
51
52
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReportArtifactResult, ExcelExportActionCardResult, RcaInsightCardResult } from '@/types/chat';
|
|
2
|
-
export type PreviewPage = 'all-sessions' | 'tasks' | 'integrations' | '
|
|
2
|
+
export type PreviewPage = 'all-sessions' | 'tasks' | 'integrations' | 'memory';
|
|
3
3
|
export type AllSessionsTab = 'all' | 'this';
|
|
4
4
|
export type PreviewFocus = {
|
|
5
5
|
kind: 'docx';
|