@blocksdiy/react-common 1.70.1 → 1.71.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.
- package/dist/comments/anchor.d.ts +74 -0
- package/dist/comments/anchor.d.ts.map +1 -0
- package/dist/comments/anchor.js +279 -0
- package/dist/comments/api.d.ts +38 -0
- package/dist/comments/api.d.ts.map +1 -0
- package/dist/comments/api.js +62 -0
- package/dist/comments/comment-agents.d.ts +28 -0
- package/dist/comments/comment-agents.d.ts.map +1 -0
- package/dist/comments/comment-agents.js +32 -0
- package/dist/comments/comment-mode.d.ts +97 -0
- package/dist/comments/comment-mode.d.ts.map +1 -0
- package/dist/comments/comment-mode.js +159 -0
- package/dist/comments/composer.d.ts +133 -0
- package/dist/comments/composer.d.ts.map +1 -0
- package/dist/comments/composer.js +273 -0
- package/dist/comments/index.d.ts +13 -0
- package/dist/comments/index.d.ts.map +1 -0
- package/dist/comments/index.js +17 -0
- package/dist/comments/layout.d.ts +25 -0
- package/dist/comments/layout.d.ts.map +1 -0
- package/dist/comments/layout.js +83 -0
- package/dist/comments/mentions.d.ts +32 -0
- package/dist/comments/mentions.d.ts.map +1 -0
- package/dist/comments/mentions.js +30 -0
- package/dist/comments/page-pick.d.ts +76 -0
- package/dist/comments/page-pick.d.ts.map +1 -0
- package/dist/comments/page-pick.js +267 -0
- package/dist/comments/pick-message.d.ts +11 -0
- package/dist/comments/pick-message.d.ts.map +1 -0
- package/dist/comments/pick-message.js +33 -0
- package/dist/comments/pins.d.ts +72 -0
- package/dist/comments/pins.d.ts.map +1 -0
- package/dist/comments/pins.js +125 -0
- package/dist/comments/text-pick.d.ts +59 -0
- package/dist/comments/text-pick.d.ts.map +1 -0
- package/dist/comments/text-pick.js +165 -0
- package/dist/comments/threads-store.d.ts +119 -0
- package/dist/comments/threads-store.d.ts.map +1 -0
- package/dist/comments/threads-store.js +286 -0
- package/dist/comments/types.d.ts +232 -0
- package/dist/comments/types.d.ts.map +1 -0
- package/dist/comments/types.js +109 -0
- package/dist/hooks/agent-conversation-context.d.ts +12 -1
- package/dist/hooks/agent-conversation-context.d.ts.map +1 -1
- package/dist/hooks/agent-conversation-context.js +12 -5
- package/dist/hooks/agent-thread-live-update.d.ts +5 -2
- package/dist/hooks/agent-thread-live-update.d.ts.map +1 -1
- package/dist/hooks/agent-thread-live-update.js +14 -0
- package/dist/hooks/use-agent-conversation.d.ts +8 -0
- package/dist/hooks/use-agent-conversation.d.ts.map +1 -1
- package/dist/hooks/use-agent-conversation.js +10 -0
- package/dist/hooks/use-agent-threads.d.ts +1 -0
- package/dist/hooks/use-agent-threads.d.ts.map +1 -1
- package/dist/hooks/use-agent-threads.js +4 -1
- package/dist/iframe-communication/types.d.ts +24 -0
- package/dist/iframe-communication/types.d.ts.map +1 -1
- package/package.json +6 -3
|
@@ -4,9 +4,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
// chat (useAgentConversation), for parts to read through useAgentConversationContext. The
|
|
5
5
|
// agent-layout registry item renders it; a custom UI over the same behaviour can too.
|
|
6
6
|
import { createContext, useContext, useState } from "react";
|
|
7
|
-
import { useAgentConversation, } from "./use-agent-conversation.js";
|
|
7
|
+
import { shownConversationRow, useAgentConversation, } from "./use-agent-conversation.js";
|
|
8
8
|
import { useAgentThread } from "./use-agent-thread.js";
|
|
9
9
|
import { useAgentThreads } from "./use-agent-threads.js";
|
|
10
|
+
/** A single-conversation read that finished with no row (a 404): see `isConversationMissing`. */
|
|
11
|
+
const isReadMissing = (read, isDraft) => !isDraft && !read.isLoading && read.error === null && read.threads.length === 0;
|
|
10
12
|
const AgentConversationContext = createContext(null);
|
|
11
13
|
/**
|
|
12
14
|
* The Root over the agent's whole index: the sidebar's list under its filters, and the open
|
|
@@ -24,7 +26,11 @@ export function AgentConversationProvider({ agentId, conversation, isDraft, chat
|
|
|
24
26
|
headers,
|
|
25
27
|
baseUrl,
|
|
26
28
|
});
|
|
27
|
-
|
|
29
|
+
// The open conversation read on its own, for when the index doesn't list it (someone else's
|
|
30
|
+
// comment conversation, for a person who neither builds nor manages the app): its header shows
|
|
31
|
+
// its title. Free when the index lists it, and a draft reads nothing.
|
|
32
|
+
const read = useAgentThread({ agentId, conversation, isDraft, token, headers, baseUrl });
|
|
33
|
+
return (_jsx(AgentConversationRoot, { agentId: agentId, conversation: conversation, isDraft: isDraft, chat: chat, threads: threads, filters: filters, setFilters: setFilters, read: read.threads[0], isConversationMissing: isReadMissing(read, isDraft), children: children }));
|
|
28
34
|
}
|
|
29
35
|
const NO_FILTERS = {};
|
|
30
36
|
const noFilters = () => undefined;
|
|
@@ -37,9 +43,9 @@ const noFilters = () => undefined;
|
|
|
37
43
|
*/
|
|
38
44
|
export function AgentThreadConversationProvider({ agentId, conversation, isDraft, chat, token, headers, baseUrl, children, }) {
|
|
39
45
|
const threads = useAgentThread({ agentId, conversation, isDraft, token, headers, baseUrl });
|
|
40
|
-
return (_jsx(AgentConversationRoot, { agentId: agentId, conversation: conversation, isDraft: isDraft, chat: chat, threads: threads, filters: NO_FILTERS, setFilters: noFilters, children: children }));
|
|
46
|
+
return (_jsx(AgentConversationRoot, { agentId: agentId, conversation: conversation, isDraft: isDraft, chat: chat, threads: threads, filters: NO_FILTERS, setFilters: noFilters, isConversationMissing: isReadMissing(threads, isDraft), children: children }));
|
|
41
47
|
}
|
|
42
|
-
function AgentConversationRoot({ agentId, conversation, isDraft, chat, threads, filters, setFilters, children, }) {
|
|
48
|
+
function AgentConversationRoot({ agentId, conversation, isDraft, chat, threads, filters, setFilters, read, isConversationMissing, children, }) {
|
|
43
49
|
const { row, isStandIn, renameThread, notifyMessageSent } = useAgentConversation({
|
|
44
50
|
threads,
|
|
45
51
|
agentId,
|
|
@@ -52,8 +58,9 @@ function AgentConversationRoot({ agentId, conversation, isDraft, chat, threads,
|
|
|
52
58
|
conversation,
|
|
53
59
|
isDraft,
|
|
54
60
|
threads: { ...threads, renameThread },
|
|
55
|
-
row,
|
|
61
|
+
row: shownConversationRow(row, isStandIn, read),
|
|
56
62
|
isStandIn,
|
|
63
|
+
isConversationMissing,
|
|
57
64
|
filters,
|
|
58
65
|
setFilters,
|
|
59
66
|
hasActiveFilters: Boolean(filters.status ?? filters.source),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const THREAD_STATUSES: readonly ["idle", "interrupted", "waiting_on_agent", "busy", "error"];
|
|
2
2
|
export type AgentThreadStatus = (typeof THREAD_STATUSES)[number];
|
|
3
|
-
declare const THREAD_SOURCES: readonly ["direct_chat", "send_message", "feedback", "self_config_resume", "scheduled_reminder", "unknown"];
|
|
3
|
+
declare const THREAD_SOURCES: readonly ["direct_chat", "send_message", "feedback", "self_config_resume", "scheduled_reminder", "comment", "unknown"];
|
|
4
4
|
export type AgentThreadSource = (typeof THREAD_SOURCES)[number] | "agent_call";
|
|
5
5
|
export interface AgentThreadItem {
|
|
6
6
|
agentId: string | null;
|
|
@@ -42,7 +42,10 @@ export interface AgentThreadLiveUpdateOptions {
|
|
|
42
42
|
* Without `userId` a live update only refreshes rows already listed; it never adds one.
|
|
43
43
|
*/
|
|
44
44
|
private?: boolean;
|
|
45
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* The signed-in user's id: for `private`, and to tell whose a comment conversation is — a live
|
|
47
|
+
* update adds one only when this user asked (see `applyAgentThreadUpdate`).
|
|
48
|
+
*/
|
|
46
49
|
userId?: string;
|
|
47
50
|
sort?: "lastActivity" | "firstSeen";
|
|
48
51
|
order?: "asc" | "desc";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-thread-live-update.d.ts","sourceRoot":"","sources":["../../src/hooks/agent-thread-live-update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-thread-live-update.d.ts","sourceRoot":"","sources":["../../src/hooks/agent-thread-live-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// Wire types and pure merge logic for the agent-threads index; dependency-free for tests.
|
|
2
|
+
import { parseCommentAgentChatThreadId } from "../comments/types.js";
|
|
2
3
|
const THREAD_STATUSES = ["idle", "interrupted", "waiting_on_agent", "busy", "error"];
|
|
3
4
|
const THREAD_SOURCES = [
|
|
4
5
|
"direct_chat",
|
|
@@ -7,6 +8,8 @@ const THREAD_SOURCES = [
|
|
|
7
8
|
"self_config_resume",
|
|
8
9
|
// A thread a fired reminder or schedule started (wf-actions-py scheduled_reminder_runner.py).
|
|
9
10
|
"scheduled_reminder",
|
|
11
|
+
// A conversation a comment's @mention started (wf-actions-py agent_comment_mention_runner.py).
|
|
12
|
+
"comment",
|
|
10
13
|
"unknown",
|
|
11
14
|
];
|
|
12
15
|
/** A thread's identity within its agent: the thread id alone. */
|
|
@@ -75,6 +78,10 @@ const sortTime = (item, sort) => {
|
|
|
75
78
|
export const matchesAgentThreadFilters = (item, options = {}) => (!options.status || item.status === options.status) &&
|
|
76
79
|
(!options.source || item.source === options.source) &&
|
|
77
80
|
(!options.private || options.userId === undefined || item.userId == null || item.userId === options.userId);
|
|
81
|
+
const isOwnOrNotCommentConversation = (item, userId) => {
|
|
82
|
+
const comment = parseCommentAgentChatThreadId(item.chatThreadId);
|
|
83
|
+
return comment === null || (userId !== undefined && String(comment.askerUserId) === userId);
|
|
84
|
+
};
|
|
78
85
|
export const applyAgentThreadUpdate = (threads, incoming, options = {}) => {
|
|
79
86
|
const key = agentThreadKey(incoming);
|
|
80
87
|
const existing = threads.find((thread) => agentThreadKey(thread) === key);
|
|
@@ -89,6 +96,12 @@ export const applyAgentThreadUpdate = (threads, incoming, options = {}) => {
|
|
|
89
96
|
if (!existing && options.private && (options.userId === undefined || incoming.userId == null)) {
|
|
90
97
|
return threads;
|
|
91
98
|
}
|
|
99
|
+
// Every member who may read a comment conversation hears its events, but the server lists
|
|
100
|
+
// someone else's only for the app's builders and managers — and their list already holds it.
|
|
101
|
+
// So a live update adds a comment conversation only when the signed-in user asked.
|
|
102
|
+
if (!existing && !isOwnOrNotCommentConversation(incoming, options.userId)) {
|
|
103
|
+
return threads;
|
|
104
|
+
}
|
|
92
105
|
const sort = options.sort ?? "lastActivity";
|
|
93
106
|
const direction = options.order === "asc" ? 1 : -1;
|
|
94
107
|
const next = existing ? threads.map((thread) => (thread === existing ? incoming : thread)) : [...threads, incoming];
|
|
@@ -143,6 +156,7 @@ const GROUP_OF_SOURCE = {
|
|
|
143
156
|
direct_chat: "chats",
|
|
144
157
|
self_config_resume: "chats",
|
|
145
158
|
scheduled_reminder: "chats",
|
|
159
|
+
comment: "chats",
|
|
146
160
|
unknown: "chats",
|
|
147
161
|
send_message: "workflows",
|
|
148
162
|
feedback: "feedback",
|
|
@@ -45,6 +45,14 @@ export declare const useAgentConversationSelection: ({ urlTarget, }: UseAgentCon
|
|
|
45
45
|
export declare const RUN_STALE_MS: number;
|
|
46
46
|
/** A row for a conversation the index lists nothing for (yet): the draft, or a thread whose row has not landed. */
|
|
47
47
|
export declare const agentThreadStandIn: (agentId: string, conversation: AgentConversationRef, isDraft: boolean) => AgentThreadItem;
|
|
48
|
+
/**
|
|
49
|
+
* The open conversation's row as a surface shows it: `row` as it is, unless it is a stand-in and
|
|
50
|
+
* the conversation's own read (`read`, the server's row for it) is in, whose title and status it
|
|
51
|
+
* then shows. For a conversation the index doesn't list: someone else's comment conversation, which
|
|
52
|
+
* the index leaves out for a person who neither builds nor manages the app. Only what it shows: the
|
|
53
|
+
* row stays a stand-in for the rest (no rename, no turn accounting).
|
|
54
|
+
*/
|
|
55
|
+
export declare const shownConversationRow: (row: AgentThreadItem, isStandIn: boolean, read: AgentThreadItem | undefined) => AgentThreadItem;
|
|
48
56
|
/** When the oldest run mark among `rows` reaches the stale ceiling (epoch ms); null with no mark. */
|
|
49
57
|
export declare const nextRunStaleAt: (rows: readonly AgentThreadItem[]) => number | null;
|
|
50
58
|
/** The turns this client has accounted for on one conversation (`key`: agentThreadKey). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-agent-conversation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agent-conversation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-agent-conversation.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agent-conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,16 @@ export const agentThreadStandIn = (agentId, conversation, isDraft) => {
|
|
|
71
71
|
lastActivityAt: now,
|
|
72
72
|
};
|
|
73
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* The open conversation's row as a surface shows it: `row` as it is, unless it is a stand-in and
|
|
76
|
+
* the conversation's own read (`read`, the server's row for it) is in, whose title and status it
|
|
77
|
+
* then shows. For a conversation the index doesn't list: someone else's comment conversation, which
|
|
78
|
+
* the index leaves out for a person who neither builds nor manages the app. Only what it shows: the
|
|
79
|
+
* row stays a stand-in for the rest (no rename, no turn accounting).
|
|
80
|
+
*/
|
|
81
|
+
export const shownConversationRow = (row, isStandIn, read) => isStandIn && read && agentThreadKey(read) === agentThreadKey(row)
|
|
82
|
+
? { ...row, title: read.title, status: read.status }
|
|
83
|
+
: row;
|
|
74
84
|
/** When the oldest run mark among `rows` reaches the stale ceiling (epoch ms); null with no mark. */
|
|
75
85
|
export const nextRunStaleAt = (rows) => {
|
|
76
86
|
let next = null;
|
|
@@ -79,6 +79,7 @@ export interface UseAgentThreadsResult {
|
|
|
79
79
|
*/
|
|
80
80
|
export declare const agentInboxChatId: (agentId: string) => string;
|
|
81
81
|
export declare const agentThreadShortLabel: (thread: Pick<AgentThreadItem, "chatThreadId">) => string;
|
|
82
|
+
/** An untitled comment conversation reads "Comment": its id starts with a word, not a short code. */
|
|
82
83
|
export declare const agentThreadDisplayTitle: (thread: Pick<AgentThreadItem, "chatThreadId" | "title">) => string;
|
|
83
84
|
/** Agent-threads index with pagination, realtime upserts, and optimistic send listing. */
|
|
84
85
|
export declare const useAgentThreads: (options: UseAgentThreadsOptions) => UseAgentThreadsResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-agent-threads.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agent-threads.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-agent-threads.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agent-threads.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getApiHost } from "@blocksdiy/blocks-client-api/envService";
|
|
2
2
|
import { websocketsService } from "@blocksdiy/blocks-client-api/websocketService";
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { parseCommentAgentChatThreadId } from "../comments/types.js";
|
|
4
5
|
import { agentThreadKey, applyAgentThreadUpdate, matchesAgentThreadFilters, optimisticThreadAfterSend, overlayOptimisticThreads, reconcileWalkWithLive, removeAgentThread, retireOptimisticThreadsTakenOver, } from "./agent-thread-live-update.js";
|
|
5
6
|
import { acquireAgentThreadStore } from "./agent-thread-store.js";
|
|
6
7
|
export * from "./agent-thread-live-update.js";
|
|
@@ -84,7 +85,9 @@ export const postAgentThreadRename = async (fetchJson, agentId, thread, title, s
|
|
|
84
85
|
*/
|
|
85
86
|
export const agentInboxChatId = (agentId) => `agent-inbox-${agentId}`;
|
|
86
87
|
export const agentThreadShortLabel = (thread) => thread.chatThreadId.slice(0, 8);
|
|
87
|
-
|
|
88
|
+
/** An untitled comment conversation reads "Comment": its id starts with a word, not a short code. */
|
|
89
|
+
export const agentThreadDisplayTitle = (thread) => thread.title ??
|
|
90
|
+
(parseCommentAgentChatThreadId(thread.chatThreadId) ? "Comment" : `Chat ${agentThreadShortLabel(thread)}`);
|
|
88
91
|
const buildQuery = (filters, cursor) => {
|
|
89
92
|
const params = new URLSearchParams();
|
|
90
93
|
if (filters.status) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Methods } from "penpal";
|
|
2
|
+
import type { CommentOptions } from "../comments/comment-mode.js";
|
|
2
3
|
export type ThemeMode = "dark" | "light" | "system";
|
|
3
4
|
export type ElementData = {
|
|
4
5
|
dataId: string;
|
|
@@ -81,6 +82,18 @@ export interface PlatformApi extends Methods {
|
|
|
81
82
|
search?: string;
|
|
82
83
|
newTab?: boolean;
|
|
83
84
|
}) => Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* The app turned comment mode off itself (Esc in its comments), so the platform's Comment button
|
|
87
|
+
* follows. A platform from before it has no such method, so app-render calls it expecting a
|
|
88
|
+
* rejection there.
|
|
89
|
+
*/
|
|
90
|
+
onCommentModeExit: () => Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* The app asks for comment mode (a comment's link in its agent chat opens its thread), as if the
|
|
93
|
+
* Comment button were pressed. A platform from before it has no such method, so app-render calls
|
|
94
|
+
* it expecting a rejection there.
|
|
95
|
+
*/
|
|
96
|
+
onCommentModeRequest: () => Promise<void>;
|
|
84
97
|
}
|
|
85
98
|
/**
|
|
86
99
|
* A chat component the builder previews inside the app, in place of its routes: the react-live
|
|
@@ -127,5 +140,16 @@ export interface IframeApi extends Methods {
|
|
|
127
140
|
onOpenAgentPrompt: (args: {
|
|
128
141
|
agent: string;
|
|
129
142
|
}) => Promise<boolean>;
|
|
143
|
+
/**
|
|
144
|
+
* Turns the app's comment mode on or off. Resolves `false` when turning it on found no comments in
|
|
145
|
+
* the app (an app built without the comments component), so the platform turns its button back
|
|
146
|
+
* off. An app-render from before it answers METHOD_NOT_FOUND, which the platform reads as false.
|
|
147
|
+
*/
|
|
148
|
+
onChangeIsCommentMode: (isCommentMode: boolean) => Promise<boolean>;
|
|
149
|
+
/**
|
|
150
|
+
* What the app's comments show: resolved and outdated pins, and which agents this person may
|
|
151
|
+
* mention. An app-render from before it answers METHOD_NOT_FOUND; the app shows its defaults.
|
|
152
|
+
*/
|
|
153
|
+
onChangeCommentOptions: (options: CommentOptions) => Promise<void>;
|
|
130
154
|
}
|
|
131
155
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/iframe-communication/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,CAAC;CACH;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,uBAAuB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,eAAe,EAAE,CAAC,SAAS,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3G,kBAAkB,EAAE,CAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzG,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,aAAa,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD;;;;;OAKG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/iframe-communication/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocksdiy/react-common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.71.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "React common",
|
|
6
6
|
"keywords": [],
|
|
@@ -14,7 +14,8 @@
|
|
|
14
14
|
"./agent-threads": "./dist/hooks/use-agent-threads.js",
|
|
15
15
|
"./agent-chat": "./dist/components/agent-chat.js",
|
|
16
16
|
"./new-agent-chat": "./dist/components/new-agent-chat.js",
|
|
17
|
-
"./iframe-communication": "./dist/iframe-communication/index.js"
|
|
17
|
+
"./iframe-communication": "./dist/iframe-communication/index.js",
|
|
18
|
+
"./comments": "./dist/comments/index.js"
|
|
18
19
|
},
|
|
19
20
|
"directories": {
|
|
20
21
|
"lib": "src"
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
35
36
|
"@ag-ui/client": "0.0.59",
|
|
36
|
-
"@blocksdiy/blocks-client-api": "1.
|
|
37
|
+
"@blocksdiy/blocks-client-api": "1.32.0",
|
|
37
38
|
"@copilotkit/react-core": "1.70.2",
|
|
38
39
|
"@radix-ui/react-slot": "^1.2.3",
|
|
39
40
|
"@vapi-ai/web": "^2.5.2",
|
|
@@ -42,12 +43,14 @@
|
|
|
42
43
|
"use-stick-to-bottom": "1.1.6"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
46
|
+
"@blockscom/common": "4.198.0",
|
|
45
47
|
"@blockscom/eslint-config": "4.6.4",
|
|
46
48
|
"@types/react": "^19.3.0",
|
|
47
49
|
"babel-plugin-react-compiler": "^1.0.0",
|
|
48
50
|
"eslint-plugin-react": "^7.37.5",
|
|
49
51
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
50
52
|
"jest": "^29.7.0",
|
|
53
|
+
"jest-environment-jsdom": "29.7.0",
|
|
51
54
|
"ts-jest": "^29.2.5",
|
|
52
55
|
"tsc-alias": "^1.8.10",
|
|
53
56
|
"typescript": "^5.9.3"
|